Controlling an 8x8x8 RGB led cube

Im thinking about doing one of those led cubes you see on youtube for my senior project. After doing some research on how its done I came up with basically how it works. But my question comes when RGB led's are involved.

In a single color cube of 512 leds, you could use 4 led drivers or shift registers to control the 64 columns with serial data from only 1 arduino port. Use 8 other ports for the rows. With this you can send in data to the shift registers to get your pattern for one layer at a time. Cycle through the layers fast enough and make displays. Sounds pretty straight forward to me.

With RGB leds, each led has 4 leads. So assuming I make each row common cathode, I now need 192 PWM outputs (64 columns x 3 for the RGB lines) to be able to control the cube!!!! Thats 12 PWM shift registers or led driver IC's. Does this sound right? How else would I control that many leds so that I can have an RGB led cube?

I am looking at building something similar. but i think i am going to start with a 4x4x4. check out this website they sell kits to build RGB led cubes. but you can download the building instructions. which explain how they did it. theirs is a 4x4x4 but you can apply it to a 8x8x8 or a 16x16x16 :stuck_out_tongue: if you wanted to :slight_smile:

Thats 12 PWM shift registers or led driver IC's. Does this sound right?

Yes - this is a lot of LEDs to control.

The down side is that the refresh only leaves any one LED on for a fraction of the time hence limiting the maximum brightness. You can compensate a bit by driving more current through the LED possibly up to 10x the current but check the data sheet.

How else would I control that many leds

You can spilt things up and have more than one arduino refreshing the cube. Say the top half and the bottom half. The other thing is you could use an IC (or more than one) that performs the multiplexing for you. The MAX6960 will control 128 LEDs at a time but unfortunately you can't use common anything LEDs so that rules out RGBs.

I will probably just end up doing a single color. RGB leds are more expensive and makes the project way more complex. With one color I only need to worry about 64 outputs for the columns, and 8 for each row. Thats 4 PWM led driver chips and only 9 ports on the arduino. Sounds more reasonable than 12 chips, plus the added wiring involved and of course hardware cost.

I hope I have not misunderstood ‘common anything’ and am speaking out of turn, but the datasheet shows that the MAX6960 is designed for common cathode matrix with 16 columns and 8 cathodes thus perfect for the usual red/green matrix and it also shows examples for RGB.

If I have misunderstood, forgive :slight_smile:

No you are quite right I was thinking of the MAX6954, that chip, although you can use common cathode RGB LEDs there is no independent current control of the LEDs so closely spaced and so the number of colours is limited.

I haven't looked in detail at the MAX6960 but from a quick look at the data sheet it looks like you are right. Sorry.

They look infinitely better for the Red/Green matrix compared to the switching two Max7219s system but they are difficult to find (UK). They have built in memory planes to permit displaying one image while building another and thus animation. RGB can also be done but it needs more than one.

Having build a 5x5x5 cube I can say that cubes with odd numbers are more ‘artist friendly’ as you have a center light in every row and column, offering more pattern symmetry. Just my opinion.