I am currently trialing an external LiPO/Solar charging board (Adafruit bq24074) to manage my 6V solar panel and LiPO battery, feeding my Boron LTE device through the LiPO connector. My issue seems to be that after I shut off Boron charging (see below) the Adafruit board appears to be functioning correctly, but actually doesn’t charge the LiPO. If I disconnect the load (the Boron device) charging seems to be working. It seems as if something is somehow interfering with the charger circuit. Is there something else I need to do to somehow isolate the charger while the Boron is running?
Here is the AdaFruit board I am using:
Here are the PMIC commands I issue in Setup():
PMIC pmic(true);
pmic.begin();
pmic.disableCharging();
Thanks, Drew
Those PMIC calls will probably not be sufficient as Device OS will almost certainly turn charging back on again. Instead use DISABLE_CHARGING.
Just out of curiosity, why are you using the external board instead of connecting the LiPo directly to the Boron and connecting the solar panel to VUSB? This will work with the Boron with 6 or 12V panels as long as you aren't using FeatherWings that depend on VUSB being 5V. (This does not work with the Argon or Photon 2 that do not contain a bq24195 PMIC.)
Thanks Rick! I had started off using the Particle PMIC but abandoned this approach as I couldn't find any documentation that simply described which commands to use (there were long, long threads, going back 5 years ago, but I didn't want to slog through all of the charts and graphs and they were several generations behind the current Boron and OS in any case.) Here's what I had tried but couldn't get to work..I am using the Boron 404X and 6.2.1 ::
PMIC pmic;
pmic.begin();
pmic.setInputVoltageLimit(5080); // for 6V Solar Panels
pmic.setChargeVoltage(4208); // Set Li-Po charge termination voltage to 4.21V,
pmic.enableDPDM();
pmic.enableBuck(); // enableBuck required when using EN Pin Shutdown.
pmic.enableCharging();
You don't really need to modify the voltages; the defaults should work.
The one thing you may need to adjust is the input current limit. If you find that charging starts, then stops a second or two later, then repeats, you need to lower the maximum current. The reason is that if the panel is small, too much current is drawn during charging, which causes the voltage to drop, which causes charging to stop, so the voltage rises again, and the process repeats.
This video is for the Tracker One, but it also mostly applies to the Boron, which has the same PMIC. The main difference is that the absolute maximum voltage on the Boron VUSB is 17V and it's much higher on the Tracker One. Charging the TrackerONE with a solar panel
@rickas7rickas7rickas7rickas7 thanks much! OK, I am back using the Particle approach with this code:
‘‘‘‘PMIC pmic;
pmic.begin();
pmic.enableDPDM();
pmic.enableBuck(); // enableBuck required when using EN Pin Shutdown.
pmic.enableCharging();
pmic.setChargeCurrent(0,0,1,0,0,0); //set charging current to 1024mA (512 + 512 offset)
pmic.setInputCurrentLimit(1500); //set input current limit to 1.5A
‘‘‘‘
The short-circuit current is from the small panel is about 300mA, so well under these limits.
I do see a rapidly flickering Charge LED when I connect the solar panel, but when I query the charging state using int batteryState = System.batteryState(); I receive a “Not Charging” (batteryState = 1) result, and my LiPO continues to discharge. Note that when I plug in a 5V external power source to USB the charging LED is steady – but battery continues to deplete. Net: no charging.
Not sure where to go next. Thanks!