Open-source hardware

The NYC Subway,
on a circuit board

A custom PCB that tracks every train in New York City in real time. 478 LEDs. Live MTA data. Mounted on your wall.

478
Addressable LEDs
36
Subway lines
15s
Update interval
ESP32
Microcontroller
Features

What makes it tick

Real-time tracking

Pulls live GTFS feeds from the MTA every 15 seconds. Each LED represents a station — it lights up in the route color when a train is present.

Web dashboard

Configure modes, themes, and colors from any browser. Live canvas preview shows exactly what the board displays. No reflashing needed.

Custom themes

Built-in color presets for every subway line. Create your own palettes, save them, and switch between them instantly.

Multiple modes

Switch between live subway tracking, animated snake mode, and more. Each mode has its own configurable parameters.

Custom PCB

Purpose-built 4-layer board with the entire NYC subway map etched into copper. Borough labels in silkscreen. Wall-mountable.

Fully open source

Firmware, server, dashboard, and PCB design files — all on GitHub. Build your own or fork it for a different city.

Architecture

How it works

Ingest MTA feeds

A Go backend polls 9 GTFS-realtime feeds from the MTA, parsing protobuf data into a unified transit state.

Render pixel frames

The active mode maps station occupancy to LED colors, merging theme presets with per-device config overrides.

Stream to hardware

The ESP32 fetches rendered frames over HTTP every second and drives 478 addressable WS2812B LEDs across 9 strips.

Control from anywhere

An HTMX dashboard lets you switch modes, tweak colors, and see a live canvas preview — all without touching firmware.

Build your own

Everything you need is on GitHub — PCB gerbers, firmware, server, and dashboard.

View on GitHub