Boron Power Manager, PMIC, Fuel Gauge and System Calls


I am working on a project that has a constraint of using a very small solar panel with the following specs (2V @160mA) for recharging the attached rechargeable Li-ion CR123A 2800mAh 3.7V battery. I understand that 2V is not high enough so I am using a simple DC-DC Step Up converter that takes the 2V from the solar panel and steps it up to 5V @480mA.

(The attached picture is the current circuit including the solar panel, step-up-converter, battery all attached to the Boron) I have the following questions after looking at the DeviceOS documentation for Power Manager, PMIC, Fuel Gauge and System Calls.

  1. When calling powerSource() from Systems Calls while the Boron is Powered by the attached battery, it returns POWER_SOURCE_USB_OTG = 4 shouldn’t it return POWER_SOURCE_BATTERY = 5?

  2. The setChargeCurrent() from PMIC states that the total charge current is 512mA + the combination of bits bool setChargeCurrent(bool bit7, bool bit6, bool bit5, bool bit4, bool bit3, bool bit2); where is the 512mA from? Does this mean I need a different step-up-converter since the minimum current is 512mA even if I set all of the bits to 0 in bool setChargeCurrent(bool bit7, bool bit6, bool bit5, bool bit4, bool bit3, bool bit2);?

I could be wrong, but to me this implies that the Boron is using the Panel as it’s power source (at the time of the System Call). When you cover up the Panel, does the Boron report POWER_SOURCE_BATTERY = 5 ?

Also, a Boron will re-charge a Li-Po at a much lower current than setChargeCurrent() . I think of it as a Target charging current, not a minimum.

Do you have a way to measure the current being produced after your Step-Up Converter ?

If your DC:DC experiences too much loss for your project, you can look into a “Charge Pump”.
I had decent luck with Indoor Solar Projects using Energy Harvester IC’s like the BQ25570 for example, but there might be better options available now.

A Energy Harvesting IC will perform MPPT for the Solar Panel, which should provide you with better results from the 2V Panel verses a Step-Up Converter. It would handle all recharging duties for the Boron in a much more specialized manner for your 2V Panel.


Disconnecting the Panel + Step-Up results in the same value for powerSource() : USB_OTG even though the battery connected to the LiPo connector is the only power source.

I don’t have a good way to measure the current output of the Step-Up but the Datasheet states 480 mA

@Rftop @rickkas7
Will the System call powerSource() ever return “Charging” given that the connected Battery on Li+ will always be “Discharging” as its the only power source? or would it return both “Charging” and “Discharging” is an appropriate source is connected to VUSB?

Under normal circumstances, the Boron will correctly report Charging/Discharging of the Li-Po in regards to an appropriate source on Vin or Vusb.

But given your diagram, I wouldn’t expect the 2V 160mA panel to provide enough current for the Boron to report Li-Po Charging through the DC Converter.

Back of the Napkin Math:
Assume perfect conditions for the Panel => 160mA @2V => 64 mA @5V.
Throw in ~90% efficiency for the Step Up conversion (guessing) = 57 mA @ 5V before we get to the Boron efficiency/losses.

I’d guess the output voltage of the 2V panel will constantly collapse, without MPPT control.

That makes me think that either you’ve found a glitch, or that DeviceOS is actually reporting the OTG output condition (powering an external USB device from the Li-Po.

Have you performed anything elaborate with PMIC calls in the past on your Boron ?
Some of those settings are “Sticky”.

Is there a simple MPPT IC I can integrate into the circuit? I’ve never used MPPT before so any recs appreciated. What would be the minimum Voltage/Current I can feed into the VUSB pin to charge the attached Li-io battery connected on Li+?

I just checked and the powerSource is now reported as Battery so it might have been something flaky that resolved itself.

This is a easy board to start with ( I used it w/ some very low Voltage panels):

That’s a loaded question, because many factors are involved ( D+/D- lines, PMIC hardware, DeviceOS settings, etc).