[TRACKING] Battery flipping between charging and discharging / Draws from battery even on AC

Shame the article didn’t also test mileage somewhere in the middle.

I suggest we all give up on this, due to the age of the issue everyone’s machine’s will be going out of warranty and framework will just tell us to buy a new mainboard like they did with me over another issue.

well it seems there may be a fix on the way… or a workaround:

It says “Fixes for battery extender functionality introduced in 3.06” but this issue has not been introduced in 3.06.

Installed the new bios, but the problem persists.

As soon as I enable boosting on the CPU (i5 1340P) via TLP, the flipping happens.

The only way to somewhat reliably mitigate it, is to disable CPU frequency boosting, in my case.

It really seems to be a power delivery problem. Either by the charging circuit or the power socket (although I tried all kinds of power adapters and cables).
Basically: for a short moment where the CPU boosts, the power draw of the CPU spikes as well, overwhelming the power circuit and discharging the battery for a brief moment.

I don’t know how other laptop manufacturers handle this. Maybe there’s a short grace period in the circuit where it doesn’t report a short battery draw? Maybe they have more capacitors, so it doesn’t need to draw from the battery?

I really think it’s down to a tiny power spike that can’t be handled gracefully from the power circuit

I did a series of stress test without battery. Here’s what I found. 7840U running Arch Linux, on Performance power profile.

When using a 30W power supply, you can boot into BIOS but that’s as far as you can get, attempting to continue booting to OS leads to immediate power cut. This behavior corresponds to:

When using a 60W power supply, the current is limited to 2700mA, however the power can only reach 33W, far from 54W. Both the instantaneous and sustained CPU power are 25W

readings
$ sudo ectool chargestate show
ac = 1
chg_voltage = 15400mV
chg_current = 0mA
chg_input_current = 2700mA
batt_state_of_charge = 0%


When using a 65W power supply, the current is limited to 2924mA, however the power can only reach 37W, far from 58.5W. Both the instantaneous and sustained CPU power are 28~30W

readings
$ sudo ectool chargestate show
ac = 1
chg_voltage = 15400mV
chg_current = 0mA
chg_input_current = 2924mA
batt_state_of_charge = 0%


This corresponds to

When using a 100W power supply, the current is limited to 4500mA, The power from USBC goes from 57W(still lower than 70+W in Performance mode) to 46W(the same as Performance mode with battery installed). The instantaneous CPU power is 45W(lower than battery installed 53W), the sustained CPU power is the same as battery installed, 35W.

Conclusion: For some reasons the presence of the battery itself enables higher utilization from the USBC input even when the battery is charged to 100% or the charging limit you set.

Battery is used for “stabilizing the grid”, if 30W charger is used, flipping when overall system load(NOT CPU load) <27W, discharging when overall system load >27W.
If 60/65W input, charging when <33/37W, flipping when 33/37W<overall system load<54/58.5W, discharging when >54/58.5W
If 100W input, charging when <57W, flipping when >57W, it’s not possible for overall system load to reach 90W

We can limit the CPU power to 25/29/45W when using 60/65/100W power supply to prevent the battery from flipping.

2 Likes

This problem is not related to BMS, but either EC or the topology of the computer’s hardware.

Here’s my guess:
Most “classic” laptops have one DC power input socket, 18~20V mostly 19.5V via DC5525. Said laptop can only be used with the AC adapter provided by the manufacturer, or if you have a bench power supply and you set the voltage/current correctly.
On these laptops, the power rail is connected directly to the 19.5V input. Then there are some DC-DC converters mounted on the 19.5V rail, to convert voltage to 5V, 3.3V, ~1V(VRMs) and of course, the battery.


The distinctive characteristic of these laptop, is all these AC adapters can provide power for maximum instantaneous load AND charging the battery with plenty(20%+) of headroom. In this case, the battery is merely a component of consuming power. Removing the battery does not affect the stability of the circuit. If the AC adapter is overloaded, it’ll turn off and the laptop runs solely on battery, hence the mandatory “headroom” of the AC adapter power rating. “Bypass charging” is inherent.

The problem with USB-C powered laptop is that to comply with PD standard, the laptop must be compatible with a variety of AC adapters with different power rating. To achieve that, a buck-boost DC-DC converter must be installed between the input and the power rail. This introduce a problem: non-instant response. When the load spikes, battery power is taken until the upstream DC-DC reacts, even if the load is lower than the input power rating.
For instance, you can draw up to 90W from a 100W input, with 45~75W load, charging the battery 45~15W, but you cannot draw more than 57W if the battery is removed, read the reply above for more information

There are bugs in BMS in random batches, like charging slowly below 25%, charging slowly below 21°C, only charge to 17.4V(should be 17.6V on 55Wh), discharging quickly below 25%, but they are not the cause of small charge/discharge cycle(see above). The reason is due to the lack of a direct connection to the power input, the laptop cannot use more than 33/37/57W with 60/65/100W adapter without using the battery as a buffer.

2 Likes