CR2032 coin cells - expected life?

  • Hardware Contributor

    Hi! Im having issues when testing MySensors nodes with CR2032.


    BOD are set to 2.3 but it seems like the node dies around 2,8-2,9 and it does not last very long.
    Its a "naked" testnode, nrf24, sleep active, minial current drain.

    First, is it to be expected that these batteries does not work below 2.8v?
    Any other tips?

  • Hero Member

    When are you measuring the battery voltage? Before or after a transmission? My guess is before. The better measurement is if you measure immediately after transmission, before battery recovery, and then save the value for reporting during the next subsequent transmission. That's especially true for coincells, whose voltage tends to droop a lot after pulling a current.

  • cr2032-contact.png

    The graph above is from my oldest window contact that is still in service with its first CR2032. It has reported 2902 events in over a year (less than 8 wake cycles per day on average).


    The second graph is from my oldest temperature & humidity node, also running off a CR2032. Since march 2020, it reported 180k data points (temp & hum every 5 minutes).

    Unfortunately I didn't configure them to report the battery voltage back then, but I took a reading with my DMM right now: The window node reads 3.041V and the temperature node 2.993V. What I'm trying to show is that nodes can run for years with a CR2032.

    The temperature node should be the most discharged CR2032 I have in use currently, so I have yet to find out at which voltage they stop working. But I think 2.8V should still be fine if you have enough capacity to counteract the voltage drop during transmission.

    If the battery in your node died suddenly, I guess the node may have failed to sleep for some reason. I had this issue before a couple of times and I can only assume that the node lost connection to the repeater and drained the whole battery in a find-parent-loop.

  • @sundberg84 I noticed similar issues with my nodes. Given the high internal resistance of coin batteries, there is actually a significant voltage drop during high current scenarios (radio transmission). Enough of a drop to trigger brownout, which then leads to brownout loops.

    I recommend disabling status LEDs, and using large capacitor(s) (200uF+), ideally ceramic. I'd also drop BOD to 1.8v.

    Also make sure you're sleeping between transmissions (~5 sec) to make sure the capacitors have enough time to recharge.

  • Hardware Contributor

    @NeverDie - I measure after - but I let the battery recover from the transmission, so you have a valid point.
    @BearWithBeard - Thanks - if you can do it, I can 🙂
    @ncollins - a big capasitor sounds lika a good idea, 1.8v bod I have and also sleep (5 minutes). Thanks for the input, sounds like a plan ahead.

  • I recently completed an experiment with 2 nearly identical nodes and had very good results just using @NeverDie MySleepPrepare() without any other real effort to reduce power consumption.
    The nodes were NRF52832 and BME280. One with a CR2032 Coin cell and the other with a LiFePo4 (AAA size). The CR2032 lasted a little longer in this application.
    I stopped when the CR2032 dropped below 1.8V because that was the low voltage rating for both the processor and the BME, but the node still appeared to be working normally.

    Vertical axis is volts. Horizontal axis is days.

  • @nagelc Just wondering what boards and what bootloaders you are all using for battery nodes as I will need to make a few soon.

  • @skywatch These used the Fanstel BT832. Not sure about the bootloader. I just programmed them as they came. I programmed them using Arduino and the MySensors MyBoardNRF5 files, and a black magic probe for the programmer.

  • @nagelc Thanks for the clarification.

Log in to reply

Suggested Topics