NYC Subway
Live next-train departures for any station in the system, on the 72×16 LED matrix of a BUSY Bar.

Pick a station. That's it.
Station, direction, lines. The app does the rest, straight from the MTA's realtime feeds. No API key, no account.
The whole system
1–7, A–Z, the shuttles, the Staten Island Railway. A 496-station directory is baked in; multi-line stations like Canal St just work.
Real MTA bullets
Route bullets and departure animations are generated for exactly the routes your station serves, then uploaded to the device once. White letters sit on the firmware's baked drop shadow, and rush-hour expresses (<6> <7> <F>) get their diamonds.
Departures at 60 fps
When a train leaves, a compiled .anim sweeps the line's
color across the display, played by the device itself. Smooth over
USB, Wi‑Fi, or cloud.
Polite by default
Shows when the Bar's switch is on OFF and yields to everything else. The dial scrolls upcoming trains; each position dot takes its train's line color.



When service breaks
Suspensions, planned work, delays, held trains. Read live from the MTA's alert and vehicle feeds, drawn in the Bar's own screen language.
Configured in seconds
Environment variables, or CLI flags. In busybar-manager, make each station a variation and switch from the dashboard.
# finds the Bar over USB, Wi-Fi, or cloud pip install requests websockets STATION="Bedford Av" DIRECTION=downtown python app.py
| Var | Meaning |
|---|---|
STATION | Station name, fuzzily matched |
DIRECTION | N / S / uptown / downtown, or a label like Brooklyn |
ROUTES | Optional filter like N,Q |
STOPS | Exact GTFS platform ids, for full control |
BUSYBAR_PRIORITY | 1 shows only when the Bar is OFF, 30+ shows over the clock |
Manager setup and the full reference live in the README.



