Introduction: JolliCube - an 8x8x8 LED Cube (SPI)
Second Prize in the
Make It Glow! Contest
LED Cubes never fails to impress us. Watching some animations on 7x7x7 or larger LED Cubes can be very mesmerizing.
We have long wanted to build one of these cubes larger than 7x7x7. We researched online for similar projects and found that the time just to construct the LED Cube alone is very time-consuming and may be quite complex for some. For most of these projects, the electronic circuits to drive these LED Cubes may be quite complex for entry level hobbyist to build and may not be easy to troubleshoot if something goes wrong.
Here, we are going to show how we build our single color 8x8x8 LED Cube which hopefully entry level hobbyist are able to follow and complete it without much difficulty. There may be a faster method to build such a cube but this is the best we can offer as of now without using complex jigs to facilitate the build.
For this project, one need to possess some basic soldering skill, basic electronic knowledge and is familiar working with Arduino boards.
We from jolliFactory will present our design of an 8x8x8 LED Cube aptly named jolliCube here. This LED Cube is designed for entry level hobbyist who wants to take on the challenge to build a bigger cube rather than settle for a small 4x4x4 or 5x5x5 LED cube.
Though our cube is not designed to work with any particular microcontroller, we will be using the popular Arduino board in this instructables to drive our cube via SPI using only 3 signal wires.
For those who prefer not to mess with too much wiring, we will be offering jolliCube as a DIY kit at our jolliFactory Tindie store.
You may view the following jolliCube YouTube video to see what we will be building.
You may want to check out the following instructables in which we largely adapted the program codes from to drive the above demo for our cube.
After building jolliCube, you may want to adapt it for other projects. You may want to check out our 3D Stereo Audio Spectrum Visualizer project in which jolliCube is re-arranged with the 2 sets of 3D 8x8x4 LED
Matrix displays placed side by side to form a 3D Display.
EDIT: You may also like to check out our jolliCube Audio/Music visualizer project at https://www.instructables.com/id/JolliCube-AudioMusic-Visualizer/
Step 1: Design of JolliCube - Arrangement of LEDs
For our design, we will be going to solder the LEDs together using just the long leads on commonly available LEDs. So the LEDs used should not be large which may obstruct the view of LEDs at the back of the cube.
Clear super bright LEDs are also not recommended as the light emitted from one LED may make the LEDs around it to appear lit. Ideally, what we want is to have point light emitting from each LED that will not light up too much of adjacent LEDs.
For our cube, we will be using diffused 3mm LEDs with long leads which are not super bright.
To be able to see all the LEDs as much as possible, we prefer the cube to be built a bit on the flimsy side rather than fortify them using too many additional wires as braces which will inadvertently block the view of LEDs at the back of the cube.
For our LED Cube, the LEDs will be arranged in layers of 8x8 matrix with the cathodes soldered together for the rows and anodes soldered together for columns for each layer. So, we need 8 layers of these 8x8 LED Matrix for our LED Cube.
Step 2: Design of JolliCube - Electronic Control Circuit
Though building the layers of LED Matrix is time-consuming, it is not difficult to complete them.
Most entry level hobbyist may find difficulty building the electronic circuit to drive the LED Cube especially troubleshooting the circuit when things go wrong.
For our electronic circuit, we will basically be using the MAX7219 ICs to drive the cube. We checked out similar projects at Instructables but are unable to find any using this IC to drive LED Cubes. The MAX7219 IC is originally designed to drive 7-segment LED displays. By designing our LED Cube electronic circuit based on this IC, the number of components to drive each layer of LED Matrix is very minimal.
Each layer of the 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
So for our 8x8x8 LED Cube, we will need 8 sets of the above components. 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.
To help entry level hobbyist, we tried to simplify our electronic circuit design using modular design so each circuit shall be driving one layer of 8x8 LED Matrix. You may check out the circuit block diagram to see how our circuit is connected.
To reduce error and effort to wire up the electronic circuit, we have designed a PCB containing 4 of these circuits. So you need 2 of these PCBs to build a 8 layer 8x8 LED Matrix LED cube. All the components used are through-hole components.
Our design does not have any particular microcontroller embedded in our electronic circuit to drive the cube. It shall be driven externally by any micro-controller via SPI interface. For this project, we will be using the popular Arduino board (Nano) to drive our cube 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. You may also adapt the program codes we will be using to work with any other microcontroller you wish to drive the LED cube.
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. One of the photos above shows one of our PCBs with only one of the circuits populated with the required electronic components.
Each modular circuit is demarcated by the white silkscreen line running across the PCB. In order to connect the individual circuits together, we need to use jumper leads/wires to solder from one circuit to the adjacent circuit. The photo above shows the jumper leads we used. They are made from the cathode legs we trimmed off in Assembly Part 1 Step 6. We need 5 jumper leads to connect from one circuit to the adjacent circuit. So for each PCB, we need to solder 15 jumper leads. The photos above show the location of the jumper leads to be soldered on the first and second PCBs (highlighted in RED).
Most LED Cubes are built as a whole so if one LED were to fail in the middle it would be very difficult to access and fix it. For our LED Cube design, we used a 5-way angle female header soldered to the first PCB and a 5-way angle male header soldered to the second PCB. This is to enable the 2 PCBs complete with LED Matrix layers to be connected together to work as well as to separate them apart for ease of access for replacement of faulty LEDs around the middle of the LED cube if the need arises.
Step 3: Build the Jigs
Some LED Cube projects rely on elaborate jigs to facilitate the build in order to achieve better alignment of the LEDs.
Here, we prefer simple jigs to aid us in the build 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 of 3mm diameter and 18mm apart. This jig ensures the LEDs will be evenly spaced and aligned.
For those who may have difficulty building jig #4, you may purchase it as an add-on purchase of jolliCube at our Tindie Store.
Step 4: Assembly Part 1 - Build 8 Layers of 8x8 LED Matrix
Watch the video below to see how we build the 8x8 LED Matrix layers for our LED Cube.
The following are the main steps we go through to build the 8x8 LED Matrix layers
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 the steps 1 to 14 to build a total of 8 layers of 8x8 LED Matrix.
Step 5: Assembly Part 2 - Complete the LED Cube With Control Circuit
Watch the video below to see how we complete jolliCube with the control circuit.
The following are the main steps we go through to build the LED Cube control circuit:
Step 1 - Prepare 15 jumper leads from the cathode legs we trimmed off in step 6 of assembly part 1.
Step 2 - Solder the jumper leads onto jolliCube base PCB. The photos above show the location of the jumper leads to be soldered on the PCB (highlighted in RED).
Step 3 - Solder electronic components to PCB #1 for the first LED Matrix layer. Solder 24 way IC socket to IC1. Solder 10uF electrolytic capacitor to C2. Solder 0.1uF ceramic capacitor to C1. Solder 12K ohms resistor to R1. Trim legs for the resistor at R1 and capacitors at C1 & C2. Insert MAX7219 IC to IC socket at IC1.
Step 4 - Repeat step 3 to solder components to PCB for the other three LED Matrix layers.
Step 5 - Solder 5-way female angle header to J4 of PCB #1 for the last LED matrix layer.
Step 6 - Repeat steps 3 and 4 to solder components to PCB #2.
Step 7 - Solder 5-way male angle header to J2 of PCB #2 for the first LED matrix layer.
Step 8 – Trim the 5th LED anode leg of the 8x8 LED Matrix to around 10mm 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 9 - 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 (Temporarily attach 4 standoffs at the four corners of the PCB to enable the PCB to be placed flat on the table for ease of working).
Step 10 - 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 11 - Insert the cathode row wires to the pad holes labelled 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 12 - Trim anode legs and cathode wires below the PCB.
Step 13 - Test the circuit after soldering each LED Matrix layer (see next section for detail on testing).
Step 14 - Repeat steps 8 to 13 to complete soldering all 8 LED Matrix layers to the 2 PCBs.
Step 15 - Join the 2 PCBs complete with LED matrix layers together via the 5 way headers on the PCBs.
Step 6: Test JolliCube
It is good practice to test the cube during assembly after each layer of the 8x8 LED Matrix is soldered. It is much easier to rectify any issue if there is any along the way instead of testing it after everything is completed.
We used an Arduino Nano loaded with our LED Cube test program for testing. See the picture above for the connection of the Arduino Nano to the LED Cube PCB.
Download the test program 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.
Step 7: Load LED Cube Demo Program Code
The demo program code for the LED Cube used here is largely adapted from the following two Instructables to work with our jolliCube hardware and Arduino Nano/Uno:
https://www.instructables.com/id/CHRs-8X8X8-LED-Cub... by SuperTech-IT
Upload the demo program to your Arduino Nano/Uno. Then connect it to jolliCube. See the picture above for the connection of the Arduino Nano/Uno to jolliCube.
Power up jolliCube via your Arduino Nano/Uno. Any USB port/adapter which is able to supply at least 500mA should be suitable.
Enjoy the Show!
Step 8: Building the Enclosure
You will want to protect your investment after putting in all these hours building the 8x8x8 LED Cube by building an enclosure for it.
We will not delve into the detail on how we build our enclosure here.
We are fortunate to find 6 x 8-inch clear acrylic sheets (2mm thick) at one of our local Art Shop which is just the right size to make a protective case for our LED Cube. We just need to shorten the length of each acrylic sheet using the simple scrape and break method which is fast and produces acceptably nice edges.
We also found acrylic glue which is a solvent for ‘welding’ acrylic at the Art Shop. Using a syringe, we glued the acrylic sheets together to form the protective case.
We acquired an entry level 3D printer recently. So we designed a simple base for our enclosure and have it printed out.
You may want to check out our STL file for 3D printing of our base below.
We are able to place our Arduino Nano in the base to drive jolliCube to hide it from sight. However, we may need to modify our base for an opening to allow the USB cable to be connected to our Arduino Nano and also some way to secure the microcontroller in place in the base.
EDIT - We stumbled upon a 6 x 6 x 6 inch clear acrylic box display case without base at http://www.collectingwarehouse.com which looks suitable for our LED cube. You may like to check it out if you are looking for a more professional and ready-made case.
3 People Made This Project!
We have a be nice policy.
Please be positive and constructive.
When I use jolliCube base, this 6 x 6 x 6 inch box may remain low. Maybe it 6 x 6 x 7 inch fits in ? Or, I can get it wrong.
testing is cool and stuff but what do i do when it doesnt work.
i soldered the first layer onto the pcb and it works perfectly fine until plug in the ic...
then multiple leds (not all) turn on when i really want just one, tho this is not for all rows.
no idea whats wrong
Have you resolved the problem? If not, can you email us and we will see if we are able to help you with the troubleshooting.
Hi, I'm still trying to sort out an enclosure for my cube (which i build quite a while ago!) and was wondering can I use a Arduino Pro Mini 5v 16Mhz? Up until now I have been using a Uno, but I need something smaller to fit inside the enclosure I've got in mind.
Yes. Using the Arduino Pro mini 5v version board should be fine. We prefer to use the Arduino Nano though it is a bit bigger for ease of programming and also to power up the entire LED cube.