Small 8x8 matrix driver?

You could use a '168P, need 16 lines to the matrix and 2 lines for serial comms.
Make 8 bytes to represent the 8 columns of LEDs, 1 bit each row.
For each column, drive the anode, sink the cathode of the LED in that row if it is to be on.
Unsink the cathode, hit the next part.
In between columns, check for serial data coming in, update the bytes as needed and keep on going.
MAX7219 refreshes at 800 Hz.
If you leave each LED on for 500uS * 64 LEDs = 0.032mS, or 31.25 Hz refresh rate.

Better way would be to add part like ULN2803 (or transistors) and drive a while column at a time, bumps up the refresh rate a lot.

@JoeN: I'm probably going to have them made in batches of about 50 to 100, still a bit early to know for sure.

@CrossRoads: Thanks! That seems perfectly logical. Im still pretty new when it comes to serial, but I was thinking it would be better to send a whole frame to the second atmega, and have it display it till a new frame comes in.

You could do that, only need 8 bytes, maybe a starting sync byte, ignore all messages until the synyc byte comes in.
Or a sync message every 10 frames or something similar.

Yep something like that, though im still not totally sure exactly how im going to go about it. Like I said, i'm not much of a software guy... Though I think I would need the end product to be something like this SparkFun LED Matrix - Serial Interface (Red/Green) - COM-00759 - SparkFun Electronics (only much smaller).

Depends on the speed you need.

Both will have serial ports (easy, but slow). Both will have SPI (a bit harder but fast).

I'd probably need SPI, though how slow is slow if I wanted to go the serial port route? Also the main atmega, would run at 8MHZ so it wont be super speedy anyways...

Any smd avr with sufficient number of pins will do.

It's not really about "fast" or "slow", it's whether it's fast enough for your needs.

First you have to figure out how much data you need to send...

Well I figure since its an 8x8 matrix, I would need to transmit 64bit strings of data at a time (maybe a few extra bits to signal a new frame is coming in or things like that)

30 frames/second * 64 bytes/frame * 11 bits/byte = 21,129 bits per second.
Go to 90 frames/second (for "overhead") = 63K bits/second
Serial will not be a problem. Use 115,200 if you are concerned.
2 MBit/second SPI is not needed.

Sweet! That actually makes perfect sense. Now as to how I would do that, would I just do a Serial.write on one end and a Serial.read on the other? and when setting it up I would set Serial.begin to 115200?

Ok, The McGyver in me just had to know if you can really sand down a chip to that sort of thickness.

So I grabbed a dead MZX7219 and some sand paper, and... yes you can!

I easily got it under 2mm thick (actually 1.85mm) without exposing any silicon. With a 0.8mm PCB that meets your "under 3mm" goal.

It's probably not a good way to do it if you want to make a lot of them, but it can be done. :slight_smile:

Sweet, its good to know that I can be done! But i'm going to go with the atmega method. Since it is meant to be a production thing (hopefully). And im actually doing a layered pcb assembly à la EEV Blog so its going to be two .8mm pcbs, with a 1.6mm pcb core. The core will have all the places for the ICs and other parts milled out. And the Top and bottom will make it look good, also all of the parts will be on the top pcb. Then ill stick them all together with double sided tape (2mm around the perimeter of the board).EEVblog #130 - The µCalc Credit Card Scientific Calculator / Computer - YouTube

Yeah, I wouldn't use that circuit either then. That is going to raise the cost quite a bit. I think about this stuff from a hobbiest point of view that I can get 4 or 6 of anything as samples and if I need to buy a few more that isn't going to break the bank - all because I make these things quantity 1 or 2.

Exactly, with the atmega, I can get the for about $3 from digikey, so its really great.

Yup
$2.43

Same at mouser

CrossRoads:
Yup
$2.43
http://www.digikey.com/product-detail/en/ATMEGA168A-AU/ATMEGA168A-AU-ND/2271188
Same at mouser
http://www.mouser.com/ProductDetail/Atmel/ATMEGA168A-AU/?qs=sGAEpiMZZMvqv2n3s2xjse40PngS4U1xVADwi5G8n9Y%3D

$1.36 in the quantities he is talking about if this makes it to production. Atmel prices their product pretty darn reasonable if you ask me.

JoeN:
$1.36 in the quantities he is talking about if this makes it to production. Atmel prices their product pretty darn reasonable if you ask me.

Yep. The ATmega is probably cheaper then the MAX7219.

I bought a dozen ATtiny84s from Farnell las week for 94 cents each (Eurocents). They want 10 Euros for a single MAX7219.

Yep you really cant compare the two in terms of price. If/when I do finish the project, ill be sure to post the code so everyone else can take advantage of the cheaper driver.

The whole concept of buying max72xx now makes zero sense to me.

Those guys go out of the market for a (very good) reason.