Small 8x8 matrix driver?

The surface plastic bodies are 1.2m ('328) to 2.5mm (MAX7219) thick.
You could always put a hole in the board and mount the parts(s) upside down in the hole; the top of the part would be seen from the bottom of the board, and the Tops of the legs would be soldered to the top of the board. (vs the bottom of the legs)

Thats right, I forgot to mention that I will be having the pcbs made. So all of the parts will be fine pitch surface mount parts.
And yeah very true, do you have any recommendations on a specific atmega? Also, im thinking ill adapt the Arduino Playground - DirectDriveLEDMatrix code, but do you have any ideas on how I would do the communication?

@JoeN: As for the MAX6955, I feel like it would be more effort then its worth to make a whole new library, though i'm still definitely considering it, thanks! Also the cost of the MAX6955, is quite a bit higher then that of an atmega...

@CrossRoads: I would do that, but the entire project is going to be about the size (though thicker) of a credit card. So I don't want to have holes milled into the pcb, since im essentially cutting into the "front panel" of the board.

Who needs a library when you can just bitbang the bits that the chip wants at it? That is what I did when I wanted to figure out how the MAX7219 worked. Read the datasheet and you will find that the bits you have to send at these chips are simpler than you would expect. They are just ones and zeros. I thought every idiot could count to one, someone told me that once I forget the dude's name.

SAMPLE THE PART. You can get two. I know this for a fact. If you don't end up using it, ...?

Hell, I'd send you one of mine, but I got them in SSOP package.

JoeN:

[quote author=Nadav Ami link=topic=126899.msg954283#msg954283 date=1350068011]
@JoeN: As for the MAX6955, I feel like it would be more effort then its worth to make a whole new library, though i'm still definitely considering it, thanks!

Who needs a library when you can just bitbang the bits that the chip wants at it? That is what I did when I wanted to figure out how the MAX7219 worked. Read the datasheet and you will find that the bits you have to send at these chips are simpler than you would expect.

SAMPLE THE PART. You can get two. I know this for a fact. If you don't end up using it, ...?
[/quote]
Ill for sure sample it, nothing to loose there. Though i'm more of a hardware guy, so it still seems like quite a bit of effort for something that costs over twice that of the atmega.

What quantity are you going to produce this in? I guess we didn't ask that and it matters if it is going to be made in quantity. You are right, that is an expensive chip, really more expensive than justified considering what you can get those old 7219s for.

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.