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


  • Hardware Contributor

    Does anybody have any comments about the new version of the universal sensor board, the ceech board?
    IoT_02_00.png
    Here are some of the new features:
    LTC4067 Li-Po, Li-ion battery charger with voltage and current measurements,
    XC6210, 700mA voltage regulator with 35uA supply current,
    BMP180 pressure and altitude sensor,
    HTU21 temperature and humidity sensor,
    24LC512 EEPROM.
    It is a work in progress and is not quite finished yet.


  • Contest Winner

    I am actually considering something similar. But I am contemplating skipping the charger part, and leave a connector for the charger to be connected externally when needed (I already have one of these). And use sockets/headers to be able to re-use the Arduino modules, RF and sensors.


  • Hero Member

    @ceech Looks promising. A little worried about the price when using a HTU21.... A suggestion from experience with the current ceech board: add a little more information on the silk screen. Especially for the breakout headers..


  • Hardware Contributor

    @Anticimex Do you have any experience with that charging board that you've mentioned? It uses MCP73861, right? I'm asking if you tried to charge a battery with a solar cell using this module? Because that is my main goal in developing this board. To be able to properly charge a lithium cell using solar power. MCP73861 is a nice chip, I chose the LTC4067 because I would like to monitor the current that flows to the battery.


  • Hardware Contributor

    @AWI Which humidity sensor do you think would be more appropriate?
    I'll post a 3D picture with more detailed description of the current version of the board under its thread.


  • Contest Winner

    @ceech I am afraid not. I have just bought myself a pair of cells and that charger as a kickoff to investigate what power source I should use. I am also considering 9V cells and button cells. Solar power is not really available to me where I live at the moment so I have not consider that as a source yet I am afraid. Currently, I believe I am going for LiPo on the more "active" nodes (temp/humidity/motion) and a 9V cell for the more "passive" (soil/door/window). And I think I want to keep the charger off-board to keep the boards simple and see if I can get my theoretical sample based voltage measurement circuit to work independent of the source used.


  • Hero Member

    @ceech I realy like the HTU21 only worried about the price of the board...do you have an estimated price for the completed board?


  • Hardware Contributor

    @Anticimex You went all this way just to eliminate leaking? That is impressive. Are you going to implement this on your board or is this only a test? Did you also test the current leakage in voltage divider circuit connected all the time? What is the difference?


  • Hardware Contributor

    @ceech I believe that the final price will be just below 20EUR.


  • Contest Winner

    @ceech said:

    @Anticimex You went all this way just to eliminate leaking? That is impressive. Are you going to implement this on your board or is this only a test? Did you also test the current leakage in voltage divider circuit connected all the time? What is the difference?

    Well, it's not that complicated 🙂
    No, I have not made any comparisons whatsoever. But I am pretty confident it will be less leaky than a voltage divider. That I simply won't use because the higher resistance you use, the more noise you get, which will in the end translate into a meaningless measurement. But I have not made any real-world measurements for comparison, as this is so use-case dependent. Also for a voltage divider, the current draw is small, and depending on the nodes power consumption, that current may, or may not, be negligible.


  • Hero Member

    Why not just use ordinary Alkaline AA batteries? Cheap, available everywhere in any store, excellent self-discharge etc. Couple that with a suitable voltage regulator (boost/step-up) that can start as low as 0.6-0.7V and you should be good to go even with a single AA/AAA.


  • Contest Winner

    @bjornhallberg the impression I get on the forum from people doing that is that they get roughly one month of lifetime of a charge. To me that is simply not good enough. Not by a long shot.


  • Hero Member

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


  • Contest Winner

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


  • Admin

    @ceech

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


  • Contest Winner

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


  • Hero Member

    @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/


  • Hero Member

    @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


  • Contest Winner

    @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 😉


  • Hero Member

    @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?


  • Contest Winner

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


  • Hardware Contributor

    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.


  • Hardware Contributor

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


  • Hero Member

    My vote is for flash memory, but no deal breaker


  • Hardware Contributor

    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



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



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


  • Hero Member

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

    Cheers
    Al



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


  • Hardware Contributor

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


  • Hardware Contributor

    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.



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


  • Hardware Contributor

    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
    */```


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


  • Hardware Contributor

    @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?



  • @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?


  • Hardware Contributor

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


Log in to reply
 

Suggested Topics

  • 87
  • 3
  • 2
  • 8
  • 5
  • 5

20
Online

11.4k
Users

11.1k
Topics

112.7k
Posts