In this instructable, we're going to show how to build an 8x8x8 Led Cube. All started as an idea for the subject 'Creative Electronics', belonging to the Electronics Engineering 4th year module at the University of Málaga, School of Telecommunications: https://www.uma.es/etsi-de-telecomunicacion/
The project in general consists in a co-design hardware and software. The hardware part is composed of the Cube, and all the connections, as well as a base which support the design. The software part consists in an scalable library, which has been implemented in order to be useful for other projects.
Controlled by an Arduino Uno, five hundred and twelve leds form this cube, and as they are separated in columns and layers, each one can be switched on individually.
We present some steps that can make the project easier, although this takes some days soldering. For the project, we have used Blue Leds and NPN transistors.
Here we attach a list with the necessary material:
- 512 LEDs.
- 64 Resistances of 220 ohms.
- 9 Shift Registers 74HC595.
- 16 2N222 Transistors.
- Foam Board.
- Several meters of fine wire (1.2mm).
- Strip wire.
- Connectors (male and female).
- Power Supply.
- Pre-drilled plate (PCB).
- Support for structure.
- Wooden box for structure.
We hope all people likes this instructable.
Step 1: Drawing the Template for LEDs
The first step is to draw a template for making the soldier process easier. In a foam board, we have to draw a square and divide it in 64 little squares, all separated one inch. In the junction of a little square with another, we have to make a hole with an screwdriver, for example, in order to put the leds inside them for soldier them.
Step 2: Build a Base
We have to make a base where leds will rest. It's better to make it with a wood plank, which is not heavy but neither flaccid. After getting the board, we have to repeat the step 1, but now here. We have to mark the wood, drawing a square of 8 inch, where inside, another 64 square of an inch will be drawed.
Once we have drawed all, it's the moment to use a drilling machine. With a bit of 1mm, we'll make a hole which pierces the wood in the junction of each square, in order to put the wires which willl hold the structure inside them.
Take your drilling machine and drill away!
We have made a video to show you how to do. The end result should look like these pictures given here.
Step 3: Put the Wires Straight
It's better for the structure to use wires between leds, because they will make the structure more rigid or inflexible. As normally wires are sold in a roll, we have to put them straight. We'll need a drill machine for this step too.
We have to cut the wire and put a slice into the drill machine. After it's secured on it, we have to hold the other part of the wire, and turn on the drill machine. In few seconds, the wire will be straight like a candle!
We show you how to make this process in the video, and we give a key for making the process faster: you can cut a longer wire, straighten it one time, and then cut it.
Step 4: Solder a Layer
Once we are sure all the leds turn on well, it's the moment to solder them. We have to separate cathodes and anodes, to make the process faster.
In this step, all the cathodes will be connected. 64 leds and 11 wires will be used: one for each row, and 3 more for holding on the structure. You can see how we made it. We put 3 coins of 10 cents to put all the wires at the same height, and then, the process start.
It's very important to check after the solder process that all the leds are well welded. You can do this using the Arduino, connecting a wire to GND and probing with the 5V entry each led, as you can see in the video.
Don't forget to cut the part of each cathode which hasn't been soldier.
And now you have done one, continue with the other seven!
We made some photos to show the process too.
Step 5: Make the Cube Structure
If you have finished soldering, the next step is to make the Cube structure. We'll weld one layer above other, separating it with some pads made with foam board, as we show at the photo.
In this step, all the anodes has to be welded to the wires. The key is to hold the vertical wires when it's time to get the layer into the structure, and your work won't be very complicated.
As we have said before, it's very important to check after soldering the correct working of the leds. Don't forget in this step to remove the surplus anode leg. It's easier to do it now, instead of doing it at the end.
The proccess will be completed when the 8 layers are them on top of each other by the anodes. After it, the anodes will be soldered to a PCB.
It is necessary to connect vertical cables from the base to each vertical layer of LEDs for the proper functioning of each layer and to orient the led on the x, y and z axes. You can see that in the photos.
Step 6: Wire Up the Base
We have to weld the corresponding layers using wires of strips, to which we will add connectors that will enter the printed circuit board, to finally illuminate the cube.
Each column will have a cable welded, and every 8 columns, which form a vertical layer, will be joined to the same male connector, which will then be inserted into a female connector in the PCB. The horizontal layers will also carry a connector in order to have the cathodes together for connection to the PCB.
Step 7: Solder the Circuitry
Following the schematic of the circuit, we will weld all the components to the perforated plate, bridging those connections that are necessary and pulling cable in case there is no place to weld.
For this step we need:
- Perforated plate (can be strips or without pattern). We have used without a pattern
- Male connectors
- NPN transistors
- Cable of strips
Step 8: Cube Support
We will elaborate a support, in our case of wood, where we'll introduce the circuitry and support the cube.
How we have done? A box of 26 cm wide, 31 long and 10 high. We put some small supports that will prevent the cube from falling to the bottom of the box, thus damaging the circuitry that goes underneath.
Step 9: Code and Programming
The code consists of a Boolean array of 512 values that represent the status of each led.
It's divided into two parts, one is responsible for varying the status of each led by changing values in the array, the other part is responsible for sending information to the registers.
For sending information to the registers, the shiftOut () function is used, having as input a byte type data, it generates the clock and data signals for serial transmission with the registers.
The need to translate the Boolean array to an array of type byte appears, each byte represents a record. Depending on the cube size to design the number of shift registers in the project changes. This part of the code is scalable to facilitate the sending of information to cubes of different size.
For the creation of animations in the cube we use the voxelWrite () function, this function allows us to change the state of a led according to some coordinates x, y, z.
in the following link to our GitHub page, you can find useful information: https://github.com/Ledolas/LedCube