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

yep, still having the issue, even physically unplugged the battery to no avail, still plagued. this really needs to be fixed, my 7840u board never had this issue and its making me consider refunding

The AI 300 is more power hungry than Ryzen 5/7 7040U

Even more aggressive boosting? I would expect at least the 340 and 350 to have somewhat less peak power since half their cores are zen5c that can’t boost as hard.

You mean like we should have, say, a 140w PD power supply?

The only way to get this fixed is for Framework to take an actual look at the fixes @James3 did in their fork, and see if it works as intended. And then release an official firmware release.

FW has been annoyingly quiet on all fronts regarding this, though. And I’m not sure what to do to get more than a ā€œframework takes this seriouslyā€ and never actually see any changes

The ā€œload averageā€ is slightly higher, but that’s HX370, not 350 data.

100W should be enough

The main cause of battery flipping is the peak power demands of the CPU.
We have measured 497W on a FW16.
These are very short spikes in power demand, but they do cause the charging chip to momentarily draw from the battery.
This is caused by design problems related to how the usb power delivery works. Not any design fault on the FW13 / FW16.
I have a modified experimental EC than makes it function a lot better.

For the big ones, the cause of the small ones seems to be the weird moving vbus voltage thing.

do we know why the flipping isn’t happening on windows, aparently?

Does windows maybe have a short grace period of not reporting the change, before it decides to tell a user?

You can also observe the flipping by watching the lights on the side, if it changes from white to red momentarily the battery is flipping

The flipping is happening regardless of os on the physical level, what the os does with the reported information is a whole other story.

The ec tells the cpu it can draw like 170w if it wants and it does that sometimes.

yup, that’s what I mean.

I’m thinking along the lines of: Linux reports the change immediately while Windows waits if the change persists for a moment before notifying the user

There is some debate going on on how that should be handled on linux in general as framework doesn’t seem to be the only ones just letting the soc rip XD

The way I diagnosed and fixed the problem, with my custom EC firmware, was I put a counter on the flipping. So I could use an EC command and see how many times it had flipped since power on of the EC.
There are several aspects to the flipping:

  1. Changing from charging to not charging.
  2. Changing from using the PSU to using the PSU + Battery.
    The EC counter I have does (1).
    I cannot put a counter on (2) because that switch event is done in hardware, and the EC only controls the thresholds.

I don’t think a non-custom EC has this counter.