John's Projects and Musings
For a few years, I used a Plywood sign that displayed the FM band the the music for the light show was broadcasted on.
One day I thought I would look around for an LED sign that would have the smarts to display the current song that was playing. Since WiFi is a pretty mature tech, I started Google’ing for a sign that would communicate via TCP and had an SDK that would allow me to write a program to send text to the sign on demand…. And they were pretty expensive! Since my wife frowns on me making capital purchases for frivolous items, I found a simple 3 foot LED sign on eBay for about $80.
Unfortunately, the sign interfaced serially, had only a rudimentary manual software interface, and no API or SDK. I sent an email to the vendor, with very little hope of any response, as the manufacturer was a Chinese company. The vendor referred me to the manufacturer. Communication was usually within a day, and my hopes started to rise.
Over a course of weeks, we discussed the need for the serial protocol of the sign. The manufacturer required an Non-Disclosure Agreement be signed, and two days later, I had a roughly translated, but quite usable Word document of the protocol! Happy dance!
The next step was obtaining a protocol converter that would translate WiFi to the Serial protocol. Several were available on Amazon, and Sparkfun offered a small board the converted RS232 voltage signals to the TTL voltage levels required by the sign - a very important tech point mentioned in one line of the user’s manual. The wiring part of the serial communication was nothing more that a standard three line interface mapped to an RS-485 connector. These converters typically use the modem AT command set to set communications, and some provide a convenient web interface as well.
Now, I needed a way to send WiFi data to the interface. This was accomplished in VB.NET, using a free version (for users) of a Winsock API named SocketWrench. This provided a UDP wrapper from the control PC to the WiFi Module on the sign. UDP was chosen since the sign provides no feedback on the serial communication.
For those curious few, the code can be seen here. The actual control signals in this code have been changed to conform to the requirements of the NDA. At the time this was developed, I was not aware of an existing standard protocol for these signs, sorry.
11/27/16 - The WiFi module failed on me this year - the second in two years. I've opted to run a direct serial line to the sign, and bypass the flashy, expensive WiFi component. I've stick the serial code up here soon.