Driving 8x8x3 outputs

Ok I've ordered my first Arduino.

I think for a first project I'd like to work on a true colour 8x8 array. :slight_smile:
Using those awesome 4 pin LEDs.

I've ordered 3 sample MAX7219's which are similar to the MAX7221.
Probably better than the 21 because the 21 requires a output per chip while the 19 doesnt (if I interpreted it correctly).

One problem is chip availability. I'm in Australia and I dont know any decent suppliers.
I'm not holding my breath with the samples.

At Dick Smith basically the only useful chip I can get is the 74HC595.
Would having 8 of them rigged up together be feasible? I know I'd have to sacrifice PWM.
Or does someone know a good Australian distributer of common chips?

I know I'm going to be screaming later on. 256 leads to solder not to mention the wire mess. ;D
Should be fun.

Having 8 x 74HC595's is feasible, and you won't hit the same power issues the 3 x 7219's will give you. Last person I observed working with 7219's, had two wired up, but when all 128 LED's were lit up, the whole array faded - not sure if he found a solution.

The 74HC595's are cheap (check eBay for lots of 10) and you can have as many daisy chained as you like, the LED's won't fade as only 1 is on at a time in very quick succession.

You need lots of breadboard space though - here's what 2 wired up looks like :slight_smile:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1185507207/0#0

I just realized another problem with the 7219. The RGB leds only have one cathode lead.
That either means 8 595's or I switch to individual leds which means 384 led leads to solder in. Ouch.

Might do both just for kicks. 100 red, 100 green and 100 blue leds on eBay is about $15. :smiley:
It'll get my soldering back in to shape.

For the time being I'll stick to 595's.
Is it possible to just stick one resistor on the negative rail? That would save a lot of work.

I'll use prototyping board or similar to mount the LEDs on. That way I get the 8x8 grid.
Breadboard for the IC's.

Heh. I did the maths wrong. I would need 8x3 = 24 595's.
That rules out a breadboard.

Ignoring the massive mess this will be, it'll look awesome. :wink:

Yep it can be hard to source some cips here. Don't give up too easily on samples. I got two trough a distributor, but I had to piggyback on my employers' reputation for ordering chips after getting samples.

Your project sounds awesome though. My one colour 8x8 matrix is cool to play with once I got it working with much help code-wise from this forum, I can only imagine a RGB version. But also wiring of 8x8 was bad enough, 8x8x3 will be a triumph of patience, wire marking and error-checking! Good luck!

For the time being I'll stick to 595's.

Yip, good idea - keep it nice and simple.

Is it possible to just stick one resistor on the negative rail? That would save a lot of work.

That would be too easy - the prescribed number of resistors is 8, please stick to 8 resistors like the rest of us

;D

If you beat me at trying that out, post back - otherwise, I'll see if it works - seems like a way too practical solution to minimizing on components, I wonder what else we can chuck out :-/

If you beat me at trying that out, post back - otherwise, I'll see if it works - seems like a way too practical solution to minimizing on components, I wonder what else we can chuck out :-/

Hahahaha. Can anyone else offer some wisdom about this?

Frying 64 LEDs in one hit just to test this seems a bit excessive to me. :wink:

I think I have seen things work this way however.
Dont those 7 digit LED segment displays only have one resistor?

Ok its time to buy stuff and I'm stuck.

I really need to know what resistors I should get.
A wizard said that I should use 100 ohms for 5V in with 3.3V LEDs at 20mA.

The RGB LEDs I'm getting are from Futurlec (Product code: RGB5LED).
Unfortunately they dont provide a datasheet or even a pinout.

I've heard that Red is sometimes brighter than Green and Blue which could complicate things as well.
Also if the pins on the LEDs are wrong (e.g. Positive is common) then I'm pretty screwed.

I'm buying the resistors from a local computer store which is cheaper than Futurlec (4c each).
Should I just buy everything from Futurlec and then buy a couple of resistors and see what the best combination is?

If the Red is the same brightness as the other colours is it ok to stick the resistor on the common lead?
192 resistors will give me a headache.

Keep in mind that I'm using 595's. No crappy Multiplexing for me. :slight_smile:
The LEDs will be on all the time if active.

I hope someone can clarify these points for me.

For a 3.3 V LED @ 5V 100 ohm should be ok. But how did you find out about the 3.3V, are you sure about that? I think you should buy some different values, so you can experiment, especially with the brightness.

Would you be so kind and make timelapse video of putting the breadboard together? :wink: It must be an impressive piece of work when it is finished. Just making an 8x8 matrix takes a lot time.

Keep in mind that I'm using 595's. No crappy Multiplexing for me. Smiley
The LEDs will be on all the time if active.

Keep in mind that you'll need like a 4A power supply if you want to have them all on at the same time.

100ohms and a 5V supply will give you a max of 50mA through the LEDs, assuming that they're all zero volts. So that should be reasonably safe. I don't think red is inherently BRIGHTER so much as that it has a lower voltage drop and so gets more current for the same resistor (and therefore RUNS brighter...)

I don't think you can use a single resistor in the common leg unless you want the brightness to vary depending on how many of the three internal LEDs you have on. The effect may be worse than that; turning on the Red with its lower voltage may "steal" current from the other colors and make them go off.

Keep in mind that you'll need like a 4A power supply if you want to have them all on at the same time.

My numbers say 1.2A.
Meh. Bigger is better. :slight_smile:

I don't think you can use a single resistor in the common leg unless you want the brightness to vary depending on how many of the three internal LEDs you have on. The effect may be worse than that; turning on the Red with its lower voltage may "steal" current from the other colors and make them go off.

Well thanks for answering my question.

Now I just need to figure out how on earth to fit 64 LEDs and 192 resistors on to one sheet of prototyping board and still look good.

I'll order the main parts then fiddle with resistors to get it looking good before buying them in bulk.

My numbers say 1.2A.

883*0.02 = 3.84, yes?

You might consider partial multiplexing. doing 64x3 (one multiplex plane for each color) would cut the number of resistors by 2/3 (since you'd only be driving one color at a time, you'd only need the resistor in the common line.)

883*0.02 = 3.84, yes?

Ah I missed the *3.

You might consider partial multiplexing. doing 64x3 (one multiplex plane for each color) would cut the number of resistors by 2/3 (since you'd only be driving one color at a time, you'd only need the resistor in the common line.)

Thats a option but I'm still not sure about speed.
Its a awful lot of outputs it needs to switch on and off at least ~50 times per second.

By the way, one of my favorite eBay sellers is selling an interesting 16-channel LED driver chip with built-in constant current source:

http://cgi.ebay.com/10-LOT-CONSTANT-CURRENT-LED-DRIVERS-5V-16-CH-SRC-DIP-30_W0QQitemZ230175586970QQihZ013QQcategoryZ50913QQtcZphotoQQcmdZViewItem

Pretty cheap, too.

Thanks for that. Fortunately I havent purchased the LED stuff yet.
Working on MMC first.

The same eBay vendor has some pretty nice mini-SD sockets...

Well I got my testing gear. I decided to test doing 8x1 first.

Here's a video: Arduino 8 RGB LED Chaser - YouTube
Looks better in RL.

Its also very difficult to get white paint to stick to the LEDs properly when diluted.
I need to put more coats on.

Thats just 3 595's rigged up together.
I might use MAX7219's for my 8x8 because its bloody difficult to do software PWM with 595's.

Forgot photos of the board.