💬 RFM69 Multisensor Node (CR2032)





  • Hi, I was wondering if you have studied the power consumption and lifetime (without replacing the battery) of the design? I appreciate your comment. Thanks


  • Hardware Contributor

    @farshadfirouzi

    Hi. Not yet. This is a new challenge for me regarding CR2032 battery type. Depending on my free time I hope to finish this some day and see the real results.



  • @mtiutiu
    is there anything we can do to help you?
    I would be really interested :simple_smile:


  • Hardware Contributor

    @jeti

    Well the first thing would be to wire up some prototype board like arduino pro mini @ 8MHz with LEDs removed and the onboard voltage regulator bypassed.

    Then there are some Si7021 modules available on AliExpress that can be hooked up: Industrial High Precision Si7021 Humidity Sensor with I2C Interface for Arduino
    http://s.aliexpress.com/FVfq2maY .

    MAX44009 is available too from the same source: GY49 MAX44009 Ambient Light Sensor Module for Arduino with 4P Pin Header Module
    http://s.aliexpress.com/yMV3qi26 (any LEDs, LDOs need to be removed again).

    Next a CR2032 coin cell with a low ESR 100-220uF tantalum capacitor in parallel.

    Next comes the software part optimized for low power and...then testing on the field :simple_smile: .

    The step-up converter part is optional(and I made it like that on the real board so that it can be bypassed if needed). It may bring some benefit or it can be worse for the CR2032 battery which is very sensitive regarding life span.



  • @mtiutiu
    already got the Si7021, will get a MAX44009 and give it a go, I will check back when i started going!


  • Hardware Contributor

    @jeti

    Great. I forgot to mention about the rfm69w module which can be found on AliExpress too. I use this adaptor for rfm69w testing: https://oshpark.com/shared_projects/TKNcHTRl and it works great.



  • @mtiutiu
    got that too :+1:


  • Hardware Contributor

    Hi,

    I just found an interesting approach and idea to use for CR2032 battery powered sensors in order to reduce power usage. Well..it's not my idea but I borrowed it from an application example provided by Texas Instruments(all credits go to them). So the thing is that in the end all battery powered sensors only report data at some regular interval right? So what about using an extremely low power timer like this one TPL5111 (it takes only 35nA to work !!!) and gate the power for the rest of the circuit(MCU + radio) at a regular interval which can be set using a external resistor?

    Instead of using the internal watchdog from the MCU to do the sleep we're using an external timer to do just that. But in this case we're cutting the whole power from the board keeping only the TPL5111 timer active. This combined with a low quiescent 3.3V boost converter like TPS61291 which will be put into shutdown mode when not needed by the external timer should give a "sleep mode" of only 50nA !!! (the shutdown current of the converter is around 15nA).

    TPL5111 is built in a such a way that after MCU finishes it's work it can reset it using an external pin in order to put the system in shutdown mode again.

    All of this sounds great and the advantages that I see here are:

    1. don't need to sleep the MCU + radio anymore(no code optimizations are needed for low power operation as long as the ON time is pretty low - and it should be as we only do some readings and send them quickly)
    2. the standby current is extremely low(around 50nA in theory)
    3. long life for the cr2032 battery
    4. no need to think about code being stucked as the external timer will restart it each time(so no watchdog needed as we already have one)

    Disadvantages:

    1. The sleep interval is fixed - this shouldn't be such a big issue as in general it is a FIXED value
    2. OTA and other mysensors features - I don't know how it will be influenced by this approach
    3. any other???...

    Reference schematic for usage(it uses TI components for mcu+radio but the idea is the same)
    alt text

    This can be improved further by using an analog switch also:
    alt text

    Reference documentation:
    TPL5111 datasheet
    TPS61291 datasheet



  • I too came across this last week. It's really neat!
    Another drawback I see is that the node resets every time when wired in this way. That means the whole finding-parent and presentation section is run every time. That eats a lot of power as the radio is powered for more than a second, especially when the node runs at 1MHz.
    I think that in a MyS application this IC should be used to trigger an interrupt to send the data to the controller and, in case of hungry sensor types, switch the power to the sensor.
    That does mean you will be running at about 600nA, but that is still 1/10th of what a watchdog-timed sensor will use.


  • Hardware Contributor

    @DavidZH

    You're right about the finding parent + presentation part...forgot about that. Anyways it's still an interesting approach in order to reduce power consumption and maybe some other combination can be thought in order to profit from this.


  • Hardware Contributor

    I have played too with TI's nano ultra low iq step up and these timers, (i like their design&app notes). but finally thought it was overkill for coincells. i also made my own ulpnode for experiments too (sequence with stepup+voltage supervisor, microchip app note).
    Finally i choosed the simple no reg way for those batteries. plus it saves the need of filtering the switching reg for radio (which is good for better snr).

    I thought the same for the reset cycle, not great, regarding startup time+internal res of coincell .

    This ic is still a nice ultra low power wdt but i thought i could use rfm69 listenmode and save money&footprint because between 1ua or 2uA no big diff, depending of the wakeup frequency..
    Always compromise everywhere :)


  • Hardware Contributor

    As I have the step-up converter already in there I was thinking what if I use it to power only the sensors and act as a switch too? The rest of the components(radio + MCU) will be powered from the battery.

    So my idea is to use that dc-dc converter to power the sensors when the MCU is awake in order to read data and shut it off in sleep mode. This way I can overcome the situation when I have sensors that require min 2.5V to work AND more important I can cut power from most of the parts from this board when needed using the converter as a power switch. I recently added the A3212 hall sensor which requires min 2.5V to work(because it's the cheapest one that I found and in a user friendly package too - and it's micropower also).

    One possible issue that I see here is about the logic levels as when the battery voltage drops the MCU will work at a lower voltage(so the logic levels will drop too) and the sensors will work from the same 3.3V provided by the converter(and logic levels).

    The NCP1402 device will accept 0.9V minumum on the CE pin as stated in the datasheet so I see no problem here. The off state current is 0.6uA so it's pretty low.

    I need to change the schematic a little bit and re-route the board to accomplish this but it's not a big issue at all.



  • @scalz
    You also use coincells for timed nodes? As the watchdog timer uses 4,5uA that's quite a lot over 500 or 600 nA with only interrupts waking the MCU. I have some door sensors which I would like to have send a heartbeat every 12 hours or so, because these doors sometimes will not be opened for a few days. That TI chip would be nice to use as a heartbeat timer on an interrupt on only 55nA.
    But maybe I'm nitpicking now... 😁


  • Hardware Contributor

    @DavidZH
    that's exactly what i said ;) depends on wakeup freq needed. So i agree of course :).
    I use some coincell with my 328p multisensors, pir onboard so i need the wdt for some tasks.
    and for new coincell board i've in progress, or low power wdt.. i'm not using anymore 328p, but arm mcus


Log in to reply
 

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.