Skip to content

Question - Does FW13 support battery bypass when charge limit is reached? #61

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
pgrohe opened this issue Apr 2, 2025 · 7 comments
Open
Assignees

Comments

@pgrohe
Copy link

pgrohe commented Apr 2, 2025

Quick question. I'd like to confirm whether the FW13 is still drawing power from the battery under the following scenario:

  • laptop is plugged in and in-use
  • battery charge limit is set
  • battery charge has reached the charge limit

In the above scenario, is the laptop powered solely from the power adapter, bypassing the battery?

Or is the battery being discharged in addition to the laptop being powered from the power adapter, causing it to alternate between discharging & charging as the battery drops below the charge limit?

I would kinda hope that in the scenario described above the battery state would remain in a 'plugged in, not charging' type state, but also not being drawn from, while the FW13 is powered by the power adapter.

This came up on the Community Forum in the Beta release thread for 3.08 and I'd like to clarify.
https://community.frame.work/t/framework-laptop-13-ryzen-7040-bios-3-08-release-beta/66858/59

@pgrohe
Copy link
Author

pgrohe commented Apr 3, 2025

@quinchou77
Copy link

We have identified an issue in version 3.08: when the battery charge limit is set below 100% and the battery extender is enabled, the device incorrectly charges to 100% after AC power is disconnected for more than 30 minutes. We are prioritizing a resolution for this issue.
To use the battery limit function, disable the battery extender and then set your desired charge limit.

The correct behavior of battery limit should still be work even the battery extender is enabled. The current issue is caused by the BIOS setting "Battery extender reset".

@quinchou77 quinchou77 self-assigned this Apr 8, 2025
@kiram9
Copy link
Member

kiram9 commented Apr 17, 2025

The Framework 13 does not run in bypass mode. Only NVDC mode.

@pgrohe
Copy link
Author

pgrohe commented Apr 18, 2025

Thanks, appreciate the info.

A follow up question if I could. The quick read I just did on NVDC mentions that it can be used to support Hybrid Power Boost (HPB), where the battery supplements the power adapter to provide power to the system.

Is that what the FW13 does? I've been trying to figure out why my FW13 shows the battery as 'discharging' occasionally when it's fully charged to the set battery limit while also connected to the Framework 60W charger. Visible in /sys/class/power_supply/BAT1 or upower -d in the state field, when the laptop is under a bit of load.

I have an official support request open with Framework on this and they want to send out a replacement charger. But if you could confirm this is normal for the FW13 as a result of NVDC & HPB I could tell them not to do that.

I know this isn't the avenue for troubleshooting & support so I'll end with this reply and if you want to simply close the issue I understand. But if you could settle the ongoing discussion about this that would be awesome(see forum link in prior post). Cheers.

@kiram9
Copy link
Member

kiram9 commented Apr 18, 2025

A follow up question if I could. The quick read I just did on NVDC mentions that it can be used to support Hybrid Power Boost (HPB), where the battery supplements the power adapter to provide power to the system.

Yes we use the battery to supplement the adapter if the system load goes over the adapter rating.
at the CPU/APU, the chip can draw around 54-64W for short bursts. So this will be more than the charger can supply.

Pretty much the system can pull whatever is programmed as the max limit by the EC, and the charger IC on the board will limit the current from the adapter, the system power rail will droop slightly and pull the extra power from the battery.

@jcdutton
Copy link

The EC (Embedded Controller) controls the battery charging / discharging.
I have looked at the source code, and it is a bit of a mess.
There are quite a few edge cases where it will trigger a "discharge" when it is not actually needed and also mini charge/discharge cycles.
I have made my own changes to the EC software that fix most of the problem for me.
My changes are here if anyone is interested:
https://github.com/jcdutton/EmbeddedController
https://github.com/jcdutton/zephyr

The intended behavior in NVDC is this:

  1. Prefer power from the PSU power connection, if the CPU/GPU needs more, take the extra from the Battery. I have tested this by using a 25W PSU and then stress-ng to make the CPU need more than 25W, it then pulls a bit extra from the battery. If I stop stress-ng, it stops pulling power from the battery. I did all my tests on a FW16 AMD, but I expect it will be similar to a FW13.

A FW (subcontractor) developer has been making a few changes to the FW github EmbeddedController repo, that I hope will eventually fix all the edge cases.

I have a "works for me" fix (fixes all edge cases for me) that I have made for my FW16 AMD EC, but I don't have a FW13 AMD to test it on.

@jcdutton
Copy link

jcdutton commented May 5, 2025

@kiram9

The Framework 13 does not run in bypass mode. Only NVDC mode.

The FW13 has problems with this with 60W and 100W PSU.
It seems that in NVDC mode, even with a 100W PSU, it still tries to take some small amount of current from the battery. 10-100mA. Causing a lot of charge/discharge loops.

Is there maybe some tweak to do to the EC firmware that will let it favor the 60/100W PSU a bit more and cause the battery to sit at 0mA except when needed during high CPU/GPU load.

These symptoms can be reproduced on a FW16, if one uses a smaller, say 30W PSU with the FW16. The FW16 uses bypass mode for PSUs > 90W. I am guessing that the FW13 does not have bypass circuitry.

If you could give us a detailed schematic of the Charging circuits of the FW 13 / 16 it would really help us understand.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants