Being a regular visitor of electronic flea-markets like the ‘Radio Onderdelen markt‘ at De Lichtmis in the Netherlands, I always seem to bring back something unusual. This time it was a LED sign, I have a kind of ‘display fetish’ thus this thing peaked my interest.
At home I discovered that there was very little to find about the whole device, there was a connector labeld ‘keyboard’ which had a small pcb with some rotary switches on it probably to select pre-programmed messages. After connecting power the sign showed no display. Disassembling revealed it was made by a company called Data Display somewhere in 1997 or such. The unit consists of two circuit boards: a controller and a LED part.
The controller is a Hitachi 6303 8 bit microcontroller, the program is stored in an EPROM. On the board is a 3.5mm stereo jack labeled ‘serial’ and following the circuit I figured out it was a RS232 three-wire interface. After creating a cable I tried to send some data to the unit but after several attempts at different baud rates there was no response. Dumping random data at the serial port resulted in some action on the display but without programming information i could not get consistent results. These LED signs are often custom made and on the web was no information to be found, the fact that the brand was ‘Data Display’ also did not help as these are very, very common words.
Investigating further I decided to disassemble the eprom data and try to figure out how the programming should be done. After several hours I did manage to get some repeatable response from the unit. Alas the battery on the controller board was dead and had leaked corroding fluid onto the tracks. I decided to remove the controllerboard and substitute it by something different. First attempt connecting it to my favourite controller: ‘mbed‘
After figuring out the connections I got some sample display output in a few hours, great! However since mbed modules are quite expensive I decided to try with a cheaper alternative: Arduino
Porting the C code from mbed to Arduino was simple, but the Arduino has limited RAM and my code used it up fast leaving no room for replaceble messages and such.
Final controller to try: Dallas DS2244, it is in fact a DS5000 (8051 derivative) on a 30 pins SIM module. On the module an RTC, a 2400 baud modem with DTMF decoder and 32k of battery backed SRAM which you can split into program and data memory.
I divided it into 16k program and 16k data memory, that should be more than enough for this LED sign. Many years ago I bought three boxes of these modules (also at ‘De Lichtmis’) so I have some spares.
I ported the code from mbed/Arduino to ‘sdcc‘ and after some optimising (a DS5000 is quite a bit slower than and mbed or Arduino) the code ran fine and I was able to create a small demo on the LED sign.
What would be needed to make the sign usable and more easily programmable than using a C compiler ? Maybe a dedicated programming language ? Putting some ideas onto paper and combining some simple rules a new programming language was born: LED check this page for more information on LED