PMIC_DETECTION on Boron

Hi All,

We are using our Boron devices with a 3.7V 10.4Ah 38148Wh batteries. Our devices are either connected to the mains or else the customer uses a 6V Adafruit solar panel.

We are having some intermittent charging issues. 2G/3G Borons running OS 3.1.0.

These are the PMIC settings that we are currently using:

conf.powerSourceMaxCurrent(900)  // was 900
	.powerSourceMinVoltage(4208)   // was 4500 
	.batteryChargeCurrent(900)  ///it was 1024
	.batteryChargeVoltage(4112) //4208
	.feature(SystemPowerFeature::USE_VIN_SETTINGS_WITH_USB_HOST) ;
	int res = System.setPowerConfiguration(conf);
	//System.enterSafeMode();
	Serial.print(" <---- PMIC MODE END ");
	Serial.println(res);

When I look at other peoples code around using solar panels I always see
.feature(SystemPowerFeature::PMIC_DETECTION)
being used. On the docs, this says its for use with external PMICs then gives the Boron SOM as an example. Should I be using this statement in my settings above? Also are teh values used in the settings above appropriate?

Thanks in advance.

PMIC_DETECTION should not affect anything on the Boron.

What exactly is happening?

If the charge light is coming on, then immediately going off again, it may be the batteryChargeCurrent. What can happen is that when charging turns on at a high current, the panel cannot not supply it, which causes the voltage to drop, which turns off charging, and the cycle repeats itself.

That panel is 1A, but that’s under ideal conditions, and is barely more than the 900 mA setting you have. If there is not full sunlight, I would not be surprised if you had problems.

1 Like

Hey Rick,

Perfect good to know.

A very good point. So for this panel what would a more reasonable number be something around the 400 mark? Are there any other values that are inappropriate in my current PMIC settings.

Well when a device is using mains supply, if the watchdog triggers a safemode event, then sometimes after I reset the device back to running our application I get the following back from vitals. But when you look at the device it is showing a strong constant charge light.

"power":{
"battery":{
"charge":{
"err":
-210
}
"state":
"unknown"
}
"source":
"VIN"

I’d try 400 mA, that’s just a guess, but it seems about right. The other settings are probably OK.

Sometimes it takes longer than the wait before sending vitals for the PMIC to stabilize, so that happening occasionally is usually not a big problem.

Perfect I will leave as is and see if the vitals food themselves.

Solar I will change and revert if working better. Thanks a million for the quick response. Just for my own understanding, with the solar, because I had a high min in relation to the panel used, I am just causing the panels voltage to collapse while operating on anything less then optimum sunlight?

Correct. The way the input current limit works is that once charging reaches the minimum charge voltage, the flood gates are opened and that much current is drawn from the panel. If it’s too much, the voltage collapses.

1 Like

Last note, I should change both the

powerSourceMaxCurrent

and

batteryChargeCurrent

to 400 right?

@StngBo and @rickkas7 ,

Please see the thread below. You limit the current drawn from the panel more by setting a minimum voltage for charging than from limiting charge current.

In my experience, limiting charge current simply slows charging.

Thanks,

Chip

1 Like

Based on my understanding of the Datasheet, the batteryChargeCurrent is a Maximum threshold, not a minimum, used during Dynamic Power Management (DPM).

I’m seeing a few post in the forum that reads the opposite. It has me wanting to read through the datasheet again.

Detailed testing back in 1.5.x firmware confirmed DPM worked correctly, and that .powerSourceMinVoltage(5080) was the best available setting for most 6V Solar Panels.

So If I look at your post @chipmc, and your comment @Rftop, For my Li-ion pack 3.7V 10.4Ah I should use the following? (Basing this off your comment about half the capacity) Are these numbers too high?

conf.powerSourceMaxCurrent(5200) 
	.powerSourceMinVoltage(5080)  
	.batteryChargeCurrent(5200)  
	.batteryChargeVoltage(4112) 
	.feature(SystemPowerFeature::USE_VIN_SETTINGS_WITH_USB_HOST) ;
	int res = System.setPowerConfiguration(conf);

The Boron isn’t capable of those high of charging currents.
I’d leave them both at (900), I’d be surprised if you ever reached that high anyway.

I believe the charge current is a maximum, and you do not need to match it to the input current because the lesser is used. The charge current maximum is determined by the maximum current your battery can be charged at, but will still be limited by the input current limit. I’m not 100% positive about this, however.

I agree with that… I misunderstood your previous statement. My apologies.

I am seeing very strange Solar Charging results this week while performing some prelim testing on LTS 2.3.0rc-1. I don’t know how/if that relates to 3.1.0 for the OP.

OK perfect, so I’m back to:

conf.powerSourceMaxCurrent(900)
	.powerSourceMinVoltage(5080)   
	.batteryChargeCurrent(900) 
	.batteryChargeVoltage(4112) 
	.feature(SystemPowerFeature::USE_VIN_SETTINGS_WITH_USB_HOST) ;
	int res = System.setPowerConfiguration(conf);

Now the question I guess is should I use is should I lower my Currents so that I am less likely to crash the voltage or do I rely on the .powerSourceMinVoltage(5080) to prevent these crashes from happening? EDIT: Not my question at all but @chipmc :grinning:

It may or may not be worth noting that I do not have a capacitor on my solar panel, as seems to be recommended widely.

1 Like

@StngBo ,

It is my understanding that .powerSourceMinVoltage(5080) is what will keep your panel from crashing. It will reduce the current drawn to keep the voltage above this limit.

Thanks,
Chip

1 Like

This however still seems to be an issue for me. So I left the device for 2 hours, the charge light was still showing and vitals still reading this. I have reflashed the device from the cloud to see if that would reset the error, but it is still showing. I have a feeling I will either need to disconnect the charger and reconnect or else remove charger and battery and then reattach. @chipmc Have you seen anything like this on your travels? Is it possible I just didn’t leave the PMIC long enough?

I’m seeing the same “err”:-210 , even after refreshing the Vitals in the Console.

image

I occasionally received -210 once the battery is fully charged. I never knew why. I posted about it awhile ago here: Device Vital reports "Err:-210", "state:unknown" when plugged into USB? Is this normal? - #4 by jgskarda

It would be nice to know what the -210 really is and if it could report accurately. As of now, I have no good way to tell the difference between battery disconnected vs battery fully charged. Never really knew why. As for your scenario. I’m really not sure.

Did you cause this by forcing a safe-mode?

So I removed the charger from the outlet and then plugged it back in. This was left for 30 mins or so and the same error persisted, and the charge light was still lit, unfortunately I didn’t check the battery percentages before and after to see if the battery was indeed charging or not. To remove the error, I had to unplug the charger and remove the battery and then plug both back in. The device seems to be charging now, charge light on and vitals are reporting the same.