I've been thinking more about energy savings with my watch.
I'm already going to be using some kind of Real Time Clock chip so that it only draws a tiny bit of precious power from my battery when in standby, but what about when I power the thing on?
Well, LEDs aren't current limiting. This means that unless you do something special, they'll draw a ton of current (and if you supply them with enough current) blow themselves up or at least severely shorten their lifespan. Because of this, you always need to add a current-limiting resistor to protect them.
Here's how it works:
Typical voltage drop across an LED is maybe 1.8V or so and most take around 20mA of current. If you supply with 3v (like my watch will), that means that you need to drop the last 1.2V across a resistor, keeping the current at 20mA. Ohm's Law says...
1.2V / .020A = 60ohm resistor
Now, that's pretty easy, but here's the ugly part:
Power = Current^2*Resistance = .02^2*60 = 24mW
24mW is quite a bit of power to be just throwing away. So, what's the solution? An LED current driver!
Current drivers are fancy IC devices that either source or sink constant amounts of current. I could basically set the current driver to source (or sink) exactly 20mA of current, and it would accomplish this much more efficiently than a resistor.
After hunting around for a bit, I found a likely candidate: the MAX6947 from Maxim.
Looking at its datasheet, it's I2C compatible, and can sink 20mA of current from 10 different ports (using this dude could also fix my port limitations. I could have current sourced from my micro controller and have it sunk into this chip. Sounds like a plan, but how efficient is it?
It draws nominally 3v and claims to draw around 1.3 uA in standby mode. Sounds good so far. What about when it's on? With one port set to 20mA constant current sink, it will draw 3.8mA of current. At 3V and 3.8mA, I'm looking at only 11.4mW.
It's a fairly large chip, so it might not be worth the 13mW power savings (which is only when the watch is on), but it does have a bunch of other cool features. You can digitally control PWM for the dimming of LEDs and it also will have no trouble sinking the current for a bunch of LEDs (which will be useful for my "flashlight mode" assuming my micro controller can source enough current to power all of them at once.
As one final calculation, if it draws 1.3uA at standby and 3.8mA when powered as opposed to an LED which draws 0A at standby and 24mA when powered. That means that for every 1 second of LED power, I could get around 54 minutes of standby time. Hrm...
One distinct disadvantage of this chip is that it can only sink 20mA of current. Ideally, because I'm going to have to flicker my LEDs at some frequency (because with the grid pattern, I can only light up one at a time), I'll want to drive them at their pulse current rather than their regular current. Brightness is proportional to current and because I will be effectively dimming these LEDs through pulse width modulation, I'll want to brighten them up as much as I can. An LED with a 20mA continuous conduction current might have a 50mA pulse current. So maybe I'll need a current sink with a little more kick.