Overview
I salvaged an LED display out of a retired transit bus and rebuilt it to run on my own hardware. I started by researching the SAE J1587 heavy-vehicle protocol, but with no usable documentation I switched to reverse-engineering the matrix's shift-register and chip-select lines directly, bypassed the OEM control board, and drove it straight from an Arduino to show live transit arrival times on my wall.
What I learned
- Researched the SAE J1587 heavy-vehicle communication protocol before pivoting to direct hardware reverse-engineering when no usable documentation existed
- Reverse-engineered an undocumented transit-bus LED matrix's shift-register and chip-select control lines down to the PCB level
- Bypassed the OEM control board entirely, driving the raw LED matrix directly from an Arduino
- Programmed the display into a working real-time utility, showing live public-transit arrival times mounted on a wall