I like the MAX chip idea, but it's expensive and big. Two 28-pin 5904 (32-pin in QFn) are big enough, but to have two 36-pin (40-pin QFN) seems like it might take up too much space. I dunno.
How I'm planning on powering this is with a coin-cell rechargeable from Sparkfun to provide the battery backup for the DS3231 RTC I'm using, and a tiny LiPo battery charged via USB and a MAX1555. I'm not solid on the voltage of the battery, or which one in particular I'll be using, but I will, for sure, be needing to step-up the voltage from the 3.x volts most of the tiny LiPos provide to the 5V I'll need for most of my circuit. Not sure how many mA I'll need. I need the power source to last all day, if possible (18 hours should be good, but more is always acceptable), and the display will have a user-definable auto-shutoff delay, so it will only be on when actively viewing the time (button-press or touch sensor or something).
On the watch face, for the most part, it is unlikely that more than 4 LEDs will be on at a time for the clock feature (it'd be neat to have the previous LED fade out as the new LED lights up for seconds/minutes/hours progression), but I intend to include a temperature feature (using the DS3231's built-in temp sensor) that may need two whole rows to appear to be on simultaneously (but I could live with just one LED again, it would just be nicer-looking to light up the whole blue row for 1-60 degrees Fahrenheit, and progress up through the red row for 61-120 degrees Fahrenheit), meaning that up to 120 LEDs may need to appear to be on at the same time.
So far, I'm thinking that a TLC5904 (or however many I would need) could drive the "rows" (the matrix's physical layout would be somewhat different than its logical layout), while a special darlington (or however many I would need) could source the columns, and then I could somehow drive the LEDs like that...but I really have no idea what I need to make this work.
I'll be using an Atmel AT90USB1286 in a Teensy++ 2.0 style, running Arduino code. I want that chip for the built-in USB and the extra I/O pins, among other things. I get the feeling my program code might end up being huge, so the extra Flash space couldn't hurt either. My original idea was to use a 328, but I don't think it has enough pins to do this if I wind up having to abandon my driver chip idea and go with a hand-picked matrix using discrete FETs and such.
I started out reading about and drawing plans for a simple transistor-and-resistor driven matrix, with each row and column being done by hand, each row taking one pin and each column taking one pin, which would almost use up all the I/O on the 1286, but stumbled on these driver chips, which could save me lots of pins. The fewer discrete components I have, and the smaller they are in the end, altogether, then the smaller my board can be. I'd like it to be circular, and no more than 1.5 inches in diameter...so very small.
One of my main sources of inspiration for attempting this ridiculous miniaturisation feat: http://www.eng.yale.edu/pep5/pocket_watch.html.
That's what I'm going for.
I emailed Paul Pounds, and he says he's using a transistor to provide switching for several rows of LEDs, but I am unable to work out from the board layout pictures just how the schematic would look, and therefore what parts I need to buy and how to lay it out on a breadboard for testing.
That method looks like it is physically smaller in the end, but might use up more I/O pins on the MCU.
I'll take whatever help I can get in the form of guidance and direction in what parts to choose and how to lay it out, if anybody will give me that level of help.
And yes, Grumpy_Mike, I saw your Mini_Monome. I would absolutely be willing to use that method of driving the LEDs, I would just like to avoid the discrete FETs, unless they would save space. And provided I could actually drive the 60+60+36=156 LEDs (the 132 in my last post was an erroneous number) with just one (or two) TLC5940s and a handful of P-type FETs. Would your design scale up that large? As-is, yours appears to handle 48, so by adding 2 more FETs, I could get up to 6 per pin (I read that someplace as a possible limitation per row) and another TLC, I could (in theory) drive up to 144 with 6 FETs and 2 5904s? And more TLCs for more? Or could I use more FETs?
I'll take any solution that isn't too expensive, can drive as many LEDs as possible, and takes up the least amount of physical space, balanced with taking up the lowest amount of MCU pins for control. PWM is a must (even if it's software, done completely by-hand), because I intend to be able to balance the brightness of the red, blue, and rgb LEDs so they appear to be approximately the same brightness, as well as using an ambient light sensor to change the overall brightness of the display to match the environment (darker display in a dark room, brighter display in sunlight), so it's comfortable to view in any light.
I saw this possibility: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1230851345. How would I lay that out? Would I use 2x 74HC595s for the rows and 2x TLC5940s for the columns? The 595s source, and the 5940s sink, right? Would I have to use a darlington array with the 595s? I'm really not sure how this whole thing would work.
I'd be willing to entertain your suggestion of using the MAX chips, but unless I can stretch the LED count to 156 from 128, I don't think it would be of much use to me. Having two of those chips would take up quite a bit of space. Would I need any other components besides it? Resistors? FETs? If it's self-contained, it might be worth looking into, since my PWM doesn't need to control individual LEDs (it would just be nice for display animation purposes).