No description
Find a file
Ryan Cheley f3aa429e11
🔊 Play speech.wav 5 and 1 minutes before game time (#4)
Mirrors rpi-dodgers: plays the clip via mpv twice in the 10 minutes
leading up to a Firebirds game. Assumes cron runs the script each minute.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:52:42 -08:00
.gitignore 🎉 initial commit 2026-10-04 06:29:50 -07:00
.python-version 🔧 update python minimum version 2026-10-04 06:54:04 -07:00
prek.toml 🎉 initial commit 2026-10-04 06:29:50 -07:00
program.py 🔊 Play speech.wav 5 and 1 minutes before game time (#4) 2026-11-02 11:52:42 -08:00
pyproject.toml 🔧 update python minimum version 2026-10-04 06:54:04 -07:00
README.md 🔊 Play speech.wav 5 and 1 minutes before game time (#4) 2026-11-02 11:52:42 -08:00
speech.wav 🔊 Play speech.wav 5 and 1 minutes before game time (#4) 2026-11-02 11:52:42 -08:00
uv.lock 🔒 Re-lock dependencies for Python 3.13 (#3) 2026-10-04 06:56:34 -07:00

rpi-cvfirebirds

Scrolls the start time of any Coachella Valley Firebirds (AHL) game scheduled for today across a Raspberry Pi Sense HAT LED matrix.

Requirements

  • A Raspberry Pi with a Sense HAT attached. The sense-hat dependency installs only on Linux; running elsewhere will fail at SenseHat().

Raspberry Pi setup

RTIMU (the Sense HAT's IMU library) is not on PyPI — it only ships as a Raspberry Pi OS apt package. The virtualenv therefore has to see system site-packages:

sudo apt install sense-hat mpv      # RTIMULib + RTIMU bindings; mpv plays speech.wav
uv venv --system-site-packages      # venv that can see apt's RTIMU
uv sync                             # install httpx2 + sense-hat

Run

uv run program.py

For each of today's games involving the Firebirds (team ID 445), it scrolls:

The <visitor> will be playing the <home team> at <local start time>

It also plays speech.wav (via mpv) 5 minutes and 1 minute before game time. Run it from cron once a minute.

Times are converted from the game's timezone to the Pi's local timezone.

Data sources

  • Schedule and team names: ahl.ryancheley.com
  • Game metadata (start time, timezone): HockeyTech lscluster.hockeytech.com