Skip to content

Instantly share code, notes, and snippets.

View deckerego's full-sized avatar

John Ellis deckerego

View GitHub Profile
@deckerego
deckerego / boot.py
Last active November 22, 2020 14:33
A busy/free desktop indicator for the Adafruit Circuit Playground Express. See https://github.com/deckerego/busy-free_indicator for the full version.
import board
import digitalio
import storage
# Only allow code.py updates when turned off
switch = digitalio.DigitalInOut(board.D7)
switch.direction = digitalio.Direction.INPUT
switch.pull = digitalio.Pull.UP
storage.remount("/", not switch.value)
@deckerego
deckerego / Dockerfile
Last active October 10, 2020 12:37
Docker image for troubleshooting networking issues (e.g. figuring out why VPC Endpoints don't work in ECS)
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y openssh-server dnsutils telnet netcat vim
RUN mkdir /var/run/sshd
RUN echo 'root:f33df4ced3adb33f' | chpasswd
RUN sed -i 's/#*PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd
@deckerego
deckerego / fix_blender_282.sh
Created May 31, 2020 19:09
Fix Blender 2.82 permissions in MacOS
#!/bin/sh
sudo find /Applications/Blender.app -perm +111 -type f -exec chmod og+x {} \;
sudo find /Applications/Blender.app -type d -exec chmod og+x {} \;
@deckerego
deckerego / code.py
Last active December 15, 2019 03:34
Helper lamp with varying color temperature and brightness
import analogio
import simpleio
import board
import time
import neopixel
import touchio
from digitalio import DigitalInOut, Direction, Pull
# NeoPixels
pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, auto_write=False)
@deckerego
deckerego / code.py
Last active December 8, 2019 23:19
Use a remote control to change the lights on a Circuit Playground Express
import pulseio
import board
import time
import neopixel
import touchio
import adafruit_irremote
from digitalio import DigitalInOut, Direction, Pull
power = True
color = (255, 255, 255)
@deckerego
deckerego / etc_cron.daily_backup
Last active December 4, 2019 16:07
Use the disk archiver (DAR) to perform a full backup every other month, otherwise create an incremental backup.
#!/bin/bash
source /etc/default/backup
MONTH_TWO=$(date -d "- 2 month" '+%Y-%m')
MONTH_PREV=$(date -d "- 1 month" '+%Y-%m')
MONTH_NOW=$(date '+%Y-%m')
DATE=`date +%Y-%m-%d`
HOST=`hostname`
@deckerego
deckerego / code.py
Created November 5, 2019 02:37
Audio level meter with Circuit Playground Express
import array
import math
import time
import neopixel
import audiobusio
import board
def avg(values):
return sum(values) / len(values)
@deckerego
deckerego / code.py
Created November 4, 2019 01:25
Create a campfire effect with a Circuit Playground Express. Copy a crackle.wav audio file for the sound effect, and toggle the switch to mute/unmute.
from time import sleep
from random import random
from board import SPEAKER, SLIDE_SWITCH, SPEAKER_ENABLE, NEOPIXEL
from neopixel import NeoPixel
from digitalio import DigitalInOut, Direction, Pull
from audioio import WaveFile
from audioio import AudioOut
from simpleio import map_range
# NeoPixels
@deckerego
deckerego / code.py
Created November 2, 2019 13:43
Multi-sensor Feedback with Circuit Playground Express
# Circuit Playground NeoPixel
import time
import board
import neopixel
import busio
import analogio
import digitalio
import simpleio
import adafruit_thermistor
import adafruit_lis3dh
@deckerego
deckerego / send_io.sh
Created November 15, 2015 21:29
Send Adafruit IO data using curl
#!/bin/sh
curl -H 'X-AIO-Key: feedfacedaedbeef' -H 'Content-Type: application/json' -X POST https://io.adafruit.com/api/feeds/myfeedname/data.json -d'{"value": 17}'