FW16 2nd Generation, Ai9 using internal graphics card.
OS: Fedora44 KDE Plasma, latest BIOS 03.06
Problem:
FW16 will not start charging when disconnected from the AC Charger and after a cold bootup (from OFF).
Charging is done from Expansion Port 4, RHS closest to the Display. Reboot the Laptop and then plug in the Charger and charging will start. If the Laptop is OFF and you plug in the Charger then charging will start as well. This has been a consistant issue since the Laptop has arrived. No hardware problems. I hoped that the latest BIOS would have fixed the problem, but so far no luck.
The EC controls charging.
When the laptop is off, the battery can charge, and the EC sets the FW16 power adapter to 20V.
When you press the power on button, the cpu starts booting. At the same time, the EC transitions the FW16 power adapter to 36V.
To switch volts, the USB-PD spec says it must go via a no-current step for about 1 second.
So, this results in the boot process requiring a battery, otherwise it will switch the laptop off during boot.
This results in one needing some battery power to boot the FW16.
Is that the problem you are seeing.
Essentually, if the battery is low, it will not boot, until you charge the battery a bit first?
The FW13 does not have this problem, because its max input volts is 20V, so it never needs to switch to 36V.
I think this bug could be fixed, if the EC forced the power adapter to whatever its max watt setting is, 36V in the case of FW16 180W charger, as soon as a charger is plugged in.
And, if, for whatever reason, it drops to 20V, to switch back to 36V before booting the CPU.
Here is some info to clarify things a little bit or hopefully make it easier to read.
The Laptop has never been below SOC 28%
The charger is the 240W version
Charging/no charging situations that are 100% reproducible:
Laptop OFF: Plug in Charger and it will start charging
Laptop OFF, charger plugged in and boot Laptop: Will start and keep on charging
Laptop (running) disconnected from charger and rebooted, then plugged into charger: Laptop will start charging.
Laptop running disconnected from charger and while disconnected Laptop is shut down.
Laptop (from above scenario 4)) still disconnected from charger and now turned on/booted up and running. Then plugged in the Charger and it will NOT start charging. SOC in this scenario at SOC 30%+. A reboot will fix the charging situation every time.
Swap charger in the above scenario 4 (not charging) to USB C Port 1 and now it charges again, but will not charge from USB C Port 4 until Laptop has been rebooted. Both Ports in the chassis are aproved for USB C charging as per Framework’s Ai300 diagram.
I run Fedora 44 Linux KDE and I monitor the system using GKrellM which includes the battery voltage. I also use “framework_tool” to gather information.
Here are some sample outputs:
sudo framework_tool --pdports
USB-C Port 0:
PD Contract: Yes
Power Role: Sink
Data Role: Dfp
VCONN: Off
Negotiated: 48.000 V, 5000 mA, 240.0 W
CC Polarity: CC2
Port Partner: Source
EPR: Active (Supported)
Sink Active: Yes
USB-C Port 1:
PD Contract: No
Power Role: Sink
Data Role: Ufp
USB-C Port 2:
PD Contract: Yes
Power Role: Source
Data Role: Dfp
VCONN: On
Negotiated: 5.000 V, 680 mA, 3.400 W
CC Polarity: CC1
Port Partner: Sink
EPR: Inactive
USB-C Port 3:
PD Contract: No
Power Role: Sink
Data Role: Ufp
sudo framework_tool --power -vv
Place your finger on the fingerprint reader
Charger Status
AC is: connected
Charger Voltage: 17800mV
Charger Current: 3840mA
0.70C
Chg Input Current:9000mA
Battery SoC: 73%
Battery Status
AC is: connected
Battery is: connected
Battery LFCC: 5605 mAh (Last Full Charge Capacity)
Battery Capacity: 4081 mAh
70.91 Wh
Charge level: 72%
Manufacturer: NVT
Model Number: FRANDBA
Serial Number: ****
Battery Type: LION
Present Voltage: 17.175 V
Present Rate: 3067 mA
Design Capacity: 5491 mAh
85.0 Wh
Design Voltage: 15.480 V
Cycle Count: 82
Battery charging
My personal guesses are:
BIOS issue, despite that it is on the latest BIOS for the Ai300 series
Possible Kernel issue which I just find less likely.
The charging is controlled by the EC (Embedded Controller). So not BIOS or OS.
Can you please also add how many second between 4 and 5.
The reason being, if the laptop is powered off, and power adapter disconnected. There is a time delay before the EC switches to a different state. That is approximated a 45-60 second timeout.
1st time it happened would have been possibly an hour. It was once when booting from Windows on secondary SSD after updates and getting back to Linux, I turned it fully off to make sure that Grub2 was still working and Windows hadn’t forced its boot manager to over ride/change the boot sequence in the BIOS.
The other 3 times were when I had performed 2 BIOS updates and a firmware update on some of the hardware modules. The last full shut down was done as the latest BIOS was suppose to fix the pop noise that would randomly happen from the Audio. Mine was still doing it after the update, so I fully turned the Laptop off to make sure the BIOS had fully taken.
I am retired and for me its not a big deal, but when I was still working this scenario would be close to a daily situation as I often travelled for hours to a location from home and use my Laptop onsite to plug into devices with no Mains available or just in an inconvenient location. So the Laptop would be fully charged the day before and then turned off and left off until getting to the work site.
Why not use 36V or 48V all the time instead of switching voltages?
In terms of switching voltages, all my laptops except Framework use the same voltage(at a given power supply) at all conditions, charging, charged, off, on. My Framework 13(not even 16) switches off and back on PD when I press the power button for NO reason, it just stops 100W PD and re-enables the same voltage, which is a bit wonky without any advantage of doing so.
I only encountered two pieces of consumer electronics that has voltage switching. A MacBook(which is not mine) and my smartphone(which is not Apple). When switched off or doing light tasks the MacBook will switch from 20V to 5V when charging is finished, the power consumption is about 3W when watching videos, there’s no “no-current step” the power went to 3W directly, not to 0W back to 3W. My smartphone uses 9V or PPS(about 15-18V) and switches to 5V when charging is finished or reached the 80% limit, again, no 0W transition.
I think FW should simplify the EC code for PD negotiation, just always use the highest rating that the power brick can provide at all times.
I have the same thought. See my todo point 5 here.
There are some complexity to it and all the edge cases would need to be considered.
E.g. 36 and 48 are only available in EPR mode. EPR mode has a keepalive, where it will exit EPR mode to 20V or 5V SPR mode if the EC does not sent the keepalive to the power adapter.
It will be interesting to see if a simple rule “EC to force it to EPR mode” everytime one plugs in a power adapter will work.
Another edge case is:
You have a 100W (20V) adapter plugged in.
You then plug a 240W (48V) adapter in as well. It is supposed to switch to getting power from the 240W adapter.
How does it do that without going via the 2.5W step.
One idea is to go from SPR 20V to EPR 20V, and then shift the EPR up in 100mV steps, until it gets to 36 or 48V. But that is a lot of messages, and 280 transactions over a slow CC bus.
We don’t have the schematics for the FW16, so i don’t know if it can deal with 100mV steps or not because the FW supplied EC code has never tried to do it.