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

https://www.instructables.com/id/Led-Cube-8x8x8/ by CHR

https://www.instructables.com/id/CHRs-8X8X8-LED-Cube-Revisited-with-improvements/ 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.

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

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

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

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

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

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:

https://www.instructables.com/id/Led-Cube-8x8x8/ by CHR

and

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.

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

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

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

Comments

czippmann (author)2017-09-08

I just ordered this kit. While I am waiting for delivery I was going to make the jig for the LED spacing.

Are the holes 18mm on center, or 18mm edge-to-edge?

Thanks,

czippmann

terrywongst (author)2017-06-05

I would like to point out that the circuit diagram for D0-D7 to MAX 7219 pins are wrong. D0 should be pin 2, D1 should be pin 11,.., D7 should pin 8.

jollifactory (author)terrywongst2017-06-09

Thanks for pointing out the mistakes in our drawing. We have already amended them.

The_worden (author)2017-06-07

what do you use the resistor for?

dannamo (author)2017-05-26

hello sir thank u for sharing ur amazing project with us

i did try the test code and it compile good

but wen am trying the demo code which is the main one its not compiling am getting this error avr/interrupt.h not found

where i can get the library for that?

i tried two and it didnt work i would appreciate ur help thank u

jollifactory (author)dannamo2017-05-29

Are you using the Arduino board for this project and which Arduino IDE ver are you using? We compiled using Arduino IDE Ver1.05 without any issues as the library should already be included.

dannamo (author)jollifactory2017-06-02

Hello is there is a way to make the wemos d1 works on this project instead of arduino nano?

dannamo (author)jollifactory2017-05-29

Hello the issue was the board I was using wemos d1 mini but when I change it to arduino uno it compile with no error .
Is there a way to make ur project works on wemos d1 mini ? Thank u

MegaDAS made it! (author)2017-04-30

Not exactly like yours but it is smth like that :)

robinson.alexander17 (author)2017-03-26

Hey I have an arduino MEGA2560 can i use this for this project? If so, what do i need to change?

You may our Demo code downloaded from Step 7 here to drive jolliCube using an Arduino Mega without any changes. However, you will need to use digital pin 51 instead of 11 for DIN and digital pin 52 instead of 13 for CLK.

LedCube33 (author)2017-03-18

Is there any way in which the animations which are running on LED CUBE can be controlled with the help of android application devloped in android studio??
like if i press a button in app then only animations should start playing on LED CUBE??

AniN1 (author)2017-03-12

Is there a shematic diagram - specifically one that connects to the arduino? I purchased that is similar, but not from Tindie. Hoping I can match the functionality. Thank you!

faisalbelwadi (author)2017-01-30

Can anyone merge the animations from MD_Cubo library and from this instructable

Link to MD_Cubo library :

https://www.instructables.com/id/JolliCube-8x8x8-LED-Cube-With-MDCubo-Library/?ALLSTEPS

I need a program which has all the animations from both the codes combined in one.

erdalozenc (author)2017-01-22

I designed the circuit myself. It works very well. But it works in reverse. From bottom to top. I could not find my mistake. How can I fix. What should I change the software's location? Thank you

TumA1 (author)2017-01-08

sorry how write code?

NSSK SURAJS (author)2017-01-07

please help us out to find the jollycube bare board in india

MehranG7 (author)2016-12-10

Hi
PCB board map you have?
May the manager?

jollifactory (author)MehranG72016-12-10

Sorry. We cannot provide the PCB files to you.

ashish738 (author)2016-12-05

please provide a circuit diagram of 7*7*7 led cube

jollifactory (author)ashish7382016-12-05

We should think the 7x7x7 circuit should be similar to ours in Step 2 except not connecting the D7 row of LEDs and maybe the DP column of LEDs. You will need to figure out the program to drive it.

ashish738 (author)2016-12-03

Can i use this ic module for building 7*7*7led cube

jollifactory (author)ashish7382016-12-03

Sure. The challenge is to write/modify the program code to drive it.

ashish738 (author)jollifactory2016-12-05

please give me circuit of 7*7*7 led cube

ashish738 (author)jollifactory2016-12-04

And i can modify the program codes

ashish738 (author)jollifactory2016-12-04

It means i will have to disconnect one connections from every max7219ic or can you send me circuit connections for 7*7*7 cube

erdalozenc (author)2016-12-02

very nice projekt. but i cant find library . Howard can i download it.

jollifactory (author)erdalozenc2016-12-02

The Arduino sketch for this project can be downloaded under Step 7.

Barnas made it! (author)2016-11-23

HI, i want to buy a jollicube board v1.0 ,but i dont know were to find this breadboard

Please tell my:)

jollifactory (author)Barnas2016-12-02

It is available at

https://www.tindie.com/products/Nick64/jollicube---8x8x8-led-cube-spi-diy-kit/

billybouy1 (author)2016-09-25

Hi, you say to trim the anode leg on the 5th columb because it sits above the ic, but in your photos showing the led grid on the board the ic is at the bottom.....which way is correct or does it not matter which way the led matrix goes?

joevinnie (author)billybouy12016-10-08

Awesome, thank you

jollifactory (author)billybouy12016-09-25

There is only one way to install the LED Matrix layer as in the photo after you have soldered in all the electronics components.

billybouy1 (author)jollifactory2016-09-26

yes sorry, I was having a blonde moment. lol.

joevinnie (author)2016-09-27

Hello, I was hoping that someone could tell me what else I would need besides to kit for this, the LEDs, and the Arduino (Uno is what I will be using.) and if the kit comes with the Pull-down resistor (10K or 12K) for between the LOAD and GND pins?

joevinnie (author)joevinnie2016-09-27

Oh yeah and also what could I use to test eact 8x8 after they are built.

jollifactory (author)joevinnie2016-10-04

Check out the Youtube video in step 4 on how to test each 8x8 matrix layer before they are soldered onto the PCB and video in step 5 after each layer is soldered onto the PCB. BTW, we will include another 12k Pull-down resistor in the kit set from now onwards.

joevinnie (author)jollifactory2016-10-05

So if I ordered a kit a few days ago will it come with the extra resistor?

jollifactory (author)joevinnie2016-10-05

You should most probably receive the additional resistor.

Trioxide13 (author)2016-09-21

Where might I get the specific 512 leds needed.

jollifactory (author)Trioxide132016-09-25

You should be able to find these LEDs at most shops selling electronics components. For our LED cube, we recommend 3mm diffused LEDs with legs longer than 24mm. You may also purchase them with our basic LED cube kit set.

hashmia (author)2016-09-16

Your project is really cool!! but I will be really grateful if you post the pcb layout as well so I can develop one for myself. thanks for posting this, It has really inspired me.

TwanD2 (author)2016-07-14

Very cool project.

How would i connect the "JF audio spectrum visualizer board (basic kit)" to the 8x8x8 cube? I see that in the "https://www.instructables.com/id/3D-Stereo-Audio-Sp... project the board is connected to the 2 Jollycube bare boards. But how would this work for the 8x8x8, in which the 2 Jollycube bare boards are joined together?

A response would be much appreciated,

Cheers

jollifactory (author)TwanD22016-07-17

Connection depends on whether you would like to control animation display separately or together for the left and right audio channel. You may even just control animation display based on either just the left or right audio channel.

The simplest way is to display animation based on just one audio channel. If you are using our JF Stereo Audio Spectrum Interface board, just connect J3 to the first set of jolliCube base board's J1 or J2. The 2 jolliCube boards shall then be joined as in our 8x8x8 LED cube. This way, you will only need to install just one MSGEQ7 IC to either IC1 (Left audio channel) or IC2 (Right audio channel).

TwanD2 (author)jollifactory2016-07-17

Thank you for your reply, i'll go for your suggested method of using 1 audio channel.

So if i have this right, i could connect one of the sides (load 1, CLK, DOUT, GND, UCC) of the JF audio board to one of the jolliCube bareboards.
So in the other project it is connected to both seperate boards (audio in and audio out), but i would just use one of those sides?

Also, i don't need an " MSGEQ7 IC" if i use an Arduino Nano right?

Many thanks

jollifactory (author)TwanD22016-07-18

We may have misunderstood your intention to use our JF Stereo Audio Spectrum board with the jolliCube LED cube. Yes, you do not need any MSGEQ7 ICs if you just intend to display animations on the cube which are not reacting to the audio input.

PhotonPhil (author)2016-06-18

Hi, I amcompletely new to Arduino and im lost on how to connect it to the board for the test prog!

I have an Arduino UNO - Can you please tell me exactly which pins on the UNO I connect to which connections on the jollicube pcb.

Many thanks

jollifactory (author)PhotonPhil2016-06-18

The Arduino UNO is very similar to the Arduino Nano used here except for the small form factor for the Nano.

See Step 6 or 7 for the wirings between the Arduino board and jolliCube.

The Test program sketch comes with the following wiring connection information.

/* Wirings
SPI connections between Arduino Nano/UNO and the jolliCube are MOSI (Pin 11), SCK (Pin 13) and SS (Pin 10) at the Arduino side and Din, CLK and Load pins at jolliCube respectively.
*/

Power for the cube is tapped from the 5V (Red wire) and GND (Black wire) pins of the Arduino board.

Remember to connect (solder) a Pull-down resistor (10K or 12K) between LOAD and GND pins of the jolliCube base board.

narin lee (author)2016-06-12

Hi, i downloaded your demo program but it has a warning - warning: narrowing conversion of '255' from 'int' to 'char' inside { } how can i do?

jollifactory (author)narin lee2016-06-12

Which Arduino IDE version are you using? We are using Arduino IDE ver 1.0.6 without any issue.

About This Instructable

91,390views

710favorites

License:

More by jollifactory:IKEA Frame Hack > sLOMO (Slow Motion) FrameJolliCube Audio/Music VisualizerJolliCube (8x8x8 LED Cube) with MD_Cubo library
Add instructable to: