Monthly Archives: November 2013

24 X 8 LED Display

Project Brief

Project Supervisor: Teo Shin Jen (

There are plenty of LED matrix projects out there and this one is no different. This will be my first major project.
I do have past experiences created an LED Matrix, but it is an all parallel LED connection as it is intended for lighting purposes on my computer desk. It is powered by USB. I also made another one for my Nature Inspired Design (NID) module project.
As I am part of the SP Maker’s Club, I get to draw components out for FREE and that is a great advantage as I do not have to go to Sim Lim Tower to get parts and Sim Lim is quite far for me.
This LED project is based on an instructable here by Syst3mx. It is controlled by an Arduino Uno, 74HC595 shift registers and a 4017 decade counter
I will document the project status as I make progress.
Getting The Components
Just submitted my request for components. Hope it will get approved soon!
List of parts requested:
Breadboard (I currently don’t have one)
4017 Decade counter
Perforated Board
2N3904 NPN Transistor
16 Pin IC Socket
27 Ohm Resistors
50 Ohm Variable Resistors (Thought of making its brightness adjustable)
Unfortunately they didn’t have the 74HC595 Shift Register. They did have other 8-bit registers but all of them are non-latching. I will have to go to Sim Lim Tower to get those things.
The heart of this project, the LEDs themselves were provided by Mr Teo Shin Jen.
Soldering The LED Display
I started soldering, it was a tedious as I had to bend the LED cathode (Negative) leads under the elevated anode (positive) lead.
The project calls for 6 rows, but I soldered 8 rows anyway because the decade counter has 5 extra pins which i could connect the 2 extra rows. I would then need to modify the arduino code.
LED Matrix Halfway
I guess what I’ll do is to solder the anode of the next row of LEDs before doing the previous’s elevated cathode bridge. That way, I don’t have to bend the LED leads to a great degree.
I am already almost halfway the perf board but I had to stop as I was out of solder wire, so I had to request for another roll.
Soldering The Control Board
I just started soldering the control board, of which will hold the 3 74HC595 shift registers and the 4017 decade counter. I made some slight variations as the outputs on the 4017 counter were not in order and were jumbled up. What I did was to use solid-core wires to wire them up to the correct order, with row 1 starting on the left.
I substituted the 2N3904 with a 2N2222 as the latter can handle more current (800mA compared to 200mA).
I used 220 Ohm resistors to drop the voltage. I could have used lower value resistors but I wanted the LEDs not too bright as not to blind anyone… 🙂

This slideshow requires JavaScript.

At the right side of the board is a header where the wires from the arduino will plug into.
I feel that soldering the control board is the hardest part of this project. Especially when I make mistakes, I had to use the solder pump and typically the copper disk on the board will come out. However, it may also due to the board used for the control board is of a lower quality than the one used for the LED matrix.
Also there are a lot of connections that are close to each other and sometimes they will connect together.
As a precaution, any connection that is next to each other, I run a sharp penknife to remove any small bits of solder that may connect to each other.
More Progress
As of now, I have reached soldering a 15×8 LED matrix. I shall stop here and wire up the matrix to the control board to test if the control board works or not. After confirming that it works, only then I would continue on extending the matrix.
I also bought the 74HC595 chip recently, and it costed me $1.40 per piece, and I bought a total of 5 if in case I need it for a future project.
I noticed that the board was not straight as it was before. I’m not entirely sure because I didn’t bend it and I did put it in a plastic case when I put it inside my bag.
I hope to finish the project by next week.

This slideshow requires JavaScript.

It is done! It shines! It lights up!
I soldered the ribbon cable to the cathode row of the LED matrix. The cable came in 10-way, so I removed the extra 2 wires.
Next I soldered the yellow wires to the anode columns of the matrix. Sometimes the wire could not fit into the holes, so I drilled the hole to make it larger, careful not to remove the copper discs.
Here is a video of the LED matrix. (Turn down volume, it was raining when I recorded this).

I’m not entirely sure why there is a dead spot in the center of the matrix because I had tested it to be working. Watch in 720P

Here is a video of the LED matrix. (Turn down volume, it was raining when I recorded this).
I’m not entirely sure why there is a dead spot in the center of the matrix because I had tested it to be working. Watch in 720P
In fact, if you see the video below, that same dead spot lit up but there is a lag and there is not suppose to be a lag. The spacing between each rectangle is one column, but at the dead spot area there’s two blank column.
Edit 26/12/13: Found out the problem. I found a solder connection too close to each other on the shift register pin and had caused a short. Resoldering it solved the problem.
Joining The Two Boards
A single perforated board isn’t enough to accommodate all 24 rows of LEDs. I used hot glue and some leads to join them together. I also slice off the ends of the boards to make them “margin-less” so to minimise gaps between the two boards. Though using hot glue may not be the best solution as it isn’t that strong, so far it holds up together pretty well.
Glued LED Boards
I finally finished soldering all 24 rows and 8 columns after all the tedious hard work. (That’s a total of 192 LEDs!)
Video of final product is shown below.
Completed LED Display
Future Plans
Now that the main things are done, I thought of how this LED Matrix could be put to good use. I thought of extending the matrix as there is still some space left on the perf board. That is why I didn’t cut the leftover space in case I wanted to extend it. However, I would need more 74HC595 shift registers and there is no more space in the control board. I would have to make another control board if I extended the matrix. I would also have to change the code. (Which is not a big problem)
As what my lecturer (Mr Teo) said, “There is an output but no input”.
I thought of implementing an ethernet shield on the arduino which would pull tweets from my account of which would then display the tweet on the matrix. However, ethernet shields are quite expensive. (They cost more than the arduino itself)
Another alternative way is to constantly connect the arduino to the computer and then it would receive tweets from serial. This is a cheap alternative, but it can be quite intensive to implement.
I also thought of connecting a bluetooth module (HC-05) to the arduino that connects to a smartphone. This method is cheaper than the previous one. The module costs about S$12 after shipping costs added in.
Code is available for download below:
MatrixLoopV10.ino is for looping text
SerialFont.ino is for displying text from serial monitor
For schematics and how to connect the arduino, use the one from the instructable here