I happened across an 8×40 LED Matrix at a surplus store online (You can get them while they are available at KP’s Surplus) that I thought could be of interest, so I bought one.
The display panel appears to have been part of a larger display. So, the curious person I am, I set out to see if I could make this thing work.
My 1st step was to see what electronics were onboard. There were some familiar IC’s, a bunch of transistors, and a couple of unfamiliar IC’s. The Familiar IC’s were the 74164 shift registers and 7414 Hex inverters. The unfamiliar IC’s were a DS8820N and SN75183. I’ll get to these later.
The layout looked perfect, each row appeared to be individually driven and the shift registers controlled each column. There was a transistor on each output of the shift registers to provide the current to drive the LED’s. Here’s a photo of the back of the board.
The board also had four male banana plug connectors labeled 5L, GL, 5D, and GD, as well as two single row 15 pin header connectors labeled J1 and J2.
So with a basic understanding of how shift registers worked, I set off to see if I could make this thing do something. The 1st step was to find out what the two unknown IC’s were and how they affected the circuit. So I looked them up.
The DS8820N was found to be a Dual Line Receiver and the SN75183 was a Dual Differential Line Driver. These are essentially the transmit and receive IC’s. I also determined through tracing the circuit that the connectors were as follows:
- GL – Logic Ground
- 5L – 5V Logic
- GD – Display (LED) Ground
- 5D – Display (LED) 5V
- J1 – Input for Row, Clock, and Data (See below)
- J2 – Output for Row, Clock, and Data (See Below)
These are the pin-outs for J1 and J2.
My goal was to control this via an Atmel ATMEGA328P microcontroller. The way the DS8820N works is it takes 2 inputs one for high logic and one for low logic and converts those into a single high/low output. So to set a low output for the data to the shift registers, the Data high input of JP1 would be low and the Data Low input of JP1 would be high. To set a High output for the data to the shift registers, the Data High input would be high and the Data Low input would be low. The same holds true for the clock inputs. Well, I didn’t want to tie up 4 lines of my microcontroller to serve the purpose of two so I purchased an SN75183 to let it do the toggling for me. That is the purpose of this IC on the board as well. It takes the data and clock from the final stage of the shift register chain and creates an output on J2. This allows these modules to be daisy chained together end to end probably only limited by how fast the data can be shifted and still provide a smooth looking display.
Here are a couple of close-ups of each end of the board showing the banana plug connectors, J1 and J2.
The 7414’s take the high level input from the Row Enable pins and provide logic to drive the sinking Row transistor pairs.
I did use separate power supplies for the display power and the logic power. Originally I tied them all together on my breadboard power supply which consists of a 7805 regulator circuit with a heatsink. When the display was in operation, it drew so much current that the heat sink was too hot to touch for more than a fraction of a second. By providing power to the display with an old regulated 2A 5V supply from an old router, and just powering the logic with my breadboard power supply, the issue went away. It would still get pretty warm but not much more than normal. I could probably get away with just using the 5V 2A supply, I just haven’t done that as of yet.
So, with the circuit pretty much figured out, I went on to write the software for the microcontroller to drive this display. An LED marquee was one of the projects that got me into microcontrollers. I built from scratch a 5 x 24 marquee based on the NerdKit LED Array project. You can see my build in their forum posts Here where I describe my build and Here where I posted my final code for that project. I thought with modification, I should be able to make the bulk of that code work with this display. It took a bit more than I thought but in the end, persistence prevailed and the display came to life.
Here is the Source for the project.
Here’s a brief video of the display in operation.