MySensors power consumption



  • Hi,

    I have a nano clone running a motion sensor and Dallas DS18S20 temperature sensor and want to get the consumption low enough to run on batteries long term.

    I am using the mysensor sleep interrupt setting and have cut the traces for unused LEDs but am still seeing a power consumption of around 3mA. I have seen consumption of less than 1mA quoted on other sites so was wondering what other peoples experiences have been.

    I know the best way would be to create a basic duino running from 3v, but am stuck with the clones for the moment. By my reckoning 3mA would last around a month with a 4AA 3200mAh batteries. Does that sound about right?

    Thanks,
    Jon



  • Hi... ehm ... I can say what is possible ..
    I also make own board and test nRF24L01+ module with ATmega328p .
    I use internal RC oscilator 8Mhz and 32kHz crystal for TIMER2 .
    Watch dog On every 4sec ,

    if wake up every 1 sec TIMER 2 and go sleep then power consumption is 10uA .
    If send data packet (32byte payload) with ACK then it'2msec .. if use maximum retranmision with ACK then maximum is 32msec in 250kbps.

    if you don't want TIMER2 then is possible make less then 10uA .. I use this ..I don't know how code work with mySensors ..
    I tested own code..

    ehm... you use DS18S20 temperature sensor .. I don't test it with this sensor .. I use easy NTC 10k sensor ..

    regards.


  • Hardware Contributor

    Is 3mA the total sleep mode consumption with (not tripping) motion sensor? I imagine that you drain the batteries sooner if you have a lot of motion (and send update to controller every time)?



  • @jonnyfishman I have created sensor node with DHT22 temp, humidity sensor. It is powered by 2 AA cells. The configuration is "strange", because arduino works at 1MHZ directly connected to batteries, DHT22 is connected to step up regulator which is switched on only when measure is taken. Battery consumption is about 1% per 4 days which mean it should work over a year. But there is better way to use more appropriate temperature sensor with lower operation voltage and lower operation current. With better sensor it could run couple of years on 2 AA cells...



  • Hi. your problem are not sensor .. MCU and firmware in MCU ..
    If you want help then show your schematic .. if you use original arduino then write what type .. may be can help ..


  • Hero Member

    @dopustko

    arduino works at 1MHZ directly connected to batteries, DHT22 is connected to step up regulator which is switched on only when measure is taken.

    Nice arrangement :+1:

    I have been thinking to do something like it but did not come to it yet.
    One question: What kind of step up convertor do you use and how do you switch it?



  • Thanks for the replies,

    Great idea 'dopustko', I now have the Dallas only powered on the 5 minute cycle set through the MySensors sleep function and turning on through a DigitalWrite to pin 5. Unfortunately this hasn't reduced the amount on power consumption.

    @m26872 said:

    Is 3mA the total sleep mode consumption with (not tripping) motion sensor? I imagine that you drain the batteries sooner if you have a lot of motion (and send update to controller every time)?

    Yes 3mA is the sleep consumption. It rises to around 30mA on trip and on start but settles down to 3.5mA in between. I had been testing it using a PP3 and a LM7805 but this was very inefficient and even with only one or two triggers per hour lasted less than 24hrs.

    'dzairo', couldn't get Fritzing to work for me so no schematic but I am using the basic wiring and coding supplied on the MySensors main site, so most of the system is stock. I would be interested to play with the MCU and dropping the chip frequency but haven't found enough about how to do this and whether it is worth it. Any ideas would be great.

    Thanks,
    Jon



  • @daulagari I'm using http://www.ebay.com/itm/231083181020 and MOSFET transistor as switch connected to DO pin. But this is not ideal solution for temp/hum measurement. It's better to use low voltage sensor for example HTU21T which can be connected directly to 2 AA batteries. It's just proof of concept for other sensors which require minimum 3,3V.
    @jonnyfishman my sleep consumption is about 6uA (not mA).


  • Hero Member

    @jonnyfishman Holy cow 3ma during sleep... Something doesn't sound right..

    EDIT:
    What is the consumption of the Arduino with nothing attached?


  • Admin

    @dopustko said:

    @daulagari I'm using http://www.ebay.com/itm/231083181020 and MOSFET transistor as switch connected to DO pin. But this is not ideal solution for temp/hum measurement. It's better to use low voltage sensor for example HTU21T which can be connected directly to 2 AA batteries. It's just proof of concept for other sensors which require minimum 3,3V.
    @jonnyfishman my sleep consumption is about 6uA (not mA).

    You end up getting way out of the maximum operating voltage on the atmel

    from page 299 in link datasheet

    Voltage on any Pin except RESET
    with respect to Ground . . . . . . . . . .-0.5V to VCC+0.5V

    So in theory, if your battery is down to 1.8V (which the 328p is specified to be able to run down to), maximum allowed voltage on ANY pin is only 2.3V. When you power up the sensors, they are running on 3.3V. It might work, but it also might be fatal to the atmel chip.

    Another issue is that the voltage for a logical 1, might be below the threshold of the sensors input, to detect a logical 1. From the datasheet, output HIGH level could be as low as 2.3V, when running on 3V, if you then lower VCC it also lowers the HIGH level. For the DS18b20 minimym level for logical HIGH is 2.2V, when running on local power (if using parasitic power it's 3V).

    / Thomas



  • @tbowmo I know for this Atmel limitation. But DHT22 sensor is open collector output and pull up resistor is connected to battery. It can happened that after battery voltage drops the sensor will stop working because of threshold value for 1 as you said. But as I said this was just experimental solution I will use HTU21T sensor.



  • Wow 6uA. That's were I'm hoping to get to.

    Running higher with everything disconnected as its not going into sleep mode (no transciever detected). I don't know whether it's a nano clone that's causing the higher consumption and don't want to have to pull apart my Gravitech nano gateway atm.

    Will reducing the clock speed have an effect on consumption and how is this best done through the Arduino software.

    I've attached my sketch, don't think there's anything in it that would obviously contribute to the load.
    MTB.ino

    Thanks.



  • @jonnyfishman I'm using striped (no regulator and no power LED) version of Arduino pro mini. 6uA is in sleep mode (only WD is enabled). You can simply put Arduino in sleep mde with gw.powerDown(); or gw.sleep(); . Lower frequency means only that current consumption is lower when Arduino is running and not in sleep mode. Lower frequency also mean that Arduino can run at lower voltage.
    Try with simple sketch which use only gw.begin and gw.sleep and measure current.


  • Hero Member

    The nano has some drain for the USB interface chip and PS. That may be where the extra current goes in sleep mode. You may need to disable that, or switch to a different Arduino.

    The clock speed when powered up may not be very important if you sleep most of the time and only power up briefly. It depends on the ratios (on time: sleep time and on power:sleep power).

    (For some applications, it's better to use full speed when powered up in order to get things done faster to power down sooner; but if your active cycle mostly waits on a slow sensor or on the radio anyway, a slow MCU clock may allow completing the powerup cycle about as soon as a fast clock, in which case the slower clock would at worst not hurt and may help some. You'd have to be sure when using a new library that it fully adapts to the slower clock speed)


  • Hero Member

    @dopustko said:

    @daulagari I'm using http://www.ebay.com/itm/231083181020 and MOSFET transistor as switch connected to DO pin.

    How are you connecting the MOSFET to the boost regulator?


  • Hero Member

    Do you know a good source for HTU-21T?

    I find some sources for HTU-21D (http://www.findchips.com/search/htu21) the ones that are not out of stock and sell small quantities tend to be pricey and/or have a large shipping charge.



  • @Zeph lowering frequency can increase power consumption because of slower execution, but it also mean that you can use lower voltage (direct battery connection and no step up regulator).
    I'm using P channel MOSFET SI2333DDS-T1-GE3. It has low internal resistance G is conencted to Arduino DO, S to 3.3 V and D to switch regulator.
    I got my HTI21T on ebay.



  • Hi.
    I read last post .. and don't understand something ..
    If use ATmega328P version with internal 8Mhz or 1Mhz(if divide) then you can connect directly 2xAA or 2x AAA cell .. its total 3V ..
    and THI21T is sensor that working from 1.5V to 3.6V .. then you don't need step up converter..
    I make my self sensor with ATmega328P , run on 8Mhz internal RC oscillator , to TIMER2 I connect 32kHz crystal .
    I measure VBAT by divider 1M and 390K with 1.1 internal reference and temperature with NTC 10k sensor as divider 10k and NTC sensor ..
    I use free MCU pin to controll temperature divider for lower power consumption.. my consumption is 10uA with TIMER2 working and WDG enable .

    regards



  • @dzairo You need step up regulator if you use DHT22. If you use HTU21T you do not need step up regulator if you use 2 AA batteries. In second case will batteries last much longer than in first case.



  • @dopustko said:

    @dzairo You need step up regulator if you use DHT22. If you use HTU21T you do not need step up regulator if you use 2 AA batteries. In second case will batteries last much longer than in first case.

    sorry... my mistake .. DHT22 is different like HTU22T .. sorry..


Log in to reply
 

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