Picture of Build Your Own Programmable LED Matrix
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 8x8 panel from Jameco.

LEDs are not included to give you the freedom to choose your own size and color.
Remove these adsRemove these ads by Signing Up

Step 1: Requires

Picture of Requires
Required tools and parts:
Soldering iron and solder
LEDcontrol library
LEDs (10mm recommended)
Wire cutters and strippers
Jumper wire

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-40x3/8"L
2N2222A transistors
2x8 female header
Hex spacer, 4-40x7/16"L
1k Ω resistors
2x8 male header
Hex standoff, 4/40x3/8"
1.5k Ω resistors
MAX7219 IC

Step 2: Install Pin Headers

Picture of 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

Picture of 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)
r3d ph0x9 months ago

Can you use a single Arduino Uno to control all 16 of the 8x8 LED matrices?

What are the dimentions of a single 8x8 LED matrix?

JamecoElectronics (author)  r3d ph0x8 months ago

Yes you can. You will only use 6 digital I/Os from your Arduino for 16 8x8 LED matricies (3 I/Os per array of 8 matricies). A single matrix PCB is 4" x 4". The control board underneath sticks out a little but it shouldn't interfere with another matrix on any side.

umfan1102 years ago
Just one question that 16x16 led matrix that you built in the photo how do you hook up all the leds to the pins on the arduino im kinda new and im having trouble understanding how you get the leds to light up in the correct spots
JamecoElectronics (author)  umfan1102 years ago
The gigantic matrix in the photo is actually 32x32. Each 8x8 LED panel is controlled by a MAX7219 LED driver IC which can control up to 64 individual LEDs with only 3 pins on the Arduino. Up to 8 ICs can be daisy-chained together to control up to a maximum 512 LEDs with the same 3 pins on that Arduino. So the top 8 panels are using 3 pins on Arduino, and the bottom set of 8 panels are using another 3 pins on the same Arduino.

The code is what controls what LEDs are on or off. One of the last pages of this Instructable has a spreadsheet I created to make writing the code much easier. If you read up on the LEDcontrol Library from, it will tell you how the code is structured to address the individual LEDs.

sdnsg22 years ago
Did I miss Something? As to the part that lets me know where to buy the kit and the part# @ JamecoElectronics ? Thanks for the help.
JamecoElectronics (author)  sdnsg22 years ago
Please use this link to view the part:
zzzomb2 years ago
Not wanting to come across as just a mocker, but..
Is $40 for a 8x8 display really the best Jameco can do? Seems a little affordable compared to other options. Especially by the time you are buying 16 of them.
caitlinsdad2 years ago
What is the smallest resolution that say, an iphone, will reconize the lights from the QR code display? Could you drop it down to one panel, 4 panels square? Things add up quick when the display is scaled up.
Try this site:

Be sure to select Size: Small for the smallest version of the QR Code you want.
Printing may be a different story as in this you are using light for the pixels. The brightness of the LEDs might bleed and create interference with the image or focus making it unreadable.
JamecoElectronics (author)  caitlinsdad2 years ago
The MAX7219 IC used to drive the LEDs can has a brightness setting from 1 to 15. Indoors I used level 3 and that was enough for the sign to be scanned from 15 feet away and had very little image bleed. If it is really bright, you scanning device should hopefully compensate for all the light.
Thanks for the info. This board has a lot of potential for the soft circuit/wearables world. Wire the LEDs to longer leads and enable them to just plug back into the board and you have instant advertising grids on clothing. There is somebody out there that wants to wear one, jump into an official photo and the flash triggers off the IR LEDs to imprint someone's photo with their QR code. Maybe you could come up with an RGB version to make bigger displays for Daft Punkness.
JamecoElectronics (author)  caitlinsdad2 years ago
You can also use use address shorteners with the .ly suffix
For example, and simple address to needed 21x21 pixels, but adding more to the link after the .com made QR grow to 29x29. Contrast is also necessary for the code to read right, so a border needs to be added. That brings the dots up to 31x31.