Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. General Discussion
  3. RFM69 sleep mode

RFM69 sleep mode

Scheduled Pinned Locked Moved General Discussion
25 Posts 9 Posters 16.3k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    hek
    Admin
    wrote on last edited by
    #2

    If you use the MySensors sleep function it calls
    https://github.com/mysensors/Arduino/blob/development/libraries/MySensors/utility/RFM69.cpp#L152

    I hope the RF69 library sleep function works...

    What is the expected consumption?

    1 Reply Last reply
    0
    • FrancoisF Offline
      FrancoisF Offline
      Francois
      wrote on last edited by
      #3

      @hek as per this Web site I should get about 16uA http://forum.anarduino.com/posts/list/39.page

      1 Reply Last reply
      0
      • H Offline
        H Offline
        hek
        Admin
        wrote on last edited by
        #4

        Cant help you much right now as I don't have my RF69 setup up and running.

        Maybe Felix over at lowpowerlab can give you some hints (we use his code for the driver).

        1 Reply Last reply
        0
        • FrancoisF Offline
          FrancoisF Offline
          Francois
          wrote on last edited by
          #5

          @hek to get down to 3uA I have to use the following line.

          LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
          

          How do I do this in the current library. If I use the LowPower library I get an error when compile

          1 Reply Last reply
          0
          • H Offline
            H Offline
            hek
            Admin
            wrote on last edited by
            #6

            Tried gw.sleep(8000); ?

            1 Reply Last reply
            0
            • FrancoisF Offline
              FrancoisF Offline
              Francois
              wrote on last edited by
              #7

              @hek with sleep(8000) I still get 3.75mA.

              1 Reply Last reply
              0
              • H Offline
                H Offline
                hek
                Admin
                wrote on last edited by
                #8

                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?

                1 Reply Last reply
                0
                • FrancoisF Offline
                  FrancoisF Offline
                  Francois
                  wrote on last edited by
                  #9

                  @hek sorry how will I disconnect the radio?

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    hek
                    Admin
                    wrote on last edited by
                    #10

                    Ahh.. good question if (you're running Moteino with them soldered on).

                    1 Reply Last reply
                    0
                    • FrancoisF Offline
                      FrancoisF Offline
                      Francois
                      wrote on last edited by
                      #11

                      @hek yes the radio is solder on

                      1 Reply Last reply
                      0
                      • H Offline
                        H Offline
                        hek
                        Admin
                        wrote on last edited by hek
                        #12

                        I can't find myself doing anything different from the LowPower library in in MyAtMega328.cpp - sleep(). Need someone else's eyes on it.

                        1 Reply Last reply
                        0
                        • FrancoisF Offline
                          FrancoisF Offline
                          Francois
                          wrote on last edited by
                          #13

                          @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);
                          }
                          
                          
                          1 Reply Last reply
                          0
                          • H Offline
                            H Offline
                            hek
                            Admin
                            wrote on last edited by
                            #14

                            You use it by calling gw.sleep() which initiates powerDown.

                            https://github.com/mysensors/Arduino/blob/development/libraries/MySensors/MySensor.cpp#L820

                            1 Reply Last reply
                            0
                            • FrancoisF Offline
                              FrancoisF Offline
                              Francois
                              wrote on last edited by
                              #15

                              @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.

                              N 1 Reply Last reply
                              0
                              • FrancoisF Francois

                                @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.

                                N Offline
                                N Offline
                                NeverDie
                                Hero Member
                                wrote on last edited by
                                #16

                                @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?

                                P 1 Reply Last reply
                                0
                                • N NeverDie

                                  @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?

                                  P Offline
                                  P Offline
                                  peres
                                  wrote on last edited by
                                  #17

                                  @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.

                                  M 1 Reply Last reply
                                  0
                                  • P peres

                                    @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.

                                    M Offline
                                    M Offline
                                    manutremo
                                    wrote on last edited by manutremo
                                    #18

                                    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_DRIVER
                                    

                                    to enable the new driver.

                                    Let us know how it goes :)

                                    1 Reply Last reply
                                    1
                                    • N Offline
                                      N Offline
                                      napo7
                                      Hardware Contributor
                                      wrote on last edited by
                                      #19

                                      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 !

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        scalz
                                        Hardware Contributor
                                        wrote on last edited by scalz
                                        #20

                                        @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#gab39d3b81f005e00117269d79c7b2ee4c

                                        should be transportDisable/transportReInitialise

                                        Else the radio specific functions (a layer above driver) are in the MyTransportRFM69.cpp

                                        1 Reply Last reply
                                        0
                                        • N Offline
                                          N Offline
                                          napo7
                                          Hardware Contributor
                                          wrote on last edited by
                                          #21

                                          Thanks !

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          5

                                          Online

                                          12.0k

                                          Users

                                          11.2k

                                          Topics

                                          113.4k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular