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.
  • 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
                                    • M Offline
                                      M Offline
                                      MikeF
                                      wrote on last edited by
                                      #34

                                      @Ceech Thanks, I'll give this a try; I need to make some hardware mods first - I'm thinking of including a MOSFET in series with IN, as per datasheet.

                                      C 1 Reply Last reply
                                      0
                                      • M MikeF

                                        @Ceech Thanks, I'll give this a try; I need to make some hardware mods first - I'm thinking of including a MOSFET in series with IN, as per datasheet.

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

                                        @MikeF Sure, if you think it's necessary. OVI pin on the PCB is already connected to input power source. How do you plan to connect the gate of the mosfet to the OVP pin?

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

                                          @Ceech I guess I'm concerned that the solar cell voltage Vin might exceed 7V - which the datasheet says is the absolute max. (and the max. overvoltage threshold Vovth is 6.2V). I've been getting >6.5V, with the solar cell not pointing directly at the sun (i.e., not due south / azimuth). I'll take some measurements with the solar cell disconnected. I can see that it would be very difficult to interrupt the IN connection (pin 12); is there another way of limiting the solar cell voltage?

                                          C 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