- Perl code to schedule interesting messages.Also responsible for doing "special effects" and has an interactive mode. Responsible for doing text/font mapping and conversion to serial. It talks an RS232 (serial) protocol to get updates to its display memory. This code runs on the microcontroller and is responsible for refreshing the sign from the mapped memory (RAM). The LED sign software consists of 3 main components: If all goes well, this happens faster than the human eye can perceive. LED driver circuit (on which the LED matrices themselves are soldered) functions by sweeping a column bit across some shift registers and toggling the appropriate row bits.Not going to update that piece of shit, because I'm making a new board in 2021. I've also updated it in the year 2021 - now it's easier to read! Sorry it wasĪ horribly ugly (and probably somewhat inaccurate!) hand-drawn image of the controller circuit I designed and built is here. Thanks to John Walter for the help in creating this diagram. A hand-drawn image of the sign's display circuit can be found here. The LED matrix and driver hardware has been reverse engineered.These were taken soon after I purchased the sign. These show some details of the sign, such as the manufacturer label, power interface connector, and keyboard interface connector. Click any of the following images for greater detail. There are probably some seriously important stages missing, such as the development breadboard. The image below try to display the LED sign progression from start to finish. Furthermore, Perl routines were constructed to display useful information (some of which is pulled, in realtime, from the internet) in various pretty ways - including time, weather conditions, server usage statistics, and headlines.Ī web interface to the sign is in the works, as is a live, possibly streaming webcam view for realtime display across the internet.
Additional Perl functions were implemented to do various character animations and display effects. The Perl code uses font files from the figlet project to map ASCII characters into 2-D bit arrays for display purposes. In this scheme, the host PC thus has total control of the display memory.Ī set of Perl scripts was written to manage the PIC memory and output useful information to the LED screen. Commands to read and write memory locations on the PIC have been implemented, in addition to functions for clearing and shifting memory. The PIC microcontroller controls the LED sign via 7 NPN column drivers and some additional I/O pins for shift register signaling.Ī master host PC communicates with the PIC via RS232 serial communications. Essentially, the PIC chip has display memory mapped into its internal RAM. The PIC processor uses memory-mapped memory to control sign display bits. This circuit uses a Microchip PIC 16f628 microcontroller for control purposes. The real core of the LED sign project is the custom driver circuit. The LED sign is currently wall-mounted and connected to the internet. I then etched a PCB and mounted it directly inside the sign chassis where the old controller board was located. I designed and built a custom driver circuit by hand, from scratch. The result? Reverse engineering the display portion of the sign to create a custom driver circuit and supporting software. I concluded that it would be best to try and scrap the power and control circuits and create my own from scratch. After some brief testing, it was concluded that the power circuit was completely shot.
Fortunately, at a trip to the First Saturday Sale in Dallas in 1999, I managed to pick up a junked one for $10US. I had schemed about various ways to design one using a ton of logic circuitry and LED buffer/drivers. I have always wanted a scrolling LED sign that I could program with whatever message I wanted.