Boron LTE w/ Solar- Trials


Just connect one of the 2 or 3w panels you have and put it under the brightest light bulb you have around you and see what the voltage of the panel is.

It should hold the panels voltage at 4.84v or close to it if there is enough voltage to start the charging process.

I’ll give this a shot myself.


At the minimum, we’ve confirmed that using the max value of (5080) in the datasheet and Particle Firmware pmic.setInputVoltageLimit(5080) does change the behavior of the PMIC.


I just hooked up a Boron with this code and added a battery and 3w 6v solar panel.

Battery is at 4.2v so fully charged already, need to let it drain for a few before testing.


That was it :blush: HA!

I deleted that post.

Back to testing…


If I get time this weekend, I think I’ll wire up an ADS1115 and the µCurrent GOLD to live with a Boron & 1-watt panel in the wild.

Does anyone have comments or Suggestions on:
µCurrent GOLD inline of Solar Panel (+) to measure output current of 1-Watt Panel.
2 channels of ADS1115 for a 16-bit differential measurement of µCurrent GOLD = mA from Panel
2 channels of ADS1115 for a 16-bit differential measurement of Solar Panel’s Operating Voltage.

Once the Sun is shining, Publish the following every minute to ThingSpeak:
Li-Po Voltage
Li-Po Soc
Solar Panel Operating Voltage
Solar Panel mA Output
Calculated Solar Panel Power Output

I’ll only get meaningful data for 1-2 hours before the Li-Po is charged in good sunlight.
Then change to a hungry Li-po, and flash to swap pmic.setInputVoltageLimit for real-world comparison.

I guessing this is better than a Curve Tracer, since it’s also testing the impact of the PMIC settings.

Once I’ve confirmed that the max available value of (5080) allows a 6V panel to produce the most power, I’ll leave it set there and just test different size/manufacturers panels.
The Final Boron test code could disable charging once the Li-Po reaches (say 4.15V) and cycle on a dummy load to discharge to a given voltage (say 3.8V) , re-enable charging and repeat as long as there is sunlight and the Li-Po isn’t heating.


@Rftop Here is some proof for ya :wink:

The solar panel can not provide the full 1A of current so the PMIC keeps the voltage from dropping below 4.84v instead of falling to just above the battery voltage.

The higher voltage provides more current from the panel.

pmic.setInputVoltageLimit(5080) works also :slight_smile:


I hope this isn’t a stupid question, as I’m still fairly new to the world of IoT, but I thought this thread would be best to ask this question:

I have a 3.5W Solar panel from Sparkfun,

It’s a 6-volt 3.5W.
As I’ve read this thread, can you confirm that I can just get an adapter (female barrel plug to micro usb and use it with the Boron to charge a LiPo without changing any code or firmware on the boron?


Yes you can do exactly that.

You will get quicker charging if you use the code I have posted above but it’s not necessary.


Nice! That will save me the cost of a Sunny Buddy or something similar. Now how about for my Argon and Xenons?


The Argon and Xenon does not have this charging chip the same as the Boron so it can not be customized.

I’m not sure what the maximum input voltage is on the USB port on those devices but the same solar panel should also work just fine on those devices also.


Seems like a waste of time and equipment considering it’s a fact that the closer you operate the solar cells to their Vmp (Maximum Power Point Voltage) the more current they will provide under all weather conditions. This is the whole point of MPPT Solar Charge Controllers which can increase daily solar harvest by up to 30% over the course of the day.

Maybe it’s just me and the fact that I’ve proven this to myself so many times now that I just take it for fact.

Are you talking about doing an I/V curve test on a solar panel to see where it produces the most current? I have one of these testers if so.

Already confirmed (5080) works just fine.

Technically the Vmp voltage is 70% of your solar cells No Load Voltage or (Voc).

So if your solar panel is producing 6.6v in good sun it should provide the most current at 6.6v x 70% = 4.62v. The colder it is outside the higher that Vmp voltage will be due to the solar cell having a higher output voltage the cooler it is.

In the summer a solar cell because it’s dark in color will heat up to around 160F. This causes the power output and voltage to drop. The colder it is the higher the solar cells voltage will be and the closer the power output will be compared to it’s rated wattage.

I would just leave it as it currently operates mainly because you will get more lifespan out of your battery based on lab testing of keeping the battery at the top of the charging voltage profile.

Let it charge to 4.0-4.2v and then go into a float for a little and then it will go back into bulk charge mode.

I don’t see you gaining much by draining the battery by an external load just to go back into bulk or absorption mode for longer.

Of course, you can do whatever you desire, it doesn’t really matter much if your willing to replace batteries sooner rather than later.

This has turned into a long thread on solar :sunny:


My thought process was this: Run 4 complete cycles during a 8-hour Solar Day to gather more data on the actual charging characteristics. The plan wasn’t to hammer a Li-Po long term.
My proposed Cycling Test wouldn’t be repeatable, since Sunshine isn’t repeatable.

@RWB, I appreciate you sharing your Solar knowledge and years of experience.

I’m convinced that our new find of (5080) will be the best choice for 6V panels.

Moving on, I performed a trial on an Electron with a 0.5-watt panel long ago, I need to dig up those results.
It worked fine w/ deep sleep.

0.5-watt Panel is smaller than the BreadBoard that ships with Particle devices.

I’m going to focus on a self contained Solar Boron, roughly 2"x3" total size.
We will have the kinks worked out and be ready for the Sleep Modes.



Any experience with LiFePO4 batteries?

I have a friend trying to sell me a bunch of Dakota 12v 10Ah batteries. Not sure how I would charge them with my current voltaic panels though…


Yea, I have tons of experience with LiFePo4 batteries but I have not used them with the Electron yet.

You would need a different charger and a voltage regulator to use a single LiFePo4 cell since the PMIC on the Electron and Born are Li-Ion battery type only and they can not be configured to meet the LiFePo4 profile specs unfortunately.


Update for 0.5-watt Panel:
I finally have sunshine after DAYS of rain and clouds.
Using pmic.setInputVoltageLimit(5080); & pmic.setChargeVoltage(4208);

The tiny 0.5-watt Panel charged the 2,000 mAH Li-po.
The Boron LTE terminated the charge at 4.19V with a resting voltage of ~4.17V.
The Boron LTE appears to be running on Solar Only, Li-Po is patiently waiting for Night time.

image image

Using these settings, the Boron no longer cycles Li-Po Charging constantly throughout the day.
That’s what originally had me investigating changing the setTermChargeCurrent().
I’m guessing that was actually caused by the Solar Panel dropping out (prior to using 5080 Voltage Limit).
I’m happy with everything now :sunglasses:

NOTES to anyone reading this in the future:
Please read the datasheets and Li-on Safety Procedures to decide for yourself if using pmic.setChargeVoltage(4208) is safe for your particular application, with careful consideration to Thermal Planning and Enclosure Design. { charging the Li-Po to 4.208V }

Also, when using pmic.setInputVoltageLimit(5080) for 6V Solar Panels, your Boron might not respond (or Charge the Li-Po) via the USB port on a computer. Don’t freak-out, it’s not broken.



This is the first time I’ve seen the SOC readings show 100% without having to use code to map it to get the full 0-100% range.

Nice to see all this come together and work so well with such a small panel :sun_with_face: :battery:

Now all you need to maximize even further is to use Sunpower solar cells in the panels since they are 22-23% efficient vs the other options in these smaller panels that range from 15-18% usually.


May I ask which pins are you connecting your panel? I have Xenons, Argons, and Borons and a bunch of the little 2W panels. I wanted first to play with the Xenon. I just don’t see a VIN pin.


6V Solar Panels using the USB connector.


Is this to say the VUSB pin and Ground. Surely there isn’t a USB adapter for this.


On the Electron I just wired the positive of the solar panel to the Vin pin.

You can do the same on the Boron since it has the same PMIC chip.