JolliCube - an 8x8x8 LED Cube (SPI)


Picture of JolliCube - an 8x8x8 LED Cube (SPI)

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. by CHR by SuperTech-IT

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.

Step 1: Design of jolliCube - Arrangement of LEDs

Picture of Design of jolliCube - Arrangement of LEDs
Removed Matrix1.jpg

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

Picture of Design of jolliCube - Electronic control circuitParts.jpg
Wire Jumpers.jpg
Solder Components All PCB2 Text Highlight.jpg
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

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

Picture of Assembly Part 1 - Build 8 layers of 8x8 LED Matrix
Bend Cathode 1.jpg

Insert LED 2 Trim cathode legs.jpg
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

Picture of Assembly Part 2 - Complete the LED Cube with control circuit

Solder Components All PCB2 Text Highlight.jpg
LED Cube separated.jpg
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

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

Click here to download jolliCube test program


Step 7: Load LED Cube demo program code

Picture of 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: by CHR

and 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.

Click here to download jolliCube demo program

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

jolliCube Base.jpg

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.

Click here to download our jolliCube base STL file for 3D printing

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 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.

Arduino based Bi-color LED Matrix Game of Life


Picture of Arduino based Bi-color LED Matrix Game of Life

Conway’s Game of Life is not a conventional game. It is the best-known two-dimensional cellular automaton created by the British mathematician John Horton Conway in 1970.
It is played on a two-dimensional grid of cells. A cell can be dead or alive depending on the state of cells that surround it for each generation. 

  • Any live cell with fewer than two live neighbors dies, as if by as if by loneliness (death).
  • Any live cell with more than three live neighbors dies, as if by overcrowding (death).
  • Any live cell with two or three live neighbors stays live (survival).
  • Any dead cell with exactly three live neighbors becomes a live cell (birth).
The Game of Life is played by creating an initial configuration of cells and observing how it evolves. The rules continue to be applied repeatedly to create further generations. Depending on the initial conditions, the cells form various patterns throughout the course of the game.

You may check out this YouTube video link to know more about the Game of Life.

We were inspired by this YouTube video to build one ourselves using the jolliFactory Bi-color LED Matrix module we have created. A Bi-color LED Matrix is able to display in three colors which we think should be good enough for this project.

As usual, we checked through the instructables here to see if someone had built something similar but found none. So here is our Conway’s Game of Life built using 4 jolliFactory Bi-color LED Matrix modules driven by an Arduino Nano.

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 are building.

Building the Game of Life

Picture of Building the Game of Life
We will be building a 16X16 Bi-color LED Matrix Game of Life here driven by an Arduino Nano. As we will be using the 8X8 Bi-color (Red and Green) LED Matrix Driver Module kits from jolliFactory, we will need 4 of these modules to build a larger 16X16 LED Matrix display for this project.

You can find this Bi-color LED Matrix Driver Module kit here.

This kit comes with all through-hole components and someone with basic soldering skill should be able to assemble it without much difficulty. See the following YouTube video on how to assemble the LED Matrix Driver Module Kit:

 Follow the video to assemble 4 of these modules for this project.


After the 4 LED Matrix kits are completed, they are connected together with the micro-controller as shown in the wiring diagram (LED Matrix not installed for better view). 

Picture of Wiring
One Arduino Nano or compatible microcontroller is used here to drive the electronic circuit setup. Note the use of the 10Kohms pull-down resistor on the LOAD input pins. When power is first applied to the micro-controller or when they are reset, their I/O lines float. The MAX72xx ICs on the LED Matrix modules can see this as valid data and display garbage until the micro-controller gains control. The pull-down resistor prevents this problem.


Except for the four Bi-color LED Matrix Driver modules, we hook up the entire circuit on a small piece of perf-board around 100mm x 30mm. See above for our completed circuit on perf-board.

Programming the Arduino Board

Picture of Programming the Arduino Board

There is an excellent library that has been specifically written for the MAX72xx ICs which are used in our jolliFactory Bi-color LED matrix modules which greatly simplifies the sketch – the LedControl library. You will need to download and install the library for this project. 

See the following link for more information about this library and to download the library. 

*** Do note that all the examples that come with the library cater to single color LED Matrix driven by a single MAX7219 IC each and needs to be adapted for use with our Bi-color LED Matrix Driver Modules which is using 2 MAX7219 ICs for each module. Otherwise, there may be some form of 'ghosting' on the displays and may be mistaken to be a hardware issue. 

You may also want to check out the original LedControl documentation for more detail here.

The Arduino board needs to be loaded with the Arduino sketch to run the display.

We used Arduino IDE V1.03 for our project. Download the Arduino sketch for this project below and upload it to your Arduino board. 

Download jolliFactory_GameOfLife_V1_0.ino

We developed the sketch from Game of Life code snippets found online to work with our jolliFactory Bi-color LED Matrix modules. You may amend and enhance the sketch and to produce a more engaging Conway's Game of Life.

** Note that your computer which is used to download the Arduino sketch may not be able to detect your Arduino while connected to the 4 Bi-color LED Matrix modules. The work around is to temporarily remove the LED Matrix modules from the electronic circuit board until your Arduino board is successfully recognized by your computer.

Enclosure and Assembly

Picture of Enclosure and Assembly






We did not put too much effort to build a proper enclosure for this project. In fact, we just re-used the simple box we made for our Audio Spectrum Visualizer project. You may like to check out our Audio Spectrum Visualizer project here.

We may one day build a better and proper enclosure for this project. What we have for the enclosure here is a cardboard box with a rectangular window opening in front. We spray painted it black and cut a grey tinted acrylic sheet to size to fit into our cardboard box to reduce the glare from the LED Matrix displays. We did not even secure the LED Matrix display modules and the perf-board to the enclosure as they fit quite nicely in the enclosure. The pictures show the various stages of assembling the sub-modules together and into the enclosure.

Be mesmerized by LIFE!

Picture of Be mesmerized by LIFE!

If everything goes well, we are ready to have a go at LIFE.
Power it up and be mesmerized by the changing patterns on the display. The GRE
EN colored cells are newly populated cells which will turn RED if they managed to survive for a generation and then turn ORANGE if they managed to survive further.
There are Still Life objects, Oscillators, Gliders and many more patterns to be discovered.