0, 1, 2, 3, 4, 5, 6, 7, 8, 9
A, B, C, d, E, F, g, H, I, J, k, L, n, O, P, r, S, t, U, y
(messages are case-insensitive, but can't display all characters)
This walk signal was previously used in Cortland, New York. I was able to pick it up at Active Suprlus for $30.
The back has 3 wires coming out. The centre is common. Hooking common up 120 VAC to one of the other 2 wires activates either the hand or walk signal. This model had no way to activate the countdown timer.
I decided to leave the hand/walk control as-is and to interface with the countdown LEDs directly.
All of the source code for this project is posted on GitHub.
This project was made web-enabled using a Spark Core Wifi Module. It's an Arduino-like microcontroller (but more powerful) and is used to add WiFi connectivity + cloud services easily to your project. All of the firmware was developed in their web IDE and flashed via WiFi - very cool! The sign is connected to the Spark Cloud and this page interacts with the device through their cloud infrastructure.
Wiring it up
The LEDs were grouped in either 3s for a short segment or 5 for a longer segment. I tried to match the brightness of the LEDs with the other signals. By experimentation I found that ~50 mA through the LED segment was about the brightness I was looking for. On a 12V supply, this was accomplished with an 11 ohm resistor for the 5-segments and a 96 ohm resistor for the 3-segments. I had to assembly custom resistors to get these values from my stockpile.
The Spark Core is connected to two MCP23008 8-bit I2C IO Expanders. The IO Expanders are connected to two ULN2803 darlington transistor arrays. This allows us to control the LEDs with 12V. Each ULN2803 output sinks 50 mA of current. When all 14 segments are lit, 8.4 W is being consumed.
I looked into interacing with the hand/walk LEDs directly as well. However, the way they were wired would have required high ( > 50 V) DC voltage to power them. Though I normally stay away from dealing directly with high AC voltage, in this case it was far easier than interfacing directly.
I used the PR26MF1 solid-state relay chip. The high voltage side is optically isolated from the low voltage inputs. The IO expander connects directly to the low voltage side. When the input pin is high, the high voltage pins are connected and either the hand or walk signal is shown. When a hand or walk signal is shown, 11 W is being consumed.
The Spark Core was very easy to work with and made the interactive portion of this project a reality.
The sign could be used more permanently as a live updating weather display or more impractically to scroll your text messages. It is a WiFi-connected internet of things device now, so the possibities are nearly endless.
If you liked the project or write-up, add a comment below or send me an e-mail at