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. Sensor board w/ liPo charger and fuel gauge +BMP180 +HTU21

Sensor board w/ liPo charger and fuel gauge +BMP180 +HTU21

Scheduled Pinned Locked Moved Hardware
37 Posts 10 Posters 23.5k Views 5 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.
  • bjornhallbergB bjornhallberg

    @Anticimex I've run my sensors, including SR-501, DS18B20 and DHT22, on AA batteries for 4-6 months with little or no issues. And that is without a regulator. What happens eventually, with the DS18B20 for instance, is that the temp readings keep declining with the declining voltage. I'm actually very surprised that the SR-501 is still alive. The SR-501 sensor itself leaks like 50uA and I have a voltage divider to read the voltage (but I can't take the reading since the MQTT gateway doesn't seem to work). I read somewhere that that the SR-501 would produce massive false readings with the voltage drop but so far so good.

    With a proper regulator you should be good for 1-2 years.

    AnticimexA Offline
    AnticimexA Offline
    Anticimex
    Contest Winner
    wrote on last edited by
    #14

    @bjornhallberg Ok, well that sounds much more reasonable to me then :)

    Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

    1 Reply Last reply
    0
    • tbowmoT Offline
      tbowmoT Offline
      tbowmo
      Admin
      wrote on last edited by
      #15

      @ceech

      Have you seen si7021? It's pin, and to a large extent software, compatible with htu21, but slightly cheaper at mouser

      1 Reply Last reply
      0
      • bjornhallbergB bjornhallberg

        @Anticimex I've run my sensors, including SR-501, DS18B20 and DHT22, on AA batteries for 4-6 months with little or no issues. And that is without a regulator. What happens eventually, with the DS18B20 for instance, is that the temp readings keep declining with the declining voltage. I'm actually very surprised that the SR-501 is still alive. The SR-501 sensor itself leaks like 50uA and I have a voltage divider to read the voltage (but I can't take the reading since the MQTT gateway doesn't seem to work). I read somewhere that that the SR-501 would produce massive false readings with the voltage drop but so far so good.

        With a proper regulator you should be good for 1-2 years.

        AnticimexA Offline
        AnticimexA Offline
        Anticimex
        Contest Winner
        wrote on last edited by
        #16

        @bjornhallberg Have you tried to compare regulated and non-regulated supply? It would be reasonable to assume you can get more out of the batteries if you can suck them down to 0.5-0.6V. But the step-up regulators are quite "leaky" so will that really translate to a longer runtime in the end? The regulator will be on even if the node is sleeping (and efficiency drops with current drop). So perhaps (depending on usage of course) a regulated supply will actually drain the batteries faster and the end result is that it causes shorter runtime even if more juice is pulled from the cells.
        I have not yet set up a proper test environment for this myself.
        I was considering having a regulator you could switch off. So that the Arduino itself runs unregulated but the sensors uses regulated power. Then you could turn off the regulator when sleeping. Like one of these.
        A cool variant would be to have a regulator that turns itself on when battery voltage drops below a known safe level. The trick is to implement a power rail that can switch from unregulated to regulated supply. The switching can just be done with a comparator. But feedback between regulator output and input is a bad idea I suppose...

        Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

        bjornhallbergB AWIA 2 Replies Last reply
        0
        • AnticimexA Anticimex

          @bjornhallberg Have you tried to compare regulated and non-regulated supply? It would be reasonable to assume you can get more out of the batteries if you can suck them down to 0.5-0.6V. But the step-up regulators are quite "leaky" so will that really translate to a longer runtime in the end? The regulator will be on even if the node is sleeping (and efficiency drops with current drop). So perhaps (depending on usage of course) a regulated supply will actually drain the batteries faster and the end result is that it causes shorter runtime even if more juice is pulled from the cells.
          I have not yet set up a proper test environment for this myself.
          I was considering having a regulator you could switch off. So that the Arduino itself runs unregulated but the sensors uses regulated power. Then you could turn off the regulator when sleeping. Like one of these.
          A cool variant would be to have a regulator that turns itself on when battery voltage drops below a known safe level. The trick is to implement a power rail that can switch from unregulated to regulated supply. The switching can just be done with a comparator. But feedback between regulator output and input is a bad idea I suppose...

          bjornhallbergB Offline
          bjornhallbergB Offline
          bjornhallberg
          Hero Member
          wrote on last edited by
          #17

          @Anticimex Sorry, I don't have any long time data to offer. So I also don't know if bothering with the SHDN / EN pins (where applicable) is actually worth it. Quiescent current is usually pretty low on some of the better regulators (like TPS61221, LTC3525 etc) so I wonder if it is worth tampering with?

          I still think you will gain a few months of run-time using a regulator. Still, no big savings there. The main reason (for me at least) to explore regulators is to enable sensors that would otherwise malfunction as the voltage drops. I.e. most of the common sensor we use (DHT22, DS18B20, Motion). Particularly the DS18B20 has been spotty for me.

          Another point is to be able to build really compact sensors that use only one AA/AAA. Not even the nrf24 / atmega would work at 1.5V (and dropping) after all.

          Also, according to my latest calculations, a separate pcb with the TPS61221 will cost about $1.75 in materials. So, it wont break the bank.

          I wish we could fast-track the entire project a bit and come up with a standard form factor like LowPowerLabs or Harizanov where we could make shields that just plug. Btw, did you see this on the topic of LiPo batteries:
          http://lowpowerlab.com/blog/2015/02/03/chinese-lithium-cells-freezing/

          1 Reply Last reply
          0
          • AnticimexA Anticimex

            @bjornhallberg Have you tried to compare regulated and non-regulated supply? It would be reasonable to assume you can get more out of the batteries if you can suck them down to 0.5-0.6V. But the step-up regulators are quite "leaky" so will that really translate to a longer runtime in the end? The regulator will be on even if the node is sleeping (and efficiency drops with current drop). So perhaps (depending on usage of course) a regulated supply will actually drain the batteries faster and the end result is that it causes shorter runtime even if more juice is pulled from the cells.
            I have not yet set up a proper test environment for this myself.
            I was considering having a regulator you could switch off. So that the Arduino itself runs unregulated but the sensors uses regulated power. Then you could turn off the regulator when sleeping. Like one of these.
            A cool variant would be to have a regulator that turns itself on when battery voltage drops below a known safe level. The trick is to implement a power rail that can switch from unregulated to regulated supply. The switching can just be done with a comparator. But feedback between regulator output and input is a bad idea I suppose...

            AWIA Offline
            AWIA Offline
            AWI
            Hero Member
            wrote on last edited by AWI
            #18

            @Anticimex Just thinking out loud. Looking at the schematics of the predecessor of this board. There is a mosfet circuit connected to D4. Couldn't you use this to power up an external. regulator or step-up? upload-fd7f3c2c-9061-4bb4-b31f-3e492c54bc29

            AnticimexA 1 Reply Last reply
            0
            • AWIA AWI

              @Anticimex Just thinking out loud. Looking at the schematics of the predecessor of this board. There is a mosfet circuit connected to D4. Couldn't you use this to power up an external. regulator or step-up? upload-fd7f3c2c-9061-4bb4-b31f-3e492c54bc29

              AnticimexA Offline
              AnticimexA Offline
              Anticimex
              Contest Winner
              wrote on last edited by
              #19

              @AWI yea, but the problem is not activating the regulator. That is a simple IO operation. The problem I think is the output of the regulator, if you want it to power the Arduino itself. And you probably do, since the Arduino packs up probably before your sensors. I need to study some more before I got a plan for that, but I also have a LOT of other things to do so don't expect me to provide the One Solution to it in the coming weeks ;)

              Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

              AWIA 1 Reply Last reply
              0
              • AnticimexA Anticimex

                @AWI yea, but the problem is not activating the regulator. That is a simple IO operation. The problem I think is the output of the regulator, if you want it to power the Arduino itself. And you probably do, since the Arduino packs up probably before your sensors. I need to study some more before I got a plan for that, but I also have a LOT of other things to do so don't expect me to provide the One Solution to it in the coming weeks ;)

                AWIA Offline
                AWIA Offline
                AWI
                Hero Member
                wrote on last edited by AWI
                #20

                @Anticimex Switching the Arduino is probably not a good idea :) but powering up the voltage sensitive sensors with a mosfet switched step-up converter is an option?

                AnticimexA 1 Reply Last reply
                0
                • AWIA AWI

                  @Anticimex Switching the Arduino is probably not a good idea :) but powering up the voltage sensitive sensors with a mosfet switched step-up converter is an option?

                  AnticimexA Offline
                  AnticimexA Offline
                  Anticimex
                  Contest Winner
                  wrote on last edited by
                  #21

                  @AWI yes, but why bother with a mosfet for enabling the regulator (if it already have an enable signal)?

                  Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

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

                    The main reason why I was dragged to the LTC4067 is the fact that it has so called Power path technology. It only uses the battery if there is no other available source of power. The benefit is much longer battery lifetime. It also has a proper 2A Lithium charger. Last but not least is the current monitoring, which can be translated into battery state of charge, which is another thing that interests me.
                    I chose the voltage regulator for the fact that is fairly efficient and powerful even for ESP8266 modules and as simple as possible to implement. It only uses 35uA, which is as low as I ever saw. And the LTC4067 has Suspend mode that only uses a couple of uA as well.
                    @tbowmo Prices for the HTU21 are lower, for me at least. And since the pinout is the same it is all for the better.
                    I'll put some thought into the separate power options. The first thing that can be fairly simply done is to power the Atmega328 from the battery, and the sensors from the regulator.

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      ceech
                      Hardware Contributor
                      wrote on last edited by
                      #23

                      Which is more useful - an EEPROM or Flash memory chip?

                      1 Reply Last reply
                      0
                      • AWIA Offline
                        AWIA Offline
                        AWI
                        Hero Member
                        wrote on last edited by
                        #24

                        My vote is for flash memory, but no deal breaker

                        1 Reply Last reply
                        0
                        • C Offline
                          C Offline
                          ceech
                          Hardware Contributor
                          wrote on last edited by ceech
                          #25

                          Finally managed to put all things together and made the first two test boards. They look like this:
                          03.jpg
                          Main new features are LTC4067 lithium battery charger and XC6210, a low consumption voltage regulator.

                          The board comes with a Torex XC6210 3.3V voltage regulator . It has low power consumption of 35μA, while delivering at least 700mA. Voltage drop is 50mV @ 100mA.

                          LTC4067 battery charger with Automatic Battery Charging/Load Switchover

                          It provides power for the circuit and charges the backup single-cell lithium battery while greatly extends battery life. You can monitor the voltages and currents. It has suspend mode, which reduces current consumption to around 40μA. The power source is a small, 5V solar cell. Connections:

                          analog input A1 on ATmega 328 is FAULT signal from LTC4067
                          analog input A0 on ATmega328 is battery voltage
                          analog input A2 is solar cell voltage
                          analog input A6 is input current ( I=V/R x 1000 )
                          analog input A7 is battery charge current ( I=V/R x 1000 )
                          digital output A9 - drive it high to put LTC4067 in SUSPEND mode

                          The two trimmer potentiometers are used to determine the current for both the input side - to better match the internal resistance of the solar cell - and for the battery charge current. At shipping they are both set to about 2.5kOhm, which set both currents to about 75mA. Please refer to technical data sheet of LTC4067 for more information. It is available here:
                          Official web page for LTC4067

                          Or, ask me.

                          This is the back side of the board with place for BMP180, HTU21 and EEPROM chip:
                          03_02.jpg

                          SparkmanS 1 Reply Last reply
                          4
                          • L Offline
                            L Offline
                            lafleur
                            wrote on last edited by
                            #26

                            It need an RFM69 radio on the board....??

                            C 1 Reply Last reply
                            0
                            • H Offline
                              H Offline
                              hawk_2050
                              wrote on last edited by
                              #27

                              @ceech , I recently bought one of the predecessor boards to this new design. I was wondering if you had a better feel yet on likely end user pricing for this new one? Do you plan on populating all active parts, or providing them for users to place themselves? Really looking forward to this board becoming available.

                              1 Reply Last reply
                              0
                              • C ceech

                                Finally managed to put all things together and made the first two test boards. They look like this:
                                03.jpg
                                Main new features are LTC4067 lithium battery charger and XC6210, a low consumption voltage regulator.

                                The board comes with a Torex XC6210 3.3V voltage regulator . It has low power consumption of 35μA, while delivering at least 700mA. Voltage drop is 50mV @ 100mA.

                                LTC4067 battery charger with Automatic Battery Charging/Load Switchover

                                It provides power for the circuit and charges the backup single-cell lithium battery while greatly extends battery life. You can monitor the voltages and currents. It has suspend mode, which reduces current consumption to around 40μA. The power source is a small, 5V solar cell. Connections:

                                analog input A1 on ATmega 328 is FAULT signal from LTC4067
                                analog input A0 on ATmega328 is battery voltage
                                analog input A2 is solar cell voltage
                                analog input A6 is input current ( I=V/R x 1000 )
                                analog input A7 is battery charge current ( I=V/R x 1000 )
                                digital output A9 - drive it high to put LTC4067 in SUSPEND mode

                                The two trimmer potentiometers are used to determine the current for both the input side - to better match the internal resistance of the solar cell - and for the battery charge current. At shipping they are both set to about 2.5kOhm, which set both currents to about 75mA. Please refer to technical data sheet of LTC4067 for more information. It is available here:
                                Official web page for LTC4067

                                Or, ask me.

                                This is the back side of the board with place for BMP180, HTU21 and EEPROM chip:
                                03_02.jpg

                                SparkmanS Offline
                                SparkmanS Offline
                                Sparkman
                                Hero Member
                                wrote on last edited by
                                #28

                                @ceech Looks great! When do you expect to have them available for sale?

                                Cheers
                                Al

                                1 Reply Last reply
                                0
                                • sj44kS Offline
                                  sj44kS Offline
                                  sj44k
                                  wrote on last edited by
                                  #29

                                  @ceech Some impressive work you are pulling off here! I am also interested so keep us posted when you have it available !

                                  1 Reply Last reply
                                  0
                                  • L lafleur

                                    It need an RFM69 radio on the board....??

                                    C Offline
                                    C Offline
                                    ceech
                                    Hardware Contributor
                                    wrote on last edited by
                                    #30

                                    @lafleur The board is meant to be used with either NRF24l01+, or ESP8266 radio modules. @hawk_2050 The price will be around 14EUR for the version without sensors, and 19EUR for the fully populated one. @Sparkman and @sj44k some boards will be available as soon as next week. Those are the test ones and since everything seem to work excellent, I'll make them available for purchase.

                                    1 Reply Last reply
                                    2
                                    • C Offline
                                      C Offline
                                      ceech
                                      Hardware Contributor
                                      wrote on last edited by ceech
                                      #31

                                      For those interested, here is a link with more detailed description of this board:
                                      http://www.ebay.com/itm/331641400414?ssPageName=STRK:MESELX:IT&_trksid=p3984.m1586.l2649
                                      We will probably offer a bit less complex version here, on mysensors.org.
                                      Enjoy.

                                      1 Reply Last reply
                                      0
                                      • M Offline
                                        M Offline
                                        MikeF
                                        wrote on last edited by
                                        #32

                                        I've just built a version of this, using the solar cell from the Solar Motion Light identified in this project: Solar Powered Mini-Weather Station. I'm using Domoticz as the controller.

                                        I'm trying to understand what the solar and battery currents represent (I had to scale these by 1000, as Domoticz will only display currents in amps). Also, at what battery voltage level will the battery start to charge? and what level of solar voltage is required? I'm also concerned that the solar cell voltage can exceed 6V in bright sunlight - is there a need for overvoltage protection on the LTC4067?

                                        (I'll post details and pics in My Projects shortly.)

                                        C 1 Reply Last reply
                                        0
                                        • M MikeF

                                          I've just built a version of this, using the solar cell from the Solar Motion Light identified in this project: Solar Powered Mini-Weather Station. I'm using Domoticz as the controller.

                                          I'm trying to understand what the solar and battery currents represent (I had to scale these by 1000, as Domoticz will only display currents in amps). Also, at what battery voltage level will the battery start to charge? and what level of solar voltage is required? I'm also concerned that the solar cell voltage can exceed 6V in bright sunlight - is there a need for overvoltage protection on the LTC4067?

                                          (I'll post details and pics in My Projects shortly.)

                                          C Offline
                                          C Offline
                                          ceech
                                          Hardware Contributor
                                          wrote on last edited by ceech
                                          #33

                                          Here:

                                          float readVcc() 
                                          {
                                            signed long resultVcc;
                                            float resultVccFloat;
                                            // Read 1.1V reference against AVcc
                                            ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
                                            delay(10);                           // Wait for Vref to settle
                                            ADCSRA |= _BV(ADSC);                 // Convert
                                            while (bit_is_set(ADCSRA,ADSC));
                                            resultVcc = ADCL;
                                            resultVcc |= ADCH<<8;
                                            resultVcc = 1126400L / resultVcc;    // Back-calculate AVcc in mV
                                            resultVccFloat = (float) resultVcc / 1000.0; // Convert to Float
                                          
                                            return resultVccFloat;
                                          }
                                          
                                          int current = A6;
                                          int chrg = A1;
                                          int cell = A2;
                                          int lipo = A0;
                                          int batterycurrent = A7;
                                          
                                          void setup() 
                                          {
                                            Serial.begin(9600);
                                          }
                                          
                                          void loop() 
                                          {
                                            float napetost = readVcc();
                                          
                                            float tok = ((analogRead(current) * napetost / 1024 ) / 2500) * 1000000; // convert the ADC value to miliamps
                                            float tokbaterija = ((analogRead(batterycurrent) * napetost / 1024 ) / 2500) * 1000000; // convert the ADC value to miliamps
                                            float panel = ( analogRead(cell) * napetost / 1024 ) * 2; // measuring input voltage
                                            float baterija = ( analogRead(lipo) * napetost / 1024 ) * 2; // measuring battery voltage
                                            int polnjenje = analogRead(chrg);
                                            
                                            Serial.print("Vcc = ");
                                            Serial.print(napetost);
                                            Serial.println("V");
                                            delay(400);
                                            Serial.print("Input current = ");
                                            Serial.print(tok);
                                            Serial.println("mA");
                                            delay(400);
                                            Serial.print("Charge current = ");
                                            Serial.print(tokbaterija);
                                            Serial.println("mA");
                                            delay(400);
                                            Serial.print("Solar cell voltage = ");
                                            Serial.print(panel);
                                            Serial.println("V");
                                            delay(400);
                                            Serial.print("Battery voltage = ");
                                            Serial.print(baterija);
                                            Serial.println("V");
                                            delay(400);
                                            Serial.print("CHRG = ");
                                            Serial.println(polnjenje);
                                            Serial.println("----------------------------");
                                            delay(2000);
                                          }
                                          /*
                                          Improving accuracy:
                                          To do so, simply measure your Vcc with a voltmeter and with our readVcc() function. Then, replace the constant 1107035L with a new constant:
                                          scale_constant = internal1.1Ref * 1024 * 1000
                                          where
                                          internal1.1Ref = 1,1 * Vcc1 (per voltmeter) / Vcc2 (per readVcc() function)
                                          Example:
                                          For instance, I measure 3,43V from my FTDI, the calculated value of Vref is 1,081V.
                                          So (1,081 x 1000 x 1024) = 1107034,95 or 1107035L rounded up.
                                          Source: http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/
                                          and
                                          https://code.google.com/p/tinkerit/wiki/SecretVoltmeter
                                          */```
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          25

                                          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