Computing stuff tied to the physical world

90 days on a coin cell

In Hardware on May 26, 2013 at 00:01

Just saw that my JeeNode Micro test setup has been running and “blipping” for 90 days:

Screen Shot 2013-05-25 at 11.08.00

The voltage is starting to drop a bit, and the voltage drop before and after using the radio has increased from 0.08 to 0.16 V (reported with a granularity of 0.02 V), but everything seems to be fine. It has pumped out over 120,000 packets so far.

The other test is a JeeNode Micro with boost regulator, running of one Eneloop AA battery. That battery voltage has also dropped a bit, but as you can see, the boost regulator is doing its thing and still providing the exact same 3.04 V as it did when the test was started.

It’ll be interesting to see how long each of these setups holds out. I have no idea, really. It’s not just a matter of capacity – with the coin cell, it’ll also depend on how long the battery can continue to provide these brief 20..20 mA power bursts for each transmission.


  1. I have one of my Attiny84 projects running on CR2032 for 205 days already, taking temperature measurements every 5 min

    See LIVE chart here

    The battery discharge pattern is interesting, sudden drop and some minimal recovery afterwards. Also it is very sensitive to room temperature

    • Wow, neat. Are you using vccRead() and Sleepy::loseSomeTime() ?

      Yes, battery power is highly related to temperature, especially when it gets really cold.

    • yep, using those two. I use a DS18B20, but it is really slow. Maybe a TMP36 would have been a better choice, still 205 days is quite an achievement.

  2. Connecting yesterday’s post to today’s: could the benefits of RTOS be enjoyed while still going by the ‘low power’ tag? Seems to me that what goes/is in the ‘idle’ loop behind the scenes could be entering low power? I kind of like the clear separation of tasks, hence the like for RTOS. If that means giving up (long lived) battery power, that’s a tough decision 8-/

    • That’s one of the tests I’ll be doing. It’ll be interesting to see what happens if you simply insert a Sleepy::LoseSomeTime(16) call in the lowest-priority thread.

  3. Saving power is pretty much why low power stuff does use RTOSes. Everything is idle unless it isn’t (as opposed to the simpler ‘turn stuff off’ approach that is employed by most hobbyists).

Comments are closed.