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. Hardware
  3. Low Power: How much current? [Solved]

Low Power: How much current? [Solved]

Scheduled Pinned Locked Moved Hardware
109 Posts 10 Posters 68.6k Views 11 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.
  • B Offline
    B Offline
    brolly759
    wrote on last edited by
    #16

    OK I am going to join the party as this is exactly what I have been testing this past week. I have a uCurrent Gold and running on an 8Mhz 3.3v Nano Pro from this site:

    https://www.sparkfun.com/products/11114

    I have un-soldered the smt jumper to bypass all voltage regulating and running off of 2 AA Batteries.

    I am using the BinarySwitchSleepSensor sketch from the MySensors library. This uses pin 2/3 as an interrupt and sleeps until a pin hits GND. It wakes up, sends the new state, and goes back to sleep. The sketch also makes pin 2/3 high and uses the internal pull-up resistor.

    Originally I was getting 23-24uA in sleep mode when GND was not connected to pin 2/3. 117uA when GND was connected to pin 2/3. We will refer to this as open and closed pin state.

    Here is my methods:
    I downgraded my version of Arduino IDE to 1.0.6 from the latest build 1.6.5 and here are my new numbers:

    2.5-2.7uA sleep mode - Open pin state
    98-100uA sleep mode - Closed pin state

    Then I deleted from the sketch the digitalWrite on pin 2/3 and used an external resistor thanks to the advice from AWI. I plugged in an 10M Resistor to pin 2 to VCC and GND was the switch. Here are my new numbers:

    2.5-2.7uA sleep mode - Open pin state
    3.1-3.2uA sleep mode - Closed pin state

    So far today I have not gotten any false positives in my setup which is freaking amazing.

    Now I used a quick sketch "DallasTemperatureSensor" from the MySensors library to test what my current would be in sleep mode with a watchdog timer. I did NOT connect a temp sensor but my sleep current is: 7.6uA - 7.8uA.

    I hope this helps and if you need any testing let me know.

    I have a post on the Arduino forums here:
    http://forum.arduino.cc/index.php?topic=341958.msg2360300#msg2360300

    You can see me talking to the guy who actually wrote up the gammon website and you can ask him things directly if you ever wanted too. Very helpful guy!

    NeverDieN 1 Reply Last reply
    1
    • NeverDieN Offline
      NeverDieN Offline
      NeverDie
      Hero Member
      wrote on last edited by NeverDie
      #17

      Thanks! Very timely, as I was just now hunting for a 3.3v 8Mhz Pro Mini that might work.

      Sparkman is right. Now that I'm looking more closely, I'm finding that there are a lot of "configurations" of the pro mini. Amazon is selling some (possibly fake) Sparkfun pro mini's that superficially resemble the one brolly759 has, except they're missing the solder jumper, and some of the passives look smaller.

      http://www.amazon.com/gp/product/B00JNYXC8Q/ref=ox_sc_act_title_1?ie=UTF8&psc=1&smid=A1LHQ5G6ONPXVT

      http://www.amazon.com/gp/product/B00Q9YAP2E/ref=ox_sc_act_title_2?ie=UTF8&psc=1&smid=A34K5WF5Z9R33P

      I'm in a bit of a hurry because I don't want to lose momentum, so I'll be the guinea pig and order the red ones. If they don't measure out well, then I'll order one direct from Sparkfun.

      Ultimately, though, I'd like to find a source for a truly low power "configuration" at closer to the $2 from China. If that's not possible, then before giving up I want to at least understand why it's not possible.

      1 Reply Last reply
      0
      • B Offline
        B Offline
        brolly759
        wrote on last edited by
        #18

        I think at one time, the pro mini did not have the power jumper and china copies the boards and resells them. They probably never refreshed the product line. Here is an article in 2013 of someone trying to do low power on the boards that you are referring too:

        link text

        Here is the trace you need to cut to bypass all the voltage regulation crap:
        link text

        If you have one of the cheap boards, I would cut the PCB trace first and retest before buying new stuff. Let me know what happens.

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

          @Neverdie: during my low power tests, I have used these http://s.click.aliexpress.com/e/feUvNFufi and it worked like I said. Arduino pro mini, I think you know it, is basically an atmel with some components. And I think most of arduino clones follow Arduino reference schematics. Just rooting and placements is different. So, in theory, it should work. but maybe bad components like capa, and I am not sure, could be the cause. but, in this case, it means that you can't be sure with all clones too and you need to find the good supplier. very strange and not cool. or maybe could it be counterfeil atmel...I don't think.
          Did you tried Sketch J from Gammon. Do you have still the problem??
          And of course like Brolly said, I removed voltage reg stuff.

          NeverDieN 1 Reply Last reply
          1
          • B Offline
            B Offline
            brolly759
            wrote on last edited by brolly759
            #20

            Dont forget to check the Atmega chip. There is Atmega328 and 328P versions. You need the "P" As that is designed to be power efficient.

            Here is some more info on that:
            link text

            1 Reply Last reply
            0
            • scalzS scalz

              @Neverdie: during my low power tests, I have used these http://s.click.aliexpress.com/e/feUvNFufi and it worked like I said. Arduino pro mini, I think you know it, is basically an atmel with some components. And I think most of arduino clones follow Arduino reference schematics. Just rooting and placements is different. So, in theory, it should work. but maybe bad components like capa, and I am not sure, could be the cause. but, in this case, it means that you can't be sure with all clones too and you need to find the good supplier. very strange and not cool. or maybe could it be counterfeil atmel...I don't think.
              Did you tried Sketch J from Gammon. Do you have still the problem??
              And of course like Brolly said, I removed voltage reg stuff.

              NeverDieN Offline
              NeverDieN Offline
              NeverDie
              Hero Member
              wrote on last edited by NeverDie
              #21

              @scalz said:

              @Neverdie: ...and it worked like I said.

              @scalz To avoid confusion, I'm feeling the need for clarification: Do you mean that particular pro mini, from that particular vendor, is what you succeeded in bringing down (by unspecified means) to below 1uA sleep current?

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

                yep. funny you proposed this link, and I checked on my ali orders and it is the same!
                what do you mean by "unspecified means". I am not sure....

                NeverDieN 1 Reply Last reply
                0
                • scalzS scalz

                  yep. funny you proposed this link, and I checked on my ali orders and it is the same!
                  what do you mean by "unspecified means". I am not sure....

                  NeverDieN Offline
                  NeverDieN Offline
                  NeverDie
                  Hero Member
                  wrote on last edited by NeverDie
                  #23

                  @scalz said:

                  yep. funny you proposed this link, and I checked on my ali orders and it is the same!
                  what do you mean by "unspecified means". I am not sure....

                  By "unspecified means", I just mean that you never said how you managed to do it. Rather, you said you'd rather let Charles say how he did it, whenever it is that he feels like he's ready to say.

                  So, apparently, I was confused. For some reason I thought you had managed to achieve <1uA sleep current in an entirely custom way and that the Pro Mini's from Great Wall Electronics were unrelated to that. That's why when I stumbled across the 3-step article I posted earlier in this thread, I thought I'd just press ahead with that because it made the entire process (seemingly) so simple. Well, it is simple, except all the different "configurations" muddied the water and created doubt about what sleep current I might really get, maybe even depending on which "configuration" I got.

                  At this point I'd be happy with 3.5uA. Based on the above, it sounds like Brolly759 found a way to reduce sleep currents down even further to 2.5-2.7uA, though I haven't yet wrapped my head around how Brolly759 did it, aside from reverting to IDE 1.0.6. I need to back up and re-read what he wrote now.

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

                    @Neverdie: ok. this is what I was thinking..ahah no problem. I think you have misunderstood me.

                    First, I think Brolly knows how to get low power as he said he has studied Gammon sketch. have you?

                    Then, at the beginning I give you links to achieve low power but you told me that you wanted an easy to do way (the link with coin cell) and told !scalz. So I thought you didn't want to know more.

                    So, if you want to try these steps and check (this was my first steps):

                    • arduino pro mini, remove led and voltage reg
                    • upload sketch J from Gammon, so you will be sure the best you can achieve
                    • check at your uCurrent you will be < uA
                    • Mysensors part : make a function from this sketch J and use it for sleeping instead of gw.sleep which use lowpowerlab (very strange I had difference with it and didn't investigated more). but you will need to find something for your radio next...like mosfet but it is other things.

                    But If you try it, you will see with your eyes now...

                    Yes I have already some codes. but I told you I don't share as it is experimental, not clean, and a good lib will be released soon. So i don't want to spend more time for nothing.

                    NeverDieN 1 Reply Last reply
                    0
                    • B brolly759

                      OK I am going to join the party as this is exactly what I have been testing this past week. I have a uCurrent Gold and running on an 8Mhz 3.3v Nano Pro from this site:

                      https://www.sparkfun.com/products/11114

                      I have un-soldered the smt jumper to bypass all voltage regulating and running off of 2 AA Batteries.

                      I am using the BinarySwitchSleepSensor sketch from the MySensors library. This uses pin 2/3 as an interrupt and sleeps until a pin hits GND. It wakes up, sends the new state, and goes back to sleep. The sketch also makes pin 2/3 high and uses the internal pull-up resistor.

                      Originally I was getting 23-24uA in sleep mode when GND was not connected to pin 2/3. 117uA when GND was connected to pin 2/3. We will refer to this as open and closed pin state.

                      Here is my methods:
                      I downgraded my version of Arduino IDE to 1.0.6 from the latest build 1.6.5 and here are my new numbers:

                      2.5-2.7uA sleep mode - Open pin state
                      98-100uA sleep mode - Closed pin state

                      Then I deleted from the sketch the digitalWrite on pin 2/3 and used an external resistor thanks to the advice from AWI. I plugged in an 10M Resistor to pin 2 to VCC and GND was the switch. Here are my new numbers:

                      2.5-2.7uA sleep mode - Open pin state
                      3.1-3.2uA sleep mode - Closed pin state

                      So far today I have not gotten any false positives in my setup which is freaking amazing.

                      Now I used a quick sketch "DallasTemperatureSensor" from the MySensors library to test what my current would be in sleep mode with a watchdog timer. I did NOT connect a temp sensor but my sleep current is: 7.6uA - 7.8uA.

                      I hope this helps and if you need any testing let me know.

                      I have a post on the Arduino forums here:
                      http://forum.arduino.cc/index.php?topic=341958.msg2360300#msg2360300

                      You can see me talking to the guy who actually wrote up the gammon website and you can ask him things directly if you ever wanted too. Very helpful guy!

                      NeverDieN Offline
                      NeverDieN Offline
                      NeverDie
                      Hero Member
                      wrote on last edited by
                      #25

                      @brolly759 said:

                      OK I am going to join the party as this is exactly what I have been testing this past week. I have a uCurrent Gold and running on an 8Mhz 3.3v Nano Pro from this site:

                      https://www.sparkfun.com/products/11114

                      I have un-soldered the smt jumper to bypass all voltage regulating and running off of 2 AA Batteries.

                      I am using the BinarySwitchSleepSensor sketch from the MySensors library. This uses pin 2/3 as an interrupt and sleeps until a pin hits GND. It wakes up, sends the new state, and goes back to sleep. The sketch also makes pin 2/3 high and uses the internal pull-up resistor.

                      Originally I was getting 23-24uA in sleep mode when GND was not connected to pin 2/3. 117uA when GND was connected to pin 2/3. We will refer to this as open and closed pin state.

                      Here is my methods:
                      I downgraded my version of Arduino IDE to 1.0.6 from the latest build 1.6.5 and here are my new numbers:

                      2.5-2.7uA sleep mode - Open pin state
                      98-100uA sleep mode - Closed pin state

                      Then I deleted from the sketch the digitalWrite on pin 2/3 and used an external resistor thanks to the advice from AWI. I plugged in an 10M Resistor to pin 2 to VCC and GND was the switch. Here are my new numbers:

                      2.5-2.7uA sleep mode - Open pin state
                      3.1-3.2uA sleep mode - Closed pin state

                      So far today I have not gotten any false positives in my setup which is freaking amazing.

                      Now I used a quick sketch "DallasTemperatureSensor" from the MySensors library to test what my current would be in sleep mode with a watchdog timer. I did NOT connect a temp sensor but my sleep current is: 7.6uA - 7.8uA.

                      I hope this helps and if you need any testing let me know.

                      I have a post on the Arduino forums here:
                      http://forum.arduino.cc/index.php?topic=341958.msg2360300#msg2360300

                      You can see me talking to the guy who actually wrote up the gammon website and you can ask him things directly if you ever wanted too. Very helpful guy!

                      If you removed your switch from the equation and just had the arduino pro mini sleep and never wake up (yeah, I know, it's a NOP), what sleep current would you get? That's the sleep current I've lately been trying to measure, because it's the simplest, base case, and you can add current drains to that, as needed.

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        brolly759
                        wrote on last edited by
                        #26

                        This is testing using the Binary Switch Sleep sketch.

                        The switch is not active when its in its "open state" so there is no drain. I removed the resistor though and all the jumpes, I am still getting around 2.7-2.8uA is sleep mode without switch.

                        In sleep mode with the NRF ONLY VCC unplugged I am getting 1.3uA - 1.5uA.

                        In sleep mode with ALL cables unplugged from NRF I am getting a strange reading and not really sure which one is accurate but here are my numbers:
                        With uCurrent in uA mode I am getting .4uA -.5uA
                        With uCurrent in nA mode I am getting 110-120nA

                        I checked on Gammon site using the reference code, the nA of 110-120nA is accurate and the uA mode is wrong when I go down that low. So in short, I am getting 110-120nA when nRF is unplugged completely.

                        1 Reply Last reply
                        0
                        • scalzS scalz

                          @Neverdie: ok. this is what I was thinking..ahah no problem. I think you have misunderstood me.

                          First, I think Brolly knows how to get low power as he said he has studied Gammon sketch. have you?

                          Then, at the beginning I give you links to achieve low power but you told me that you wanted an easy to do way (the link with coin cell) and told !scalz. So I thought you didn't want to know more.

                          So, if you want to try these steps and check (this was my first steps):

                          • arduino pro mini, remove led and voltage reg
                          • upload sketch J from Gammon, so you will be sure the best you can achieve
                          • check at your uCurrent you will be < uA
                          • Mysensors part : make a function from this sketch J and use it for sleeping instead of gw.sleep which use lowpowerlab (very strange I had difference with it and didn't investigated more). but you will need to find something for your radio next...like mosfet but it is other things.

                          But If you try it, you will see with your eyes now...

                          Yes I have already some codes. but I told you I don't share as it is experimental, not clean, and a good lib will be released soon. So i don't want to spend more time for nothing.

                          NeverDieN Offline
                          NeverDieN Offline
                          NeverDie
                          Hero Member
                          wrote on last edited by NeverDie
                          #27

                          @scalz said:

                          I think you have misunderstood me.

                          Sounds that way. Probably my fault, due to lack of sleep.

                          • check at your uCurrent you will be < uA

                          Excellent!

                          Next step for me: placing an order with Great Wall Electronics for 10x pro mini's, as that is now critical path. By the time it arrives (hopefully even sooner), l should have this figured out.

                          1 Reply Last reply
                          0
                          • NeverDieN Offline
                            NeverDieN Offline
                            NeverDie
                            Hero Member
                            wrote on last edited by NeverDie
                            #28

                            BTW, while on Great Wall, I noticed these RTC functional knock-offs of the Chronodot are just $0.57/each.

                            http://www.aliexpress.com/item/DS3231-AT24C32-IIC-Module-Precision-Clock-Module-DS3231SN-for-Arduino-Memory-module-Free-Shipping/32346088222.html

                            It might make sense to use one of them to wake up an arduino just once, when it needs to be woken, instead of every 8 seconds, as when using the Watchdog Timer. The current consumed by a genuine ChronoDot is: 200uA (active), 840nA (timekeeping) I don't have amp figures for the Great Wall knock-offs. I have a couple of the genuine chronodots, and they keep pretty accurate time.

                            1 Reply Last reply
                            0
                            • B Offline
                              B Offline
                              brolly759
                              wrote on last edited by
                              #29

                              We really need a separate section just on power consumption, what each person gets per each configuration and instructions lol.

                              I have never played with the Chronodot or any time stamp stuff. Is is easy to program?

                              It does make sense to remove the watchdog timer: 7uA current with this but, who wants to do the math? What is the rise/fall time of the Chronodot? Depending on the duration of the rise time and frequency of waking up the arduino, we may not be saving much power. (Algebra was never my strong suite. Never went to college lol)

                              On a side note, I am working with Gammon on figuring out why the nRF takes so much power: 2.4uA in sleep mode. Though I don't have any hardware at home so we must wait until tomorrow for that. In theory Arduino = 100+- nA + 800-900nA(NRF) = 1uA in sleep mode with an interrupt. That is what we all need to be aiming for, or at least I am.

                              1 Reply Last reply
                              0
                              • NeverDieN Offline
                                NeverDieN Offline
                                NeverDie
                                Hero Member
                                wrote on last edited by
                                #30

                                I think I spoke too soon. For battery applications, probably by now there are better options.

                                1 Reply Last reply
                                0
                                • B Offline
                                  B Offline
                                  brolly759
                                  wrote on last edited by
                                  #31

                                  @NeverDie Trust me, there is never the perfect option... every time you think you have the right part and use it, another one that is better comes out... cant work fast enough anymore lol

                                  1 Reply Last reply
                                  0
                                  • B Offline
                                    B Offline
                                    brolly759
                                    wrote on last edited by
                                    #32

                                    Look at this one:
                                    http://ambiqmicro.com/am18xx-ultra-low-power-rtc

                                    14nA !!!! haha

                                    1 Reply Last reply
                                    0
                                    • NeverDieN Offline
                                      NeverDieN Offline
                                      NeverDie
                                      Hero Member
                                      wrote on last edited by NeverDie
                                      #33

                                      Wow! Good find. LOL. I was just about to post the following, as a "for instance," but you already found something that's 2-7x better.

                                      "For instance, Digikey now sells a$14.40 eval board with a newer RTC clock on it that consumes just 100na: http://www.digikey.com/product-detail/en/OM13512/568-11550-ND/4947022
                                      That one uses SPI bus, but there's an I2C variant."

                                      I'd really prefer that it be built into the MCU anyway. These things are just the bridge to that. If the WDT could have timed beyond 8 seconds to hours or days, we might not even be talking about it. Apparently it was meant for rebooting the MCU if the MCU got wedged, not for sleeping the MCU for hours or days. It illustrates how long overdue the arduino is for a major updating.

                                      1 Reply Last reply
                                      0
                                      • B Offline
                                        B Offline
                                        brolly759
                                        wrote on last edited by
                                        #34

                                        You may want to check how the mySensors library actually works. I barely know hardware and coding, I scrape by... lol but in all the sensor examples you have this code:

                                        unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
                                        
                                        gw.sleep(SLEEP_TIME);
                                        

                                        That is a 30 second duration for sleep. I haven't tried to increase that time yet but maybe they are looping through the 8 second limit? Dunno. Worth to check though how they do it.

                                        My issue is that this sleep method uses 7.6-7.8uA. It would be nice to have it at like < 3uA.

                                        1 Reply Last reply
                                        0
                                        • B Offline
                                          B Offline
                                          brolly759
                                          wrote on last edited by
                                          #35

                                          I am digging around and looking at the code, I think it just cycles through 8 second batches.

                                          We have an unsigned long, so thats 4,294,967,295 ms = 4294967.295 seconds = 71582.78825 minutes = 1193.046470833333 hours = 49.71026961805556 days.

                                          So IF there is not a cap on the max duration of sleep in the Mysensors library, you can theoretically go to sleep for the max duration of the unsigned long which is about 49 ish days...

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          26

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          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