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

    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
                                        • M MikeF

                                          @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 Offline
                                          C Offline
                                          ceech
                                          Hardware Contributor
                                          wrote on last edited by ceech
                                          #37

                                          @MikeF Well not limiting, but reducing. Connect one or two ordinary diodes in series with the input, and you will reduce the voltage for 0.7V for every diode.

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


                                          21

                                          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