On this website you will find complete detailed instructions on designing, building, programming, and making your own LED cubes.

The 4 different cube designs here are I have 4 different cube designs in development right now, each has its own way of controlling the LEDs with the arduino micro-controller. All 4 cubes are being developed for the arduino nano, but they can be easily modified to use a different arduino, or even a different micro-controller.based on 4 different ways of controlling many LEDs with a micro-controller. The 4 ways we will be controlling the LEDs are LED Drivers, Shift-registers and resistors, Charlieplexing, and Cascading Transistors. There are 3 basic cube architectures, common plane, common line, and charlieplexed. Each architecture has its advantages and disadvantages, and inherent limitations.

LED Drivers:

LED drivers are integrated circuits that control the current to each LED. You set the current with a specific sized resistor, and all the outputs get the same amount of current. This method is also called constant current, and it controls the sink of the LED. you provide voltage to the common plane, and sink a specific amount of current to each LED. This cube use 3 TLC 5940 chips, with 12 bit PWM resolution. This is by far the most sophisticated way to do it. It should be very bright, but with 4096 levels of brightness.  *unfinished*

Shift-registers and resistors:

Shift registers are integrated circuits control the voltage to each LED, this method is a generic way of controlling many things (LEDs motors, buttons, whatever...), It uses a lot of parts, but the parts are very common. *unfinished*
This is a charliecube with resistors (hidden on the underside) on a circuit board.

This is the naked charliecube, it uses no circuitboard, and you can see all the parts and wires. The very low part count enables this cube to be built without a circuit board, and that makes the cube look much more interesting.

Charlieplexing is a form of multiplexing where you connect the LEDs together in such a way that you can control more LEDs than just multiplexing, This method is very complex wiring, but very few parts are required. It is the fastest to get working because it uses so few parts.

Cascaded Transistor:

Cascaded transistor is a way of controlling many outputs lines with just a few control pins, in this case I am using 8 micro-controller pins to control 16 cathodes. The way it works is you have 5 sets of 4 transistors.In the first group of 4 transistors, each collector cascades to a second set of 4 transistors emitter, and each of those transistors' collector is connected to a cathode line on the cube. Each of the second set of transistors bases are connected in one of 4 buses. Each transistors base has a 270 ohm resistor to keep the microcontroller in safe limits. and each of the 12 anode pins has the appropriate resistor to limit the current on the LEDs.
This cube features low power consumption, low to medium complexity, low part count, commonly found parts, and even fewer types of parts (2n2222,270 ohm, 150 ohm, and 100 ohm resistors)

Besides the 4 different electrical designs, there are other important options to designing a good LED cube, here are a few:

Cube Structure
The cube can be built a few different ways, I call this the display architecture It can be done more than one way, and sometimes its dependent on the electrical design, and some designs may offer more options than others. The charliecube can be built without a circuit board, and be build entirely with wire(bare, and insulated), LED, microcontorller. and connector. You can build the cube using just the wires that come on the parts, or you can build the cube with steel, aluminum, copper, galvanized steel wires. My kits come with hard steel wires that are perfectly straight, and hold their straightness, but are flexible and easy to work with.
All of these cubes can be built on a circuit board, and the circuit board can be any size, because the cube can scale to the size of the circuit board, but LED cubes seem to work best at about 1" spacing,

Brightness and Current limits.
Changing the resistors in many of these designs can change the brightness level, and current use. You can make these cube safer designs (more reliable, work longer before parts wear out), or you can make them less safe, but way brighter.

Technically the charliecube is an unsafe design, but adding some resistors can put it into spec. Mine has been running for months without any resistors at all, my other one with resistors is considerably dimmer, but the parts are running much closer to their safe limits, so it should last many years longer.

The current limiting cube uses few parts, and can be modified with a few resistors and switches to control brightness.

The shift register cube uses a lot of resistors, and they can be incorporated many ways. The prototype for that cube uses 2 resistors for each LED on a plane (1/4 cube). Which is almost 100 resistors. I can short out one set of resistors, to double the brightness (but this overloads the shift registers, which will eventually wear them out, but they work fine at twice the load)

The transistor cube only uses 12 resistors to control the brightness, and if you want run this on an arduino that uses a 28 pin DIP arduino chip, then you should use higher value resistors to keep the cube under 200mA.

Cube materials

The materials that you use for your cube will define how it looks, you can use a variety wire to build your cube, your best results will be with hard steel wires, it looks a lot better, and is much less prone to damage. I recommend the steel, but its not the only option, if you want, you can build your cube with just the leads on the LEDs, or you could use rolled wire made from copper, aluminum, galvanized steel, or bare steel. Rolled wire takes a lot of effort to straighten, and its difficult to do well, but you have variety of materials.

You can build a cube on a circuit board, but its not the only way. You can build a naked charliecube, which uses no board at all, just a nano, connector, wires (lots!), LEDs, and solder. You can also build your cube on a recycled DVD player, cardboard box, wood box, or just about any container imaginable. I fit my first cube in a disposable food container.

These are a few of the concepts that are common among all the cube designs.

Persistence of Vision (POV):

All the cubes use Persistence Of Vision, and Multiplexing, These 2 concepts are important to understand because they are what make 3D LED cubes work, they are also what make scrolling LED signs, and many other LED displays work. A micro-controller is required because we want to turn on and off LEDs very quickly, and we may even want to pulse the voltage to control brightness.

Pulse Width Modulation (PWM):
Pulse Width Modulation is how we control the brightness of LEDs with micro-controllers, there are ways to do PWM with software and hardware. The first cube uses hardware to do PWM, and it does it in 12 bit resolution, you can also do pwm with software, and the arduino has PWM pins, but only a few, so hardware PWM isnt always an option.

Bit Angle Modulation:
Bit angle modulation is another way to control brightness, and make more colors. It is all in software, and it works differently than PWM, but essentially, it does the same thing.

Build Log:

I have a build log that you can read if you are interested in this website creation, and some general electronics help pages that maybe helpful even if you are not building an LED cube.