0

Solar Charging (bq24074) and Fuel Gauge (LC709203F)
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Solar Charging (bq24074) and Fuel Gauge (LC709203F)

by dkadish on Tue Sep 14, 2021 8:17 am

Hi,

I'm building a second version of an acoustic biodiversity monitor (https://github.com/dkadish/BioAcousticIndexTool) and I would like to improve the power/battery/solar charging system. The original uses the USB / DC / Solar Lithium Ion/Polymer charger - v2 (https://www.adafruit.com/product/390) to solar charge a LiPo battery and a PowerBoost to up the voltage to 5V that powers a Teensy and a bunch of sensors like this:

BAIT_bb.png
BAIT_bb.png (169.47 KiB) Viewed 80 times


For the second version, I would like to add more advance battery monitoring so I was thinking of using something like the Adafruit Universal USB / DC / Solar Lithium Ion/Polymer charger - bq24074 (https://www.adafruit.com/product/4755) and the Adafruit LC709203F LiPoly / LiIon Fuel Gauge and Battery Monitor - STEMMA JST PH & QT / Qwiic (https://www.adafruit.com/product/4712) as set up in the diagram below:

Solar Battery Gauge_bb.png
Solar Battery Gauge_bb.png (183.95 KiB) Viewed 80 times


Is that setup going to work? My gut feeling is that connecting the battery and load terminals of those two boards is going to lead to some strange behaviour as the the bq24074 is trying to perform Power Path Management and potentially supplying the load directly from the solar charger, while the LC709203F is trying to sense current coming from the battery to the load and measure the battery's voltage and temperature.

Am I right? Is that setup bound to fail? And if so, is there a correct way to fuel gauge while solar charging?

Thanks!

dkadish
 
Posts: 10
Joined: Mon Nov 17, 2014 12:26 am

Re: Solar Charging (bq24074) and Fuel Gauge (LC709203F)

by adafruit_support_mike on Tue Sep 14, 2021 8:53 pm

Yeah, I'd remove the connection between the Solar Charger's LOAD output and the PowerBoost.

The LOAD connection is useful because it will send power to the load even when the LiPo is discharged, but that feature doesn't mix well with as PowerBoost. It's best to just ignore the LOAD output in those conditions and use the Solar Charger just as a charger, and not as a load balancer.

adafruit_support_mike
 
Posts: 63729
Joined: Thu Feb 11, 2010 2:51 pm

Re: Solar Charging (bq24074) and Fuel Gauge (LC709203F)

by dkadish on Thu Sep 16, 2021 8:31 am

adafruit_support_mike wrote:Yeah, I'd remove the connection between the Solar Charger's LOAD output and the PowerBoost.


Do you mean on both versions (the original in the top image and the second version that I'm working on now in the bottom)? That would perhaps explain some of the strange power issues I was struggling with on the original design. Could you explain a little (or through a link) why the LOAD connection doesn't play nicely with the PowerBoost?

adafruit_support_mike wrote:The LOAD connection is useful because it will send power to the load even when the LiPo is discharged, but that feature doesn't mix well with as PowerBoost. It's best to just ignore the LOAD output in those conditions and use the Solar Charger just as a charger, and not as a load balancer.


Yeah, I'd like to keep using the Power Path Management feature from the solar charger, if possible, both to save battery charge-discharge cycles and to allow short boot-ups when there's a burst of sunlight but a dead battery. I think I don't actually need to boost to 5V. The Teensy accepts anything between 3.6 and 5.5V on the Vin pin (which is how I'll be powering it). So, if I get rid of the PowerBoost, I need to make sure I'm getting > 3.6V from the charger's LOAD pins (which is not guaranteed if it is drawing only from a low battery). Any ideas how to go about that?

Or are you saying I should just give up on PPM and pull the load from the battery though the Fuel Gauge and a PowerBoost...

dkadish
 
Posts: 10
Joined: Mon Nov 17, 2014 12:26 am

Re: Solar Charging (bq24074) and Fuel Gauge (LC709203F)

by adafruit_support_mike on Fri Sep 17, 2021 11:40 pm

dkadish wrote:Could you explain a little (or through a link) why the LOAD connection doesn't play nicely with the PowerBoost?

It involves the way boost converters work:

All current has an associated magnetic field that's roughly equivalent to the kinetic energy of the moving charge. If you try to increase the current, the magnetic field steals energy to reach the appropriate strength. If you try to decrease the current, the magnetic field has to dump its excess energy back into the current.

That creates a relationship of current, voltage, and time that makes it possible to convert voltage to current (or vice versa) by storing the energy temporarily in a magnetic field.

Switching converters take advantage of that using PWM to start and stop the current. The magnetic field steals energy when current from the battery flows through the inductor, and dumps energy when current from the battery is shut off. The average current through the inductor has to be the same in both cases though, because any difference would make electrons appear from nowhere or disappear to nowhere. The total power going in has to be at least as high as the amount of power coming out, for similar reasons.

As a result, the ratio of input and output voltages has to equal the ratio of current being turned on or turned off. To go from 3.7V to 5V with a 95% efficient boost converter, the charging-from-3.7V phase has to be about 50% longer than the discharging-at-5V phase.. to put typical numbers on them, call it 15us @ 3.7V and 10us at 5V for a total cycle period of 25us (40kHz, which is pretty normal).

If we want the average output power to be 5W (1A @ 5V), our 95% efficient boost converter needs an average of 5.5W of input power (1.5A @ 3.7V).

Starting at the input side, 1.5A equals 37.5uC of charge in 25us, but the input only gets actual current for 15us of that 25us period. 37.5uC in 15us works out as 2.5A.

On the output side, 1A equals 25uC of charge in 25us, but the output only gets actual charge for 10us of that 25us period. 25uC in 10us works out as 2.5A, which meets our requirement for the actual current through the inductor to be more or less constant.

It also means that our boost converter's average input of 1.5A is actually an intermittent load of 2.5A.. and somewhat more when we include the fact that 2.5A itself is an average for current that starts at a low rate and increases as the magnetic field charges up. Instantaneous current levels or 4A wouldn't be unusual.

LiPo chargers aren't designed to handle that kind of load. They want nice smooth input and output currents. Load sharing devices like the ones we use in the Solar Chargers expect to split the input current between the load and the LiPo, with any current the load doesn't use charging the LiPo. Connecting a boost converter to the LOAD output is like trying to play a violin with a jackhammer.

A LiPo can handle the intermittent load of a boost converter, and acts like a shock absorber that protects the charger from the sudden changes in current.

adafruit_support_mike
 
Posts: 63729
Joined: Thu Feb 11, 2010 2:51 pm

Re: Solar Charging (bq24074) and Fuel Gauge (LC709203F)

by dkadish on Mon Sep 20, 2021 5:40 am

Thanks! That was a very helpful explanation. And the violin-jackhammer metaphor is quite evocative!

That got me thinking that maybe I could use a Power MUX (like https://www.ti.com/product/TPS2113A) to swap between the LOAD output of the bq24074 and a boosted output from the battery when the battery level drops below the 3.6V that the Teensy needs.

Solar Battery Gauge_Power MUX.png
Power MUX to switch power sources
Solar Battery Gauge_Power MUX.png (221.38 KiB) Viewed 39 times


As far as I understand, in this setup, the MUX would select power from the bq24074's LOAD when it is providing more than about 3.69V (if I picked those resistors going to VSNS correctly). Once the voltage drops below that point, it would switch over to power coming from the battery through the LC709203F and the PowerBoost.

This way, when the battery is sufficiently charged (or when there is enough solar power charging the battery), the Teensy is being powered directly by the charger and taking advantage of DPPM without the inefficiency of running through a booster. However, when the battery voltage drops, the Teensy still receives a boosted 5V from the battery.

Am I getting closer to a solution here, or just introducing more problems/complexity than necessary?

dkadish
 
Posts: 10
Joined: Mon Nov 17, 2014 12:26 am

Re: Solar Charging (bq24074) and Fuel Gauge (LC709203F)

by adafruit_support_mike on Mon Sep 20, 2021 9:43 pm

Hmm.. the MUX is an interesting device, and the system you described would work in principle. I have some doubts about its performance though.

My concern is that the current load on the LiPo will be heaviest when it's mostly discharged. A PowerBoost normally draws about 150mA @ 3.7V of input power for every 100mA @ 5V of output. Since you're starting the PowerBoost when the voltage falls below 3.7V, the numbers would be a bit less favorable. The amount of time the LiPo lasts while the PowerBoost is active will be less than the time while the LiPo powers the Teensy directly.

Your idea of using 12V sources was a good one. You'd never have to worry about undervoltage, the current load on the battery would be lighter, and the solar panel would need to deliver less current to keep the system running. It's generally more effective to store and transfer energy as voltage than as current because the math of stepping voltage down works in your favor.

The TPS2112 MUX can't handle 12V, but I'd imagine TI has other variants that work at higher voltage. Those would be good for switching batteries in and out of the system.

adafruit_support_mike
 
Posts: 63729
Joined: Thu Feb 11, 2010 2:51 pm

Please be positive and constructive with your questions and comments.