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


                                        22

                                        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