Small 8x8 matrix driver?

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.

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

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

Well there is an advantage to it, especially in very large quantities, and thats the fact that you don't have to program an extra MCU. But yes, cost (and possibly even feature wise) the atmega is the clear way to go.

Not so clear - say your application called for DIPs instead of surface mount.
taydaelectronics.com has MAX7219 in DIP for $1.25. I just bought 8, shipping was $1.80. Order also included 20 panel mount power jacks, 4 toggle switches, and a mess of resistors.

vs $2.78 (qty 25) for lowest priced 168 in DIP

and $1.59 at digikey

both charge something like $6.95 for lowest priced shipping.

Hmm...good point, though I don't know how reliable they would be in orders of 100. Then again, they might be great. It's too bad they didn't make one of the MAX72xx's in a smaller package...

It is available on 24-pin wide SO surface mount package - its just a little thicker than you wanted.

Or as bare die if you wanted it really thin.

CrossRoads:
It is available on 24-pin wide SO surface mount package - its just a little thicker than you wanted.

Or as bare die if you wanted it really thin.

A bare die would be great, though how would I go about soldering that (or having it soldered for me) in a cost effective and simple way?

Edit: I just did some googling, and it I think the bare die would be overkill for this little production run.

It's too bad they didn't make one of the MAX72xx's in a smaller package...

I wonder why that's the case, ...

Another advantage might be interface speed.
MAX7219/7221 can receive data at 10 MHz. I use mine at default SPI settings which I think is 4 MHz.
If your main processor was really tied up and you wanted to send stuff out at 8 MHz to get it out of the way quick. The master can do that, I think testing has has shown a 168/328 cannot receive that fast tho due to the slave having to sample (the CS pin?) or something along those lines.

CrossRoads:
Another advantage might be interface speed.
MAX7219/7221 can receive data at 10 MHz. I use mine at default SPI settings which I think is 4 MHz.
If your main processor was really tied up and you wanted to send stuff out at 8 MHz to get it out of the way quick. The master can do that, I think testing has has shown a 168/328 cannot receive that fast tho due to the slave having to sample (the CS pin?) or something along those lines.

Yeah, ideally that would be the way to go. But size and cost are really the most limiting factor.

a 168/328 cannot receive that fast tho due to the slave having to sample (the CS pin?)

True, when implemented poorly.

True, when implemented poorly."

False - max speed is a hardware function, not something users have any implementation control over:

"In SPI Slave mode, the control logic will sample the incoming signal of the SCK pin. To ensure correct sampling of
the clock signal, the minimum low and high periods should be:
Low periods: Longer than 2 CPU clock cycles.
High periods: Longer than 2 CPU clock cycles."

Still though, shouldn't 115200 baud serial be fast enough for this application?

Yes. The above was only discussing reasons why the ATmega is not always the clear way to go.
In this case, your need for overall thinness, similar cost, and no need for ultimate in interface speed indicates the Atmega is the way to go, as long as your time to develop the max7219 function is not factored in.

Gotcha. And yeah i'm still unsure 100% of how im going to go about implementing it...

A max7219 clone is fairly simple. You need to implement two basic elements:

  1. a display routine that is called from a timer isr to update the matrix in the background;
  2. an interrupt based spi slave.

The two pieces are integrated in the main loop where the incoming data (common + data bytes) are processed.

The beauty of this approach is that the execution in the main loop is non-critical and support the full capabilities of the spi hardware.