I am trying to charge the Li-Ion batteries that is running the Boron using a 6V solar panel wired to the VUSB pin. I know this is a well discussed topic and I have been going through the forums to find a solution to make it work, without success.
I can see that the Batteries refuse to charge (there is no orange LED light, and the LED is not blinking as well). The System.batteryState() gives 1 which is BATTERY_STATE_NOT_CHARGING .
The terminal voltage at the solar panel reads 4.5V and I can see the panel produces 40mA when I connect it across the multimeter. Here is the SystemPowerConfiguration settings:
The Li-Ion battery is at 3.6V so it should have been charging. I can see the orange light coming i.e., successful charging, when connected to USB port or when I connect a external DC power supply to VUSB which at 4.5V drew 90mAh (although the System.batteryState() gives 0 which is BATTERY_STATE_UNKNOWN ).
I also tried using a 9V panel, with various setings but could never get the boron to charge via VUSB-Solar Panel. The device OS is 4.0.0. I tried all of the above with a different Boron as well and obtained similar results.
I feel this has to do with SystemPowerConfiguration settings. Any help would appreciated.
Just to update.
Adding a capacitor (470uF) to the panel terminals did finally help a 6V, (nominal current o/p) 90mA solar panel to get the Boron LED to begin blinking (which isn’t helping but still better). Playing around with the settings in SystemPowerConfiguration didn’t quite make any difference when it came to getting the panel to charge the battery steadily.
I was able to resolve the issue instead by using an external 1S Li-Ion Solar charger and wiring it directly to the battery. I can see that battery does get charged while it is in ULTRA_LOW_POWER sleep mode, even when using a small 6V solar panel that supply around 20-30mA, which was what I needed.
I’d recommend the following:
First at least once, reset your configuration to default:
System.setPowerConfiguration(SystemPowerConfiguration()); // To restore the default configuration
From that point, use the following:
.powerSourceMinVoltage(5080) //3880 for USB, 5080 for Solar
int res = System.setPowerConfiguration(conf);
There are some good posts out there on the power configuration and various settings, why the settings are configured this way. @chipmc and several others helped explain/determine these. Ultimately, this is what I use anytime I have a 6V solar panel. This is on VIN. I also have a 470 uF capacitor to try and stabilize the voltage a bit.