Im building an 8x8x8 LED cube but need to know if the arduino can1. connect to the 64 LED columns to switch each of the LED lines.2. Multiplex to allow me to isolate one LED [glow]and make animations exc[/glow].

I think everything was fine until you got to this point. An 8x8x8 box has 512 elements. You could address any of the elements, and even write out 8 LEDs at a time in each of the 64 "columns." But I don't think you'd be able to refresh all 64 columns fast enough to get smooth persistence-of-vision (POV) animations going.

I could be wrong, but that's pretty fast, and people are being challenged by 8x8x3 projects currently.

But an 8x8x8 cube is much more ambitious! Don't forget that you'll need to drive the full current requirements of (potentially) 64 LEDs, all on at once. 64 times 20mA is 1.28A through the ground return. That's too big for the usual ULN2803 chip. A 4051 wouldn't stand a chance -- it's the wrong sort of chip, anyway, since it's an analog multiplexer.

For a 64 LED array, organised 8x8, you'd need eight output drivers capable of sourcing 20mA each (74HC595 would do) and eight low-side drivers that could sink (8 X 20mA) = 160mA, so a ULN2803 would do, driven from another 74HC595.

Then, it's just a matter of selecting a column and driving the row data to the 74HC595, then a short delay, and go on to the next column.

i already have the power supply sorted, using transistors to trigger a main current. litterally any amount of voltage will trigger the LED's on. just a matter of what board has enough i/o pins to connect them all and switch to make some pretty things.

You might want to take a look at this thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225239439which has some discussion of a 384-led display using the Holtek HT1632 driver chip. In particular, there's a demonstration program that updates all 384 LEDs (serially, one at a time) and is still "fast enough for animation."A couple of these chips would be a good start on an 8x8x8 cube, I think; they do all the period refresh, so your arduino would actually have time to do other things... (However, I'm not sure where you'd buy them...)

(an 8x8x8 cube would be quite a substantial MECHANICAL undertaking as well...)

I have been looking at 4051 MULTIPLEXING an extending the analog. to allow a maximum of 64 outputs is the the correct path?

I was playing with this tonight on an 8X1 LED matrix. The problem is not with the 4051, but rather that the PWM (pseudo analog out) isn't fast enough to render a "true partial voltage" to each LED in the time you need to scan across them to keep persistence of vision intact.

I was just feeding Pin 3 analog to the 4015 and no dice unless your refresh rate is mind-numbingly slow. You have to put a "delay(1)" after each analogWrite to makesure the votage renders to the LED that you've selected.

I do, however, recommend using the PORTD register to send the addresses to the 4051.

Now, my next goal is to use a D-to-A converter to send the true voltages to the 4051. That should clear that up (by circumventing PWM at the cost of using more digital lines for the d-to-a) and allow me to get shades of "grey" on my matrix. (I'm going to step up to an 8x8, once I get this mastered.)

The problem is not with the 4051, but rather that the PWM (pseudo analog out) isn't fast enough to render a "true partial voltage" to each LED in the time you need to scan across them to keep persistence of vision intact.

Not that I know what you did and how you did it, but that's probably not what happened. More likely the PWM is not synchronized to the display multiplexing, causing no end to flicker. It could work (maybe) if if the PWM frequency was "really fast", compared to the display multiplexing, AND if the frequency difference is not within something visually noticeable (again causing flicker).

But that's not how it's normally done. To multiplex PWM signals, they should be syncronized to the display. IE make your own PWM multiplexing, don't use the built-in PWM (unless you can sync it somehow).

Quote

Now, my next goal is to use a D-to-A converter to send the true voltages to the 4051. That should clear that up (by circumventing PWM at the cost of using more digital lines for the d-to-a) and allow me to get shades of "grey" on my matrix.

Ok, I'm not saying using some DAC scheme to make different shades of LED light is impossible, but I would say it is "not likely"! That is an unusual, or rather impractical way to dim LEDs because it is difficult to get right (as in linearly increasing light output with each DAC step). For one thing a LED is not linear. Even if the light output might be somewhat linear to the electric current through it (but probably not quite, which further complicates matter, depending on the LED of course), the voltage-current relationship is not. It is like a typical diode curve with a threshold voltage to turn it on. Also, given small differences in this threshold region between "identical" LEDs, it would be difficult indeed to get multiple LEDs evenly lit.

In other words, while it might be easy(ish) to get it from the brightest to more dim, I imagine the hardest part would be from that "more dim" point to to completely off (if that made any sense).

I would suggest you start with a "simple" 8x8 display before you tackle an 8x8x8 one, especially if you want gray shades. Btw, imho it is very feasible on the 8x8, to a point, I doubt it is on an 8x8x8.

EDIT: It's not that I don't think one can't get any PWM steps in an 8³ cube, I just doubt one can get very many.