Skip to content

Instantly share code, notes, and snippets.

View gallaugher's full-sized avatar

Gallaugher gallaugher

View GitHub Profile
@gallaugher
gallaugher / label_v_bitmap_label.py
Created August 1, 2025 16:58
label_v_bitmap_label.py
```# text-and-displayio.py
import board, busio, time, displayio, pwmio, terminalio, fourwire
from adafruit_display_text.label import Label
from adafruit_display_text.bitmap_label import Label as BitmapLabel
from adafruit_bitmap_font import bitmap_font
import adafruit_ili9341
# --- Display Setup ---
displayio.release_displays()
@gallaugher
gallaugher / roy-g-biv-pico-flash-with-each-color-off.py
Created July 16, 2025 01:41
roy-g-biv-pico-flash-with-each-color-off.py
# roy-g-biv-pico-flash-with-each-color-off.py
import board, time, neopixel
# define colors:
RED = (255, 0, 0)
ORANGE = (255, 40, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
INDIGO = (75, 0, 130) # no official INDIGO from CircuitPython
@gallaugher
gallaugher / playSound.swift
Last active June 26, 2025 14:09
playSound Function in SwiftUI
func playSound(soundName: String) {
guard let soundFile = NSDataAsset(name: soundName) else {
print("😡 ERROR: Could not read file named \(soundName).")
return
}
do {
audioPlayer = try AVAudioPlayer(data: soundFile.data)
audioPlayer.play()
} catch {
print("😡 ERROR: \(error.localizedDescription) when trying to create audioPlayer.")
@gallaugher
gallaugher / code.py
Created June 2, 2025 14:33
EYE SPI, ssd1681 eInk, and Pico
# EYESPI & ssd1681 connected to a Pico
import time, board, displayio, adafruit_ssd1681
from displayio import FourWire # ← FIXED: Changed from "fourwire import FourWire"
displayio.release_displays()
# This pinout works on a Feather M4 and may need to be altered for other boards.
spi = board.SPI() # Uses SCK and MOSI
epd_cs = board.GP17
epd_dc = board.GP21
@gallaugher
gallaugher / Test-128x128-stemma-qt-grayscale.py
Created May 21, 2025 17:56
Test-128x128-stemma-qt-grayscale.py
# Creates a pusing set of rings under text.
import time
import math
import board
import displayio
import busdisplay
import i2cdisplaybus
import terminalio
from adafruit_display_text import label
import adafruit_ssd1327
@gallaugher
gallaugher / display_and_sd_card.py
Last active May 16, 2025 15:51
display_and_sd_card.py
# If you comment out either the audio block or display block, code runs fine.
# But if you try to run both, as is shown below, the error is:
# File "code.py", line 57, in <module>
# ValueError: SPI peripheral in use
import board, busio, sdcardio, storage, os, time, digitalio
import displayio, pwmio, terminalio, adafruit_st7735r
from adafruit_display_text import label
from audiomp3 import MP3Decoder
# st7735r_display_160x128.py
import board
import displayio
import busio
import pwmio
import terminalio
from adafruit_display_text import label
import adafruit_st7735r
displayio.release_displays()
@gallaugher
gallaugher / just_mp3s_played_over_adalogger_cowbell.py
Last active May 16, 2025 15:33
just_mp3s_played_over_adalogger_cowbell.py
import board, busio, sdcardio, storage, os, time, digitalio
from audiomp3 import MP3Decoder
try:
from audioio import AudioOut
except ImportError:
try:
from audiopwmio import PWMAudioOut as AudioOut
except ImportError:
print("This board does not support audio")
@gallaugher
gallaugher / code_for_both_cowbell_adaloger_SD_and_st7735r_display.py
Created May 15, 2025 21:41
code_for_both_cowbell_adaloger_SD_and_st7735r_display.py
import board
import busio
import sdcardio
import storage
import os
import time, digitalio
from audiomp3 import MP3Decoder
# st7735r_display_160x128.py
@gallaugher
gallaugher / code.py
Last active February 19, 2025 18:36
Should_stop_when_button_B_held_and_song_ends
# sasa-chairs
# Note: This was demo code set up to show students how the debounced button press doesn't register until
# after the song plays. However for some reason I notice when run on a CPB using CircuitPython 9.2.4
# that the song runs a second time, even after the update() has run, the button_B is pressed, and
# button_A: False, button_B: False prints <- not expected because my finger remains on button_B.
# Here is some sample output. I'm seeing that even after False / False, the sound play restarts & am unsure why.
# If I continue holding button_B through one more play, the sound stops, as expected, and button_B.value is True
# but I had expected this to occur earlier when I held B through the first complete sound play.
# If you'd like to test with my sound, it's in the sasa-chairs folder at:
# http://bit.ly/circuitpython-school-files