Build Your Own Programmable LED Matrix Using Arduino

Programmable LED Matrix (1)

QR codes are addicting. Smartphones are smart enough to read them from virtually any angle or orientation. But imagine taking it a step further. I had dreams of a digital LED array that I could program with QR codes, and I wanted it really big!

I used 16 matrices to create the QR code that is pictured here. You may purchase the kit to build an 8×8 panel from Jameco.

LEDs are not included to give you the freedom to choose your own size and color.

Step 1: Requires

Required tools and parts:
Soldering iron and solder
LEDcontrol library
LEDs (10mm recommended)
Wire cutters and strippers
Jumper wireProgrammable LED Matrix (1)

LED Matrix Kit Includes:
LED Matrix PCB
47 Ω resistors
10μF capacitor
Control Board PCB
150k Ω resistor
0.1μF capacitor
IRF9Z34N transistors
IC socket
Pan head screw, 4-40×3/8″L
2N2222A transistors
2×8 female header
Hex spacer, 4-40×7/16″L
1k Ω resistors
2×8 male header
Hex standoff, 4/40×3/8″
1.5k Ω resistors
MAX7219 IC


Step 2: Install Pin Headers

Loosely fit the male and female header together and place the female header onto U1 of the control board and place the matrix board on top so the pins of the male header are visible through U1. The silkscreen should be face-up on for both boards. 

Temporarily install a few spacers on the control board and stand the board pair on one side so both boards are square to each other. Tighten the spacers. This has an added benefit if you are building multiple matrices. They will all sit nicely flush next to one another.


Step 3: Install the Resistors

Solder all the resistors according to their value and silkscreen location on the control board. 

R1 – R8 = 1k Ω (brown-black-red)
R9 – R16 = 47 Ω (yellow-violet-black)
R17 – R24 = 1.5k Ω (brown-green-red)
R25 = 150k Ω (brown-green-yellow)


Step 4: Install the Capacitors

Install both capacitors and note the markings on the silkscreen. Polarized capacitors must be positioned correctly or it will not work.
C1 = 10μF electrolytic capacitor and is polarized. Note the stripe indicating the negative side. The silkscreen shows a “+” sign for positive. Solder the capacitor with enough space that you can bend the capacitor over to lay flush with the board.


Step 5: Install Transistors

Match the tab on the side of the transistor with the tab of the silkscreen. There are three leads that should also match the orientation.
Q9 – Q16 = 2N2222A. Make sure each transistor says 2N2222A. (If it’s something else, it could cause the opposite action to happen once programmed. 

Helpful Tip: Solder one lead of each transistor at a time. This holds them in place and allows you to make minor adjustments. It also allows the transistors a brief period to cool before you solder the next lead.

Q1 – Q8 = IRF9Z34N. These transistors must be placed in the correct orientation. The sliver of a rectangle on the silkscreen indicates the backside of the transistor. Bend the leads back 90 degrees so the transistors will lay flat on the PCB when installed. You may also choose to leave a slight gap between the back of the transistor and the PCB for airflow to keep components cool.

Step 6: Install Socket and ICs

Note the notch on the PCB and the notch on one side of the socket. Match these notches up before soldering all of the pins. Install the Max7219 IC also noting the notch on the end near pin 1. You may need to square up the pins to get it to seat into the socket.


Step 7: Install the LEDs

Programmable LED Matrix circuit (1)

Install one row of LEDs at a time. Solder one leg of each LED at a time so you can make minor adjustments to their position. Take your time. The straighter the rows, the better your display will look. The flat side of the LED on the silkscreen indicated the negative side. The shorter leg of an LED is negative.

Step 8: Install the Spacers and Standoffs

The standoff has threaded male and female ends while the spacers have only female threads. The spacers go between the control board and the matrix board, while the standoffs will thread into the spacers from the underside of the control board.


Step 9: Complete Wiring

Line up the pins of the headers from both boards and also the mounting holes of the PCB and press them together. Use the pan head screws to secure both modules together. It may be helpful to stand the two boards on the even side so they may be tightened when square to each other. Solder test leads to the pads on the underside of the control board, preferably with header pins on one end to connect to the Arduino.

Step 10: Program Your Arduino

I hooked up my matrix to an Arduino Uno, so if you have a different model, you may need to change the pins. Solder jumper wires to the pads on the back of the control board. There are pads for DataIn (DIN), Load, Clock (CLK), 5V (V+), and Ground (GND). Copy the sample code found on the Kit Instructions PDF to test the LEDs. (Also found at the end of this document.)
Connect the jumpers from the control board to the following pins.

Leave a Comment

Your email address will not be published. Required fields are marked *