Skip to content
  • 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. Announcements
  3. 💬 Battery Powered Sensors
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

💬 Battery Powered Sensors

Scheduled Pinned Locked Moved Announcements
battery
347 Posts 55 Posters 67.0k Views 53 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.
  • T Offline
    T Offline
    tssk
    wrote on last edited by
    #301

    So I ordered Arduino Uno for programming my Pro Minis. And going to experiment with 2xAA or 3xAA setup without step up booster (they are whining anyway so I will be happy if I get rid of it :)

    Thank everyone for help!

    1 Reply Last reply
    1
    • N Offline
      N Offline
      nekitoss
      wrote on last edited by
      #302

      I have a problem: when batteries go around 2.7V radio will stop transmitting. Board still take current, but no messages.
      I'm using own board with barebone 328p (8mHz internal) and SMD/mini nrf24l01 (pretty shure china)
      Did anyone had same issues?

      I've checked programmaticaly (yes, it is possible!) my fuse bits: Low=0xE2, High=0xD2, Extended=0xFE (0x06)
      (BOD = 1.8V)
      I've have three same boards (water leak) and used other not-yet-installed with specially made low-voltage regulated source (with 2200 uF capacitor and resistor load to eliminate voltage drop at transmission) to test - same result.
      Sometimes i can go lower to 2.5V but not guaranteed, sometimes even corrupted messages (i.e. node id 168 instead 8).
      Tests were without UART, only MYSController to monitor messages flooding each 5sec to approve life.

      Did anyone had same problems with nrf24l01 modules? All i see people say the can go to around 2.0 V.

      According to article https://www.gammon.com.au/power (and datasheet)
      at 8mHz i'm safe down to 2.4V (something like that i also measured)
      nrf should go down to 1.9...

      Also it would be great to add into advanced section possible voltages and problems with NiMh, china modules & 2.7V(if not only me), [not]possible currents from coin cells and metioned article.

      1 Reply Last reply
      0
      • zboblamontZ zboblamont

        @nekitoss Not sure where you got your information but my Gas Node is on it's second year running on the same two Varta AA alkalines and been down to -20 on more than a few occasions last winter, typically 4 months below -10... Currently the temperature is -3 and headed to -8 overnight, voltage is 2.98, will probably need to replace them in autumn 2019...

        N Offline
        N Offline
        nekitoss
        wrote on last edited by
        #303

        @nekitoss said in 💬 Battery Powered Sensors:

        It would be great to add to this arctle that if you want to be battery powered outdoors with temperature below zero - you have to use lithium batteries (FR6 for AA) (yes, batteries, not li-ion accumulators!) (for example ultimate lithium energizer, also could be found lithium batteries from other vendors), because Alkaline (LR6 for AA) will be frozen and loose their capacity heavily. If i remember it is >50% at -10 C and death at -20 C. Same problem for li-ion accumulators - when liquid is frozen - electrons are stucked...
        Also would be great to add some link about battery/accumulator types, advanteges and disadvantages, but i have no links in english, easy-to-read and in one place...

        But i have very great link about battery-powering that really should be added here, but in advanced section:
        http://www.gammon.com.au/power

        @zboblamont how your alkaline batteries experience after 2 years(temperatures, lasting time)? my freshly installed (yes, it was long develop and test...) Lithium AA - when few weeks ago it was -20 .. stopped transmitting! Fixed resetting power when it become little warmer. Possibly same problem with 2.7V or exactly there may be wrong BOD...

        skywatchS zboblamontZ 2 Replies Last reply
        0
        • N nekitoss

          @nekitoss said in 💬 Battery Powered Sensors:

          It would be great to add to this arctle that if you want to be battery powered outdoors with temperature below zero - you have to use lithium batteries (FR6 for AA) (yes, batteries, not li-ion accumulators!) (for example ultimate lithium energizer, also could be found lithium batteries from other vendors), because Alkaline (LR6 for AA) will be frozen and loose their capacity heavily. If i remember it is >50% at -10 C and death at -20 C. Same problem for li-ion accumulators - when liquid is frozen - electrons are stucked...
          Also would be great to add some link about battery/accumulator types, advanteges and disadvantages, but i have no links in english, easy-to-read and in one place...

          But i have very great link about battery-powering that really should be added here, but in advanced section:
          http://www.gammon.com.au/power

          @zboblamont how your alkaline batteries experience after 2 years(temperatures, lasting time)? my freshly installed (yes, it was long develop and test...) Lithium AA - when few weeks ago it was -20 .. stopped transmitting! Fixed resetting power when it become little warmer. Possibly same problem with 2.7V or exactly there may be wrong BOD...

          skywatchS Offline
          skywatchS Offline
          skywatch
          wrote on last edited by skywatch
          #304

          @nekitoss If I were you I;d reflash the bootloader and chec again. I got my pro mini with ebyte nrf24 to work and register with the gateway all the way down to 1.63V, so somethingi is wrong if you are loosing it at 2.7V (which is also as it happens, a BoD setting for atmel 328p). For the test I used minicore bootloader iwth Bod disabled and 2MHz clock. Bench power supply for the voltage variation.

          N 1 Reply Last reply
          0
          • N nekitoss

            @nekitoss said in 💬 Battery Powered Sensors:

            It would be great to add to this arctle that if you want to be battery powered outdoors with temperature below zero - you have to use lithium batteries (FR6 for AA) (yes, batteries, not li-ion accumulators!) (for example ultimate lithium energizer, also could be found lithium batteries from other vendors), because Alkaline (LR6 for AA) will be frozen and loose their capacity heavily. If i remember it is >50% at -10 C and death at -20 C. Same problem for li-ion accumulators - when liquid is frozen - electrons are stucked...
            Also would be great to add some link about battery/accumulator types, advanteges and disadvantages, but i have no links in english, easy-to-read and in one place...

            But i have very great link about battery-powering that really should be added here, but in advanced section:
            http://www.gammon.com.au/power

            @zboblamont how your alkaline batteries experience after 2 years(temperatures, lasting time)? my freshly installed (yes, it was long develop and test...) Lithium AA - when few weeks ago it was -20 .. stopped transmitting! Fixed resetting power when it become little warmer. Possibly same problem with 2.7V or exactly there may be wrong BOD...

            zboblamontZ Offline
            zboblamontZ Offline
            zboblamont
            wrote on last edited by
            #305

            @nekitoss No problems with alkaline power, 6 - 18 months now on 2xAA down to ca -15c, battery voltage reported ca 2 or 3 times per day.
            I vaguely recall reading an article on lithium and alkaline battery behaviour in extreme cold weather, the alkalines were the better performers.

            Note that the pro-minis here use onboard booster and LDO which provide stable 3.3v all the way down to ca 1.8v battery death, so battery voltage is unrelated to system voltage unlike your setup. They also use rfm69s (433MHz) which are better able to penetrate structural obstacles.
            Bear in mind that if you have comms problems this can substantially reduce battery life as it does not quickly waken, perform the task and go back to deep sleep

            1 Reply Last reply
            0
            • skywatchS Offline
              skywatchS Offline
              skywatch
              wrote on last edited by skywatch
              #306

              @mfalkvidd

              Nice job on updating the infor BTW :)

              1 Reply Last reply
              0
              • Puneit ThukralP Offline
                Puneit ThukralP Offline
                Puneit Thukral
                wrote on last edited by
                #307

                Adding on to this.. If we use a map function to convert the battery level like this, then it shows up as an attribute in HomeAssistant and Homekit

                Map function works and not the percent. The percent always shows as zero in Homekit.
                Hope this helps someone!

                void battery()
                {
                  long batteryMillivolts = hwCPUVoltage();
                  int batteryV =batteryMillivolts /1000 + 0.5;
                  auto batteryLevel = map(batteryV,EMPTY_BATTERY, FULL_BATTERY, 0, 100);
                  if (batteryLevel > 100) 
                  {batteryLevel=100;}
                
                #ifdef MY_DEBUG
                  Serial.print("Battery voltage: ");
                  Serial.print(batteryMillivolts / 1000.0);
                  Serial.println("V");
                  Serial.print("Battery Level ");
                  Serial.print(batteryLevel);
                  Serial.println(" %");
                #endif
                
                  if (oldBatteryLevel != batteryLevel) {
                    sendBatteryLevel(batteryLevel);
                    send(msgV.set(batteryV,2));
                    oldBatteryLevel = batteryLevel;
                  }
                }
                

                ![Home Assistant](812c9e02-8b21-44dc-ab8d-04559bf38462-image.png image url)

                IHomeKit

                1 Reply Last reply
                1
                • skywatchS skywatch

                  @nekitoss If I were you I;d reflash the bootloader and chec again. I got my pro mini with ebyte nrf24 to work and register with the gateway all the way down to 1.63V, so somethingi is wrong if you are loosing it at 2.7V (which is also as it happens, a BoD setting for atmel 328p). For the test I used minicore bootloader iwth Bod disabled and 2MHz clock. Bench power supply for the voltage variation.

                  N Offline
                  N Offline
                  nekitoss
                  wrote on last edited by
                  #308

                  @skywatch Thank you very much! Your advice helped. Not shure what it was on BOTH devices - my mistake or some corruption of fuses/program.
                  On first device (where i found problem) - there were different fuse bits (but according to my eyes BOD was even disabed, but not shure). On the second (where i tested) fuses were checked and were correct. I tried to play with fuses and erase chip... and something strange happened - or chip memory was broken or i can't verify program when box "erase flash and eeprom" is checked... so i took fresh nano, programmed it and resoldered MCU into the second device.
                  So both devices now are fixed and tested - both work till ~1.9V.
                  Thanks, you saved my brains!

                  skywatchS 1 Reply Last reply
                  1
                  • N nekitoss

                    @skywatch Thank you very much! Your advice helped. Not shure what it was on BOTH devices - my mistake or some corruption of fuses/program.
                    On first device (where i found problem) - there were different fuse bits (but according to my eyes BOD was even disabed, but not shure). On the second (where i tested) fuses were checked and were correct. I tried to play with fuses and erase chip... and something strange happened - or chip memory was broken or i can't verify program when box "erase flash and eeprom" is checked... so i took fresh nano, programmed it and resoldered MCU into the second device.
                    So both devices now are fixed and tested - both work till ~1.9V.
                    Thanks, you saved my brains!

                    skywatchS Offline
                    skywatchS Offline
                    skywatch
                    wrote on last edited by
                    #309

                    @nekitoss Yay! :)

                    Well done on getting it working!

                    1 Reply Last reply
                    1
                    • G Offline
                      G Offline
                      Gilles BILLARD
                      wrote on last edited by
                      #310

                      Hi from France;
                      I've tried everything I could and no way to put My temp. sensor to deep sleep.
                      so I went back to the very beginning with a bare Pro-Min 3.3v and I tryed this:


                      #include <LowPower.h>
                      void setup() {
                      pinMode(13, OUTPUT);
                      }
                      void loop() {
                      LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
                      digitalWrite(13, HIGH);
                      delay(1000);
                      digitalWrite(13, LOW);
                      }


                      My boad is going to sleep;
                      YEEEESSS ! the pb is NOT comming from the board itself....eating a bunch ou micro amp;
                      Then I've added the minimum requested to make a MySensor extension and I tried this:


                      #define MY_RADIO_NRF24 // Choix du module radio
                      #define MY_RF24_PA_LEVEL (RF24_PA_HIGH) //CHOIX: RF24_PA_MIN; RF24_PA_LOW; RF24_PA_HIGH; RF24_PA_MAX
                      #define RF24_CHANNEL 76
                      #define RF24_DATARATE RF24_250KBPS
                      #include <MySensors.h>
                      #include <LowPower.h>
                      void setup() {
                      pinMode(13, OUTPUT);
                      }
                      void loop() {
                      LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
                      digitalWrite(13, HIGH);
                      delay(1000);
                      digitalWrite(13, LOW);
                      }


                      The boad stays awaken (4 mA current)
                      So may be the problem is comming from LowPower library...
                      I tried this minimal prgm recommended in a tutorial, using MySensors library and SLEEP function:


                      // Enable and select radio type attached
                      #define MY_RADIO_RF24
                      #include <MySensors.h>
                      uint32_t SLEEP_TIME = 900000; // sleep time between reads (in seconds * 1000 )
                      int oldBatteryPcnt = 0;
                      #define FULL_BATTERY 3 // 3V for 2xAA alkaline. Adjust if you use a different battery setup.
                      void setup()
                      {
                      }
                      void presentation()
                      {
                      // Send the sketch version information to the gateway and Controller
                      sendSketchInfo("Battery Meter", "1.0");
                      }
                      void loop()
                      {
                      // get the battery Voltage
                      long batteryMillivolts = hwCPUVoltage();
                      int batteryPcnt = batteryMillivolts / FULL_BATTERY / 1000.0 * 100 + 0.5;
                      if (oldBatteryPcnt != batteryPcnt) {
                      sendBatteryLevel(batteryPcnt);
                      oldBatteryPcnt = batteryPcnt;
                      }
                      sleep(SLEEP_TIME);
                      }


                      NO WAY AGAIN; The board is still eating 4mA all the way long.
                      I'm lost !!!! Please HELP ME ....

                      E 1 Reply Last reply
                      0
                      • G Gilles BILLARD

                        Hi from France;
                        I've tried everything I could and no way to put My temp. sensor to deep sleep.
                        so I went back to the very beginning with a bare Pro-Min 3.3v and I tryed this:


                        #include <LowPower.h>
                        void setup() {
                        pinMode(13, OUTPUT);
                        }
                        void loop() {
                        LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
                        digitalWrite(13, HIGH);
                        delay(1000);
                        digitalWrite(13, LOW);
                        }


                        My boad is going to sleep;
                        YEEEESSS ! the pb is NOT comming from the board itself....eating a bunch ou micro amp;
                        Then I've added the minimum requested to make a MySensor extension and I tried this:


                        #define MY_RADIO_NRF24 // Choix du module radio
                        #define MY_RF24_PA_LEVEL (RF24_PA_HIGH) //CHOIX: RF24_PA_MIN; RF24_PA_LOW; RF24_PA_HIGH; RF24_PA_MAX
                        #define RF24_CHANNEL 76
                        #define RF24_DATARATE RF24_250KBPS
                        #include <MySensors.h>
                        #include <LowPower.h>
                        void setup() {
                        pinMode(13, OUTPUT);
                        }
                        void loop() {
                        LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
                        digitalWrite(13, HIGH);
                        delay(1000);
                        digitalWrite(13, LOW);
                        }


                        The boad stays awaken (4 mA current)
                        So may be the problem is comming from LowPower library...
                        I tried this minimal prgm recommended in a tutorial, using MySensors library and SLEEP function:


                        // Enable and select radio type attached
                        #define MY_RADIO_RF24
                        #include <MySensors.h>
                        uint32_t SLEEP_TIME = 900000; // sleep time between reads (in seconds * 1000 )
                        int oldBatteryPcnt = 0;
                        #define FULL_BATTERY 3 // 3V for 2xAA alkaline. Adjust if you use a different battery setup.
                        void setup()
                        {
                        }
                        void presentation()
                        {
                        // Send the sketch version information to the gateway and Controller
                        sendSketchInfo("Battery Meter", "1.0");
                        }
                        void loop()
                        {
                        // get the battery Voltage
                        long batteryMillivolts = hwCPUVoltage();
                        int batteryPcnt = batteryMillivolts / FULL_BATTERY / 1000.0 * 100 + 0.5;
                        if (oldBatteryPcnt != batteryPcnt) {
                        sendBatteryLevel(batteryPcnt);
                        oldBatteryPcnt = batteryPcnt;
                        }
                        sleep(SLEEP_TIME);
                        }


                        NO WAY AGAIN; The board is still eating 4mA all the way long.
                        I'm lost !!!! Please HELP ME ....

                        E Offline
                        E Offline
                        evb
                        wrote on last edited by
                        #311

                        @Gilles-BILLARD Using the lowpower lib and mysensors lib together will probably give conflicts, so you should avoid it. MySensors lib implements the same low power tricks.

                        When doing the latest test sketch, are you doing this also with a bare pro-mini 3.3V?
                        So not connected to anything, no radio, no sensor?
                        Try the same latest sketch, but set everything inside the loop() in comment except the sleep line.

                        1 Reply Last reply
                        0
                        • G Offline
                          G Offline
                          Gilles BILLARD
                          wrote on last edited by
                          #312

                          Thanks EVB;

                          1. Yes; Last test with a bare pro-mini 3.3v
                          2. I did that...
                          // Enable and select radio type attached
                          #define MY_RADIO_RF24
                          #include <MySensors.h>
                          uint32_t SLEEP_TIME = 900000;  // sleep time between reads (in seconds * 1000 )
                          int oldBatteryPcnt = 0;
                          #define FULL_BATTERY 3 // 3V for 2xAA alkaline. Adjust if you use a different battery setup.
                          void setup()
                          {
                          }
                          void presentation()
                          {
                            // Send the sketch version information to the gateway and Controller
                            sendSketchInfo("Battery Meter", "1.0");
                          }
                          void loop()
                          {
                          //    // get the battery Voltage
                          //    long batteryMillivolts = hwCPUVoltage();
                          //    int batteryPcnt = batteryMillivolts / FULL_BATTERY / 1000.0 * 100 + 0.5;
                          //  
                          //    if (oldBatteryPcnt != batteryPcnt) {
                          //      sendBatteryLevel(batteryPcnt);
                          //      oldBatteryPcnt = batteryPcnt;
                          //  }
                            sleep(SLEEP_TIME);
                          }
                          

                          Again : 4.2mA (no sleep )
                          So sad ! :disappointed_relieved:

                          1 Reply Last reply
                          1
                          • skywatchS Offline
                            skywatchS Offline
                            skywatch
                            wrote on last edited by skywatch
                            #313

                            @Gilles-BILLARD IT took me some time to work it out and get it working.

                            I suggest you install MiniCore library - it is easy to follow simple steps and takes a minute or two.

                            Then burn a bootloader into the atmega, I always use 3.3V, disable BoD and 4MHz or 8MHz internal clock. You can use one arduino to program another or just get a USB programmer from your preferred source (about $2).

                            Once your pro mini is booeloaded and you have your sketch in installed , remove the Power LED (or the series resistor for the LED) and also remove the voltage regulator (or cut the tracks as shown in the battery powered page).

                            You won't get down to <10uA in sleep unless you do all of this.

                            G 1 Reply Last reply
                            0
                            • G Offline
                              G Offline
                              Gilles BILLARD
                              wrote on last edited by Gilles BILLARD
                              #314

                              Thanks Skywatch,
                              My Pro-Mini boards are comming from Aliexpress, so, I was also thinking about the bootloader... what else ?
                              I'll do what you explain ASAP and be back to say what...
                              BTW: I already have cut the tracks powering the LED & regulator

                              1 Reply Last reply
                              0
                              • skywatchS skywatch

                                @Gilles-BILLARD IT took me some time to work it out and get it working.

                                I suggest you install MiniCore library - it is easy to follow simple steps and takes a minute or two.

                                Then burn a bootloader into the atmega, I always use 3.3V, disable BoD and 4MHz or 8MHz internal clock. You can use one arduino to program another or just get a USB programmer from your preferred source (about $2).

                                Once your pro mini is booeloaded and you have your sketch in installed , remove the Power LED (or the series resistor for the LED) and also remove the voltage regulator (or cut the tracks as shown in the battery powered page).

                                You won't get down to <10uA in sleep unless you do all of this.

                                G Offline
                                G Offline
                                Gilles BILLARD
                                wrote on last edited by Gilles BILLARD
                                #315

                                @skywatch NO WAY ! So bad !
                                I burned the MiniCore bootloader quite eazily using a second Pro-Mini loaded with Arduino BootLoader ( juste a file name error; looking for optiboot_flash_atmega328p_UART1_115200_16000000L_B5.hex but only optiboot_flash_atmega328p_UART0_115200_16000000L_B5.hex on the folder, so I just changed 0-->1 in the file name) and the résult was:
                                *
                                avrdude: Version 6.3-20201216
                                Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
                                Copyright (c) 2007-2014 Joerg Wunsch

                                     System wide configuration file is "C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/avrdude.conf"
                                
                                     Using Port                    : COM7
                                     Using Programmer              : stk500v1
                                     Overriding Baud Rate          : 19200
                                     AVR Part                      : ATmega328P
                                     Chip Erase delay              : 9000 us
                                     PAGEL                         : PD7
                                     BS2                           : PC2
                                     RESET disposition             : dedicated
                                     RETRY pulse                   : SCK
                                     serial program mode           : yes
                                     parallel program mode         : yes
                                     Timeout                       : 200
                                     StabDelay                     : 100
                                     CmdexeDelay                   : 25
                                     SyncLoops                     : 32
                                     ByteDelay                     : 0
                                     PollIndex                     : 3
                                     PollValue                     : 0x53
                                     Memory Detail                 :
                                
                                                              Block Poll               Page                       Polled
                                       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
                                       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
                                       eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                
                                     Programmer Type : STK500
                                     Description     : Atmel STK500 Version 1.x firmware
                                     Hardware Version: 2
                                     Firmware Version: 1.18
                                     Topcard         : Unknown
                                     Vtarget         : 0.0 V
                                     Varef           : 0.0 V
                                     Oscillator      : Off
                                     SCK period      : 0.1 us
                                

                                avrdude: AVR device initialized and ready to accept instructions

                                Reading | ################################################## | 100% 0.04s

                                avrdude: Device signature = 0x1e950f (probably m328p)
                                avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
                                To disable this feature, specify the -D option.
                                avrdude: erasing chip
                                avrdude: reading input file "C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex"
                                avrdude: writing flash (0 bytes):

                                Writing | ################################################## | 100% 0.00s

                                avrdude: 0 bytes of flash written
                                avrdude: verifying flash memory against C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex:
                                avrdude: load data flash data from input file C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex:
                                avrdude: input file C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex contains 0 bytes
                                avrdude: reading on-chip flash data:

                                Reading | ################################################## | 100% -0.00s

                                avrdude: verifying ...
                                avrdude: 0 bytes of flash verified
                                avrdude: reading input file "0x0f"
                                avrdude: writing lock (1 bytes):

                                Writing | ################################################## | 100% 0.04s

                                avrdude: 1 bytes of lock written
                                avrdude: verifying lock memory against 0x0f:
                                avrdude: load data lock data from input file 0x0f:
                                avrdude: input file 0x0f contains 1 bytes
                                avrdude: reading on-chip lock data:

                                Reading | ################################################## | 100% 0.01s

                                avrdude: verifying ...
                                avrdude: 1 bytes of lock verified

                                avrdude done. Thank you.


                                Then I loaded it with Blink demo...
                                At this point all's OKay. Both Po-Mini are blinking
                                Blink
                                Then I've loaded the 2nd with that:

                                // Enable and select radio type attached
                                #define MY_RADIO_RF24
                                #include <MySensors.h>
                                uint32_t SLEEP_TIME = 4000;  // sleep time (in seconds * 1000 )
                                
                                void setup() 
                                {
                                pinMode(LED_BUILTIN, OUTPUT);
                                }
                                
                                void presentation()
                                {  
                                  sendSketchInfo("Test Prgm", "1.0"); // Send the sketch version information to the gateway and Controller
                                }
                                void loop()
                                {
                                  digitalWrite(LED_BUILTIN, HIGH);
                                delay(1000);
                                  digitalWrite(LED_BUILTIN, LOW);
                                delay(1000);  
                                  
                                sleep(SLEEP_TIME);
                                }
                                

                                and...
                                the result is...
                                No blinking
                                NO BLINK
                                (draining more or less 2mA; Varying quickly from 1600uA to 2000uA; I should put a scope probe on that....)

                                YveauxY T 2 Replies Last reply
                                0
                                • G Gilles BILLARD

                                  @skywatch NO WAY ! So bad !
                                  I burned the MiniCore bootloader quite eazily using a second Pro-Mini loaded with Arduino BootLoader ( juste a file name error; looking for optiboot_flash_atmega328p_UART1_115200_16000000L_B5.hex but only optiboot_flash_atmega328p_UART0_115200_16000000L_B5.hex on the folder, so I just changed 0-->1 in the file name) and the résult was:
                                  *
                                  avrdude: Version 6.3-20201216
                                  Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
                                  Copyright (c) 2007-2014 Joerg Wunsch

                                       System wide configuration file is "C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/avrdude.conf"
                                  
                                       Using Port                    : COM7
                                       Using Programmer              : stk500v1
                                       Overriding Baud Rate          : 19200
                                       AVR Part                      : ATmega328P
                                       Chip Erase delay              : 9000 us
                                       PAGEL                         : PD7
                                       BS2                           : PC2
                                       RESET disposition             : dedicated
                                       RETRY pulse                   : SCK
                                       serial program mode           : yes
                                       parallel program mode         : yes
                                       Timeout                       : 200
                                       StabDelay                     : 100
                                       CmdexeDelay                   : 25
                                       SyncLoops                     : 32
                                       ByteDelay                     : 0
                                       PollIndex                     : 3
                                       PollValue                     : 0x53
                                       Memory Detail                 :
                                  
                                                                Block Poll               Page                       Polled
                                         Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
                                         ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
                                         eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                         flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                         lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                         hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                         efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                         lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                         calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                         signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                  
                                       Programmer Type : STK500
                                       Description     : Atmel STK500 Version 1.x firmware
                                       Hardware Version: 2
                                       Firmware Version: 1.18
                                       Topcard         : Unknown
                                       Vtarget         : 0.0 V
                                       Varef           : 0.0 V
                                       Oscillator      : Off
                                       SCK period      : 0.1 us
                                  

                                  avrdude: AVR device initialized and ready to accept instructions

                                  Reading | ################################################## | 100% 0.04s

                                  avrdude: Device signature = 0x1e950f (probably m328p)
                                  avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
                                  To disable this feature, specify the -D option.
                                  avrdude: erasing chip
                                  avrdude: reading input file "C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex"
                                  avrdude: writing flash (0 bytes):

                                  Writing | ################################################## | 100% 0.00s

                                  avrdude: 0 bytes of flash written
                                  avrdude: verifying flash memory against C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex:
                                  avrdude: load data flash data from input file C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex:
                                  avrdude: input file C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex contains 0 bytes
                                  avrdude: reading on-chip flash data:

                                  Reading | ################################################## | 100% -0.00s

                                  avrdude: verifying ...
                                  avrdude: 0 bytes of flash verified
                                  avrdude: reading input file "0x0f"
                                  avrdude: writing lock (1 bytes):

                                  Writing | ################################################## | 100% 0.04s

                                  avrdude: 1 bytes of lock written
                                  avrdude: verifying lock memory against 0x0f:
                                  avrdude: load data lock data from input file 0x0f:
                                  avrdude: input file 0x0f contains 1 bytes
                                  avrdude: reading on-chip lock data:

                                  Reading | ################################################## | 100% 0.01s

                                  avrdude: verifying ...
                                  avrdude: 1 bytes of lock verified

                                  avrdude done. Thank you.


                                  Then I loaded it with Blink demo...
                                  At this point all's OKay. Both Po-Mini are blinking
                                  Blink
                                  Then I've loaded the 2nd with that:

                                  // Enable and select radio type attached
                                  #define MY_RADIO_RF24
                                  #include <MySensors.h>
                                  uint32_t SLEEP_TIME = 4000;  // sleep time (in seconds * 1000 )
                                  
                                  void setup() 
                                  {
                                  pinMode(LED_BUILTIN, OUTPUT);
                                  }
                                  
                                  void presentation()
                                  {  
                                    sendSketchInfo("Test Prgm", "1.0"); // Send the sketch version information to the gateway and Controller
                                  }
                                  void loop()
                                  {
                                    digitalWrite(LED_BUILTIN, HIGH);
                                  delay(1000);
                                    digitalWrite(LED_BUILTIN, LOW);
                                  delay(1000);  
                                    
                                  sleep(SLEEP_TIME);
                                  }
                                  

                                  and...
                                  the result is...
                                  No blinking
                                  NO BLINK
                                  (draining more or less 2mA; Varying quickly from 1600uA to 2000uA; I should put a scope probe on that....)

                                  YveauxY Offline
                                  YveauxY Offline
                                  Yveaux
                                  Mod
                                  wrote on last edited by
                                  #316

                                  @Gilles-BILLARD from the photos it seems you didn't connect a radio. If that is the case, the loop will not be entered and your arduino won't sleep!

                                  http://yveaux.blogspot.nl

                                  G 1 Reply Last reply
                                  2
                                  • YveauxY Yveaux

                                    @Gilles-BILLARD from the photos it seems you didn't connect a radio. If that is the case, the loop will not be entered and your arduino won't sleep!

                                    G Offline
                                    G Offline
                                    Gilles BILLARD
                                    wrote on last edited by
                                    #317

                                    @Yveaux
                                    YESSSSSS !<
                                    That was the last problèm to solve.
                                    Back with my own MySensors routine all is perfect ! (8uA in sleep mode)
                                    I am very happy now and I thank all those who assisted me.
                                    You've made my day !
                                    Gilles

                                    skywatchS 1 Reply Last reply
                                    1
                                    • G Gilles BILLARD

                                      @Yveaux
                                      YESSSSSS !<
                                      That was the last problèm to solve.
                                      Back with my own MySensors routine all is perfect ! (8uA in sleep mode)
                                      I am very happy now and I thank all those who assisted me.
                                      You've made my day !
                                      Gilles

                                      skywatchS Offline
                                      skywatchS Offline
                                      skywatch
                                      wrote on last edited by
                                      #318

                                      @Gilles-BILLARD @Yveaux beat me to it! - But I bet you are a very happy person after that - it is easy when you know how! :)

                                      1 Reply Last reply
                                      1
                                      • G Gilles BILLARD

                                        @skywatch NO WAY ! So bad !
                                        I burned the MiniCore bootloader quite eazily using a second Pro-Mini loaded with Arduino BootLoader ( juste a file name error; looking for optiboot_flash_atmega328p_UART1_115200_16000000L_B5.hex but only optiboot_flash_atmega328p_UART0_115200_16000000L_B5.hex on the folder, so I just changed 0-->1 in the file name) and the résult was:
                                        *
                                        avrdude: Version 6.3-20201216
                                        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
                                        Copyright (c) 2007-2014 Joerg Wunsch

                                             System wide configuration file is "C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/avrdude.conf"
                                        
                                             Using Port                    : COM7
                                             Using Programmer              : stk500v1
                                             Overriding Baud Rate          : 19200
                                             AVR Part                      : ATmega328P
                                             Chip Erase delay              : 9000 us
                                             PAGEL                         : PD7
                                             BS2                           : PC2
                                             RESET disposition             : dedicated
                                             RETRY pulse                   : SCK
                                             serial program mode           : yes
                                             parallel program mode         : yes
                                             Timeout                       : 200
                                             StabDelay                     : 100
                                             CmdexeDelay                   : 25
                                             SyncLoops                     : 32
                                             ByteDelay                     : 0
                                             PollIndex                     : 3
                                             PollValue                     : 0x53
                                             Memory Detail                 :
                                        
                                                                      Block Poll               Page                       Polled
                                               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
                                               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
                                               eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                               flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                               lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                               hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                               efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                               lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                        
                                             Programmer Type : STK500
                                             Description     : Atmel STK500 Version 1.x firmware
                                             Hardware Version: 2
                                             Firmware Version: 1.18
                                             Topcard         : Unknown
                                             Vtarget         : 0.0 V
                                             Varef           : 0.0 V
                                             Oscillator      : Off
                                             SCK period      : 0.1 us
                                        

                                        avrdude: AVR device initialized and ready to accept instructions

                                        Reading | ################################################## | 100% 0.04s

                                        avrdude: Device signature = 0x1e950f (probably m328p)
                                        avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
                                        To disable this feature, specify the -D option.
                                        avrdude: erasing chip
                                        avrdude: reading input file "C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex"
                                        avrdude: writing flash (0 bytes):

                                        Writing | ################################################## | 100% 0.00s

                                        avrdude: 0 bytes of flash written
                                        avrdude: verifying flash memory against C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex:
                                        avrdude: load data flash data from input file C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex:
                                        avrdude: input file C:\Users\billa\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.0/bootloaders/empty/empty.hex contains 0 bytes
                                        avrdude: reading on-chip flash data:

                                        Reading | ################################################## | 100% -0.00s

                                        avrdude: verifying ...
                                        avrdude: 0 bytes of flash verified
                                        avrdude: reading input file "0x0f"
                                        avrdude: writing lock (1 bytes):

                                        Writing | ################################################## | 100% 0.04s

                                        avrdude: 1 bytes of lock written
                                        avrdude: verifying lock memory against 0x0f:
                                        avrdude: load data lock data from input file 0x0f:
                                        avrdude: input file 0x0f contains 1 bytes
                                        avrdude: reading on-chip lock data:

                                        Reading | ################################################## | 100% 0.01s

                                        avrdude: verifying ...
                                        avrdude: 1 bytes of lock verified

                                        avrdude done. Thank you.


                                        Then I loaded it with Blink demo...
                                        At this point all's OKay. Both Po-Mini are blinking
                                        Blink
                                        Then I've loaded the 2nd with that:

                                        // Enable and select radio type attached
                                        #define MY_RADIO_RF24
                                        #include <MySensors.h>
                                        uint32_t SLEEP_TIME = 4000;  // sleep time (in seconds * 1000 )
                                        
                                        void setup() 
                                        {
                                        pinMode(LED_BUILTIN, OUTPUT);
                                        }
                                        
                                        void presentation()
                                        {  
                                          sendSketchInfo("Test Prgm", "1.0"); // Send the sketch version information to the gateway and Controller
                                        }
                                        void loop()
                                        {
                                          digitalWrite(LED_BUILTIN, HIGH);
                                        delay(1000);
                                          digitalWrite(LED_BUILTIN, LOW);
                                        delay(1000);  
                                          
                                        sleep(SLEEP_TIME);
                                        }
                                        

                                        and...
                                        the result is...
                                        No blinking
                                        NO BLINK
                                        (draining more or less 2mA; Varying quickly from 1600uA to 2000uA; I should put a scope probe on that....)

                                        T Offline
                                        T Offline
                                        tssk
                                        wrote on last edited by
                                        #319

                                        @Gilles-BILLARD Damn! Why did I order UNO if I could use another Pro Mini for programming... :)

                                        G 1 Reply Last reply
                                        0
                                        • T tssk

                                          @Gilles-BILLARD Damn! Why did I order UNO if I could use another Pro Mini for programming... :)

                                          G Offline
                                          G Offline
                                          Gilles BILLARD
                                          wrote on last edited by
                                          #320

                                          @tssk My Pro-Mini's are 3.3V, so this way I avoid the resistors dividers wiring to change 5V (Uno) to 3.3 (Pro-Mini);
                                          May be you love creating problems where there are none ;-)

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


                                          3

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 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
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular