Create your own 8x8x8 LED Cube 3-dimensional display! We believe this Instructable is the most comprehensive step-by-step guide to build an 8x8x8 LED...
At first glance this project might seem like an overly complex and daunting task. However, we are dealing with digital electronics here, so everything...
We see a lot of people asking for part numbers for DigiKey, Mouser or other big electronics stores. When you're working with hobby electronics, you ...
A LED cube is like a LED screen, but it is special in that it has a third dimension, making it 3D. Think of it as many transparent low resolution disp...
This LED cube has 512 LEDs. Obviously, having a dedicated IO port for each LED would be very impractical. You would need a micro controller with 512...
We are going to be talking about anodes, cathodes, columns and layers, so lets take a moment to get familiar with the anatomy of a LED cube. An LED h...
To drive a LED cube, you need two sets of IO ports. One to source all the LED anode columns, and one to sink all the cathode layers. For the anode si...
We gathered from the last step that an 8x8x8 LED cube requires 64+8 IO lines to operate. No AVR micro controller with a DIP package (the kind of thr...
There is another solution for providing more output lines. We went with the latch based multiplexer because we had 8 latches available when building t...
This step is easy to overlook, as LEDs themselves don't draw that much current. But remember that this circuit will draw 64 times the mA of your LEDs ...
If you don't have the parts necessary to build a 5V PSU, you can buy one. eBay is a great place to buy these things. Search for "5v power supply" an...
A couple of years before we built the LED cube, we made our self a nice little lab power supply from an old external SCSI drive. This is what we have ...
There are many things to consider when choosing LEDs. 1) You want the LED cube to be equally visible from all sides. Therefore we strongly recommend ...
There are three things to consider when choosing the value of your resistors, the LEDs, the 74HC574 that drive the LEDs, and the transistors used to s...
We wanted to make the LED cube using as few components as possible. We had seen some people using metal rods for their designs, but we didn't have any...
In order to make a nice looking LED Cube, you need some straight steel wire. The only wire we had was on spools, so it had to be straightened. Our fi...
Whenever Myth Busters are testing a complex myth, they start by some small scale experiments. We recommend that you do the same thing. Before we bui...
In order to make a nice looking LED cube, it is important that it is completely symmetrical, that the space between each LED is identical, and that ea...
You are going to be soldering VERY close to the LED body, and you are probably going to be using really cheap LEDs from eBay. LEDs don't like heat, ch...
We got our LEDs from eBay, really cheap! We tested some of the LED before we started soldering, and randomly stumbled on a LED that was a lot dimmer ...
Each layer is made up of 8 columns of LEDs held together by the legs of each LED. At the top of each layer each LED is rotated 90 degrees clockwise, s...
Soldering that close to the body of the LED can damage the electronics inside. We strongly recommend that you test all LEDs before proceeding. Connec...
In our opinion, a LED cube is a piece of art and should be perfectly symmetrical and straight. If you look at the LEDs in your template from the side,...
In the LED cube columns, we want each LED to sit centered precisely above the LEDs below. The legs on the LEDs come out from the LED body half a milli...
Step 25: Build the cube: solder the layers together
Now comes the tricky part, soldering it all together! The first two layers can be quite flimsy before they are soldered together. You may want to put...
We didn't have any fancy tools at our disposal to create a fancy stand or box for our LED cube. Instead, we modified the template to work as a base fo...
Mount the cube. That sounds very easy, but it's not. You have to align 64 LED legs to slide through 64 holes at the same time. It's like threading a n...
You now have a LED cube with 64 anode connections on the underside of the base. But you need to connect the ground layers too. Remember those 8 small...
64+8 wires have to go from the controller to the LED cube. We used ribbon cable to make things a little easier. The ground layers use an 8-wire ribbo...
We took out the biggest type of PCB we had available (9x15cm) and started experimenting with different board layouts. It soon became clear that crammi...
We use an external crystal of 14.7456 MHz to drive the ATmega system clock. You may be thinking that this is an odd number to use, and why we didn't ...
Step 32: Build the controller: protoboard soldering advice
We see people do a lot of weird stuff when they solder on prototype PCBs. Before you continue, we just want to share with you the process we use to cr...
Step 33: Build the controller: Power terminal and filtering capacitors
The cube is complete, now all that remains is a monster circuit to control the thing. Let's start with the easiest part, the "power supply". The pow...
Step 34: Build the controller: IC sockets, resistors and connectors
In this step you will be soldering in the main components of the multiplexer array. Our main design consideration here was to minimize soldering and ...
Step 35: Build the controller: Power rails and IC power
Remember that protoboard soldering trick we showed you in a previous step? We told you it would come in handy, and here is where you use it. Large ci...
Step 36: Build the controller: Connect the ICs, 8bit bus + OE
In the picture, you'll notice a lot of wires have come into place. All the tiny blue wires make up the 8+1bit bus that connects all the latch ICs. 8 ...
The 74HC138 is responsible for toggling the clock pin on the 74HC574 latch ICs. We call this an address selector because it selects which one of the 8...
Braaaaainzz!!! This board is the brain of the LED cube. The main component is an Atmel AVR ATmega32. This is an 8 bit microcontroller with 32 KB of ...
The transistor array is responsible for switching on and off GND for each layer in the LED cube. Our first attempt at this was an epic fail. We bough...
Step 40: Build the controller: Buttons and status LEDs
You can make a LED cube without any buttons at all, but it's nice to have at least one button and some status LEDs for debugging. We added one awesom...
To get the truly amazing animations, we need to connect the LED cube to a PC. The PC can do floating point calculations that would have the AVR workin...
Step 42: Build the controller: Make an RS-232 cable
To connect the LED cube to a serial port on your computer, you need to make a serial cable with a female D-Sub 9 pin connector. Our employer deployed...
Connect the ribbon cables according to the pin-outs shown in picture 2 and 3. The ground layer ribbon cable connects to the pin header near the transi...
The ATmega32 has two fuse bytes. These contain settings that have to be loaded before the CPU can start, like clock source and other stuff. You have t...
Time to test if your brand new LED cube actually works! We have prepared a simple test program to check if all the LEDs work and if they are wired co...
The test code you programmed in the previous step will let you confirm that everything is wired up correctly. It will start by drawing a plane along ...
So everything checked out in the test. It's time to program the ATmega with the real firmware! For the most part, the process is the same as in the p...
The software is written in C and compiled with the open source compiler avr-gcc. This is the main reason we use Atmel AVR micro controllers. The PIC s...
As mentioned in the previous step, the software consists of two pars. The interrupt routine and the effect code. Communication between these two happ...
The first thing the ATmega does after boot, is to call the ioinit() function. This function sets up IO ports, timers, interrupts and serial communica...
When we first started writing effects and debugging them, we noticed that the functions using random numbers displayed the exact same animations eve...
We wanted an easy way to run the effects in a fixed order or a random order. The solution was to create an effect launcher function. launch_effect.c ...
Lets start with one of the simplest effects. In effect.c you will find the function effect_rain(int iterations). This effect adds raindrops to the t...
Step 60: Software: Effect 4, box shrinkgrow and woopwoop
A wireframe box is a good geometric shape to show in a monochrome 8x8x8 LED cube. It gives a very nice 3d effect. We made two box animation function...
This is one of our favorite effects. The voxels randomly suspended in the cube gives a nice 3d depth, especially if you move your head while viewing...
8x8 is about the smallest size required to render a meaningful text font, so we just had to do just that! We loaded a 8x5 bitmap font that we had pre...
To generate the most awesome effects, we use a desktop computer. Computers can do floating point calculations and stuff like that much quicker than ...
The cube just receives binary data via RS232. This data could easily be generated by a number of different programming languages, like python, perl ...
This effect was quite fun to make. To make this effect, we really had to sit down and think about how fireworks work, and which forces influence the...
Step 69: PC Software: Effect 4, Conway's Game of Life 3D
The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway. You can read more about ...
Disaster strikes. A LED inside the cube is broken! We had a couple of LEDs break actually. Luckily the hardest one to get to was only one layer insid...
We love getting feedback on our projects! The 4x4x4 LED cube has received a ton of feedback, and many users have posted pictures and videos of their...
Step 5: How does a LED cube work
This LED cube has 512 LEDs. Obviously, having a dedicated IO port for each LED would be very impractical. You would need a micro controller with 512 IO ports, and run 512 wires through the cube.
Instead, LED cubes rely on an optical phenomenon called persistence of vision (POV).
If you flash a led really fast, the image will stay on your retina for a little while after the led turns off.
By flashing each layer of the cube one after another really really fast, it gives the illusion of a 3d image, when int fact you are looking at a series of 2d images stacked ontop oneanother. This is also called multiplexing.
With this setup, we only need 64 (for the anodes) + 8 (for each layer) IO ports to control the LED cube.
In the video, the process is slowed down enough for you to see it, then it runs faster and faster until the refresh rate is fast enough for the camera to catch the POV effect.
They're demonstrating the persistence effect by lighting the edges to make a 3D cube outline. They could have just as easily decided to make the cube in the middle of the array.
PDF Downloads As a Pro member, you will gain access to download any Instructable in the PDF format.
You also have the ability to customize your PDF download.