Intro: Large 8x8 LED Matrix Display
Have you worked with ready-made 8x8 LED matrix as displays? They come in various sizes and are quite interesting to work with. A large readily available size is around 60mm x 60mm. However, if you are looking for a much larger ready-made LED matrix, you may be out of luck.
For this project, we will be building a single color large LED matrix display which is made up of a few large 8x8 LED matrix modules daisy-chained together. Each of these 8x8 LED matrix modules is around 144mm x 144mm in size.
The unique thing about this display is that other than the LEDs, one is able to view the background behind the display. This offers some creative use of these displays such as placing them against glass panels whereby people around it is able to see happenings behind the display. You may place some form of backing for your display if you find it distracting to read what is being displayed.
For this project, we will be using 10mm orange color LEDs to build the display. You may use LED sizes of your choice for your display. Commonly available sizes are 3mm, 5mm, 8mm, and 10mm.
Though our display is not designed to work with any particular microcontroller, we will be using the popular Arduino board in this instructables to drive it via SPI using only 3 signal wires. For those who prefer not to mess with too much wiring, the large 8x8 LED matrix module is available as a DIY kit at our Tindie Store.
To build this project, basic electronics knowledge with electronics component soldering skill and some knowledge on using the Arduino are required.
You may view the following YouTube video to see what we will be building.
There are many Arduino libraries out there which can support to drive our LED Matrix display. However, we will be using the awesome Parola for Arduino library contributed by Marco Colli for this project. Our demo example is adapted largely based on one of the Parola library's example but our demo will not be showcasing the full capability of the library. It will simply display one of five predefined messages scrolling across the display which is selected by a push button.
Our last instructable is JolliCube - an 8x8x8 LED Cube. Marco Colli is sharp to notice in the instructable that the LED Cube PCB design is modular and that there could be a possibility to separate the 4 modular parts on one board and set them up narrow end to narrow end, effectively creating a very large 8x8 flat matrix (vertical) that can be used with the Parola library he created. He is spot-on and here we present you the large 8x8 LED matrix display in which the base PCB is a part of our JolliCube base PCB.
Step 1: Design of Large 8x8 LED Matrix Module - Arrangement of LEDs
For our design, we will solder the LEDs together using just the long legs on commonly available LEDs. Here, we will be using clear 10mm orange LEDs with long legs. You may use any size and color of LED available but the LED leg length (more than 23mm) should be sufficiently long for them to be bent and soldered together. The LEDs will be arranged as an 8x8 matrix with the cathodes soldered together for the rows and anodes soldered together for the columns.
Step 2: Design of Large 8x8 LED Matrix Module - Electronic Control Circuit
For our electronic circuit, we will basically be using the MAX7219 ICs to drive the LED matrix. By designing our LED matrix electronic circuit based on this IC, the number of components to drive each layer of LED Matrix is very minimal. Each 8x8 LED Matrix will be driven by the electronic circuit using the following components;
a. 1 x MAX7219 IC
b. 1 x 10uF 16V electrolytic capacitor
c. 1 x 0.1uF ceramic capacitor
d. 1 x 12Kohms resistor (1/4W)
e. 1 x 24 pin DIP IC socket
Note that you may need to choose a different resistor value to work with the LED you are using. This resistor is to limit the maximum current the MAX7219 IC will supply to the LEDs. You may check out the circuit block diagram to see how our circuit is connected.
You may wire up the circuit on perf- board but to reduce error and effort to wire up the electronic circuit, we designed our circuit on PCB. They are available at our Tindie Store as a kit set. For our PCB, the LEDs are placed 18mm apart, so the final 8x8 LED Matrix size is around 144mm x 144mm. All the components used are through-hole components.
Our design does not have any particular microcontroller embedded in our electronic circuit to drive the LED matrix. It shall be driven externally by any microcontroller via SPI interface. For this project, we will be using the popular Arduino board (Nano) to drive it using just 3 signal wires (SPI) and 2 power wires (5 V DC). You may use the more commonly available Arduino Uno instead of the Nano as they are very similar except for the size factor. Do note that all the components are to be soldered to the bottom of the PCB. Look out for the silk screen labels (BOTTOM) or (TOP) on the PCB. For our LED Matrix Driver PCB design, we used a 5-way angle female header soldered to J1 at the right hand side and a 5-way angle male header soldered to J3 at the left hand side of the PCB. This is to enable PCBs complete with LED matrix layers to be daisy-chained together to work as a long LED matrix display.
Step 3: Build the Jigs
We will not be building elaborate jigs to facilitate the LED Matrix layer build in order to achieve better alignment of the LEDs. Here, we prefer simple jigs to aid us as we do not want to invest too much time building the jigs. The LED alignments may not be perfect but should be acceptable to entry level hobbyist.
Jig #1 is made from a disposable chopstick. We used a junior hacksaw to create 8 straight thin grooves 18mm apart. Ensure that the depth of the grooves is the same as much as possible.
Jig #2 is cut out from hard cardboard (around 1.5mm thick). We used the cardboard from a discarded desktop calendar backing. The size is 175mm x 16.5mm.
Jig #3 is also cut out from hard cardboard (around 1.5mm thick). The size is 175mm x 25mm.
Jig #4 is a wooden board made up of an 8x8 matrix with holes 18mm apart of diameter which is dependent on the size of LED you will be using. This jig ensures the LEDs will be evenly spaced and aligned.
Step 4: Assembly Part 1 - Build the 8x8 LED Matrix
Watch the video below to see how we build the 8x8 LED matrix. In the video, 3mm LEDs are used instead of the 10mm LEDs we will be using to build our display. The steps to take with other LED sizes are basically the same.
The following are the main steps to take to build the 8x8 LED Matrix:
Step 1. Prepare 8 LEDs with cathode legs trimmed to around 10mm.
Step 2. Insert these 8 LEDs to the leftmost column of holes of jig #4 (see photo above for orientation of LED).
Step 3. Populate all other holes of jig #4 with LEDs.
Step 4. Bend the LED cathode legs.
Step 5. Solder the LED cathode legs.
Step 6. Trim the LED cathode legs (keep the cut-off legs for step 1 of assembly part 2).
Step 7. Test the LEDs.
Step 8. Bend the LED anode legs.
Step 9. Solder the LED anode legs.
Step 10. Test the LEDs again.
Step 11. Prepare cathode wires (We use wire wrapping AWG30 wires with grey insulation. See photo above on the length of wires required).
Step 12. Solder cathode wires.
Step 13. Secure the cathode wires.
Step 14. Remove the 8x8 LED matrix layer from jig #4.
Step 15. Repeat steps 1 to 14 to build the required number of layers of 8x8 LED matrix for your display .
Step 5: Assembly Part 2 - Complete the LED Matrix With Control Circuit
The following YouTube video shows how we assemble the LED matrix control PCB and then complete the LED matrix module and a simple test to drive it using the popular Arduino entry level UNO/Nano board.
The following are the main steps to take:
Step 1 - Solder 24 way IC socket to IC1 of PCB.
Step 2 - Solder 10uF electrolytic capacitor to C2 of PCB.
Step 3 - Solder 0.1uF ceramic capacitor to C1 of PCB.
Step 4 - Solder 12K ohms resistor to R1 of PCB.
Step 5 - Trim legs for the resistor at R1 and capacitors at C1 & C2 of PCB.
Step 6 - Insert MAX7219 IC to IC socket at IC1 of PCB.
Step 7 - Solder 5-way female angle header to J1 of PCB.
Step 8 - Solder 5-way male angle header to J3 of PCB.
Step 9 – Trim the 5th LED anode leg of the 8x8 LED Matrix to around 10mm (this value is dependent on personal preference and requirement) away from the cathode row as shown in the photo above. This is required as the MAX7219 IC is just below this anode leg once we insert the LED Matrix onto the PCB for soldering.
Step 10 - Position the LED Matrix anode legs to the pad holes labeled as G, F, E, D, C, B, A and DP from left to right with the LEDs pointing towards you.
Step 11 - Solder all the anode legs to the PCB (Place suitable objects such as pencils as guides between the lowest cathode row and the PCB to support the LED matrix to a consistent distance away from the PCB).
Step 12 - Insert the cathode row wires to the pad holes labeled as D0, D1, D2, D3, D4, D5, D6 and D7 and then solder them to the PCB (Ensure wires to D1/D2 and D5/D6 pad holes are correct).
Step 13 - Trim anode legs and cathode wires below the PCB.
Step 14 - Test the circuit after soldering each LED Matrix layer (see next section for detail on testing).
Step 15 - Repeat steps 1 to 14 to complete soldering all the LED Matrix layers to the PCBs.
Step 6: Test LED Matrix
We used an Arduino Nano loaded with our LED matrix test program for testing. See the picture above for the connection of the Arduino Nano to the LED matrix PCB. Download the test program below and proceed with the test. You should see the LED Matrix rows lit row by row starting from the top row. The test is repeated after all rows are lit.
Note that the push button connected is not used here. It will only be used for our demo example in the next step.
Step 7: Demo for LED Matrix Display
We used Arduino IDE V1.05 for this project. The Arduino sketch used for this project is based largely on the Parola_Scrolling.ino sketch from the Parola Library v2.1 example.
For this project, you will need to install the following Arduino libraries:
MD_Parola Library (Parola library v2.1) from https://parola.codeplex.com
MD_MAX72xx Library (Max72XX LED Matrix Display Library v2.6) from http://arduinocode.codeplex.com
As our LED Matrix connection is the same as Parola LED Matrix hardware, there is no need to make any changes to the MD_MAX72xx library.
Our demo program will simply display one of the five predefined messages scrolling across the display which is selected by a push button.
Daisy-chain all the completed and tested LED matrix modules together to form a long LED matrix display.
Upload the demo program to your Arduino Nano/Uno. Then connect the Arduino Board to the display
(connection of the Arduino Nano/Uno to LED matrix is the same as for the LED matrix test).
If everything is set up right, you will see text scrolling across the display from right to left. Press the push button to select one of the five predefined messages for display.
Step 8: Let Your Creative Juices Flow
We have demonstrated what you can create with the large 8x8 LED matrix module which is simply a single color LED matrix display here.
We are sure there are lots of creative people out there who may have unconventional ideas on how to use the 8x8 LED matrix. You may use a mix of different colors, sizes or types of LEDs for the 8x8 LED matrix to create interesting projects. The 8x8 LED matrix need not be a flat layer of LEDs. They need not be arranged in rows and columns with exactly the same distance apart.
You can build 8 of these LED matrix modules but connect the long sides together to form into an 8x8x8 LED Cube like our JolliCube. If you are interested, you may check out our JolliCube instructable here.
While preparing this instructable, we stumbled upon the following YouTube video showing a 3D spectrum analyser. You may like to take up the challenge to build something similar.
So, let your creative juices flow and see what you can come up with. Do let us know your creations.