RFM69 sleep mode
-
Strange that you get different values depending on radio. That points to problem with radio sleep and not the Arduino itself.
So if create a RF69 sketch that just sleeps in loop. What happens if you disconnect radio (after init)? Do you you get ~3.75uA?
-
@hek I see that you have powerDown in the MyHwATMega328.cpp how do I use that function?
void powerDown(period_t period) { ADCSRA &= ~(1 << ADEN); if (period != SLEEP_FOREVER) { wdt_enable(period); WDTCSR |= (1 << WDIE); } #if defined __AVR_ATmega328P__ do { set_sleep_mode(SLEEP_MODE_PWR_DOWN); cli(); sleep_enable(); sleep_bod_disable(); sei(); sleep_cpu(); sleep_disable(); sei(); } while (0); #else do { set_sleep_mode(SLEEP_MODE_PWR_DOWN); cli(); sleep_enable(); sei(); sleep_cpu(); sleep_disable(); sei(); } while (0); #endif ADCSRA |= (1 << ADEN); } -
@hek Hi I got a new shipment of Arduino mini pro and after I did the low power hack on this Arduino I now are getting 30uA current usage. Thank again for all you support and for this great MySensor community that you started :). Now I can go full steam ahead in building more sensor for my house.
-
@hek Hi I got a new shipment of Arduino mini pro and after I did the low power hack on this Arduino I now are getting 30uA current usage. Thank again for all you support and for this great MySensor community that you started :). Now I can go full steam ahead in building more sensor for my house.
@Francois said:
@hek Hi I got a new shipment of Arduino mini pro and after I did the low power hack on this Arduino I now are getting 30uA current usage. Thank again for all you support and for this great MySensor community that you started :). Now I can go full steam ahead in building more sensor for my house.
So, just to be clear, is this an accurate summary: the full package (Arduino mni pro plus radio) sleeps at 30uA if using the RFW69 but sleeps at 3uA if using the NRF24L01+?
Also, does it make any difference whether it's RFM69W, RFM69CW, or RFM69HW? Do they all draw the same amount of current while sleeping?
-
@Francois said:
@hek Hi I got a new shipment of Arduino mini pro and after I did the low power hack on this Arduino I now are getting 30uA current usage. Thank again for all you support and for this great MySensor community that you started :). Now I can go full steam ahead in building more sensor for my house.
So, just to be clear, is this an accurate summary: the full package (Arduino mni pro plus radio) sleeps at 30uA if using the RFW69 but sleeps at 3uA if using the NRF24L01+?
Also, does it make any difference whether it's RFM69W, RFM69CW, or RFM69HW? Do they all draw the same amount of current while sleeping?
@NeverDie
Hi, I know this is an old thread, but it is stil a valid subject to me.
I have had success with arduino pro mini v2 and RFM69W in sleep, but not the high power version RFM69HW.
Arduino+RFM69W sleeps at 5.2micro Amp.
Arduino+RFM69HW sleeps at 420micro Amp.
I have written about it in arduino forum.
I would be glad if someone has a solution for this. -
@NeverDie
Hi, I know this is an old thread, but it is stil a valid subject to me.
I have had success with arduino pro mini v2 and RFM69W in sleep, but not the high power version RFM69HW.
Arduino+RFM69W sleeps at 5.2micro Amp.
Arduino+RFM69HW sleeps at 420micro Amp.
I have written about it in arduino forum.
I would be glad if someone has a solution for this.Hi @peres,
My RFM69HW current during sleep is less than 1 uA aprox, which is consistent with what is shown in the datasheet. Interestingly, this is the result when powering the device with a battery; when powering the device from the PC USB serial, it's around 6 uA - still close enough as it's measured with a "normal" multimeter.
I'Which version of mysensors are you using? I've moved to 2.2.0-beta (due to me needing other functionalities not availabel in 2.1.1, namely ATC which btw works fabulously) and found that support for nrf69 is - although not yet 100% completed - significantly improved. Maybe worth a try to see if that fixes your sleep consumption?
Remember adding
#define MY_RFM69_NEW_DRIVERto enable the new driver.
Let us know how it goes :)
-
Hi,
I have the same question, but a little bit different ;)
I use a RFM69 with the Mysensors 2.2.0 beta.
I don't sleep my node with the provided function, since I don't want to sleep for some time, but until a Pin Change Interrupt is triggered (via pin A0 or A1). So, I can't use the sleep() function.
I do put my node to sleep with avr core functions (setting registers, calling power_all_disable() and sleep_cpu()...) but I suppose the radio is never put on sleep !Is there a function I can call to sleep the radio, and if yes, is there another function I should call before sending, to awake the radio ?
Thanks !
-
@napo7
Here the list of the core functions (radio independant):
https://ci.mysensors.org/job/Verifiers/job/MySensors/branch/development/Doxygen_HTML/group__MyTransportgrp.html#gab39d3b81f005e00117269d79c7b2ee4cshould be transportDisable/transportReInitialise
Else the radio specific functions (a layer above driver) are in the MyTransportRFM69.cpp
-
Thanks !
-
@napo7 : you can use sleep with interrupts :
https://www.mysensors.org/download/sensor_api_20#sleeping -
That's not a software interrupt. In facts, the atmega supports interrupt on all pins, and also waking-up the device from any pin change, but the sleep function only support "external interrupts" which can only be triggered on pin 2 and 3.
-
That's not a software interrupt. In facts, the atmega supports interrupt on all pins, and also waking-up the device from any pin change, but the sleep function only support "external interrupts" which can only be triggered on pin 2 and 3.