FW16 USB PD Battery Issues

I think what’s happening is that when the power bank detects the cable is EPR enabled, outputting fixed power of 140W, the Framework 16 Embedded Controller ( part of the BIOS ) is trying to negotiate with the power bank using EPR + AVS, but it fails because the power bank ( output only ) doesn’t support AVS, and the FW16 retries after some delay ( I think approximately 1 seconds ) repeatedly until you unplug the power bank

Interestingly, I tested the PD protocol support with my 2 devices mentioned above, of which one works with 140W. Here are the results:

Powerbank (works with 140W):

Fixed: 5V 3A
Fixed: 9V 3A
Fixed: 12V 3A
Fixed: 15V 3A
Fixed: 20V 5A
PPS: 4.50-21.00V 5A

EPR Capable
Fixed: 28V 5A

Charger (does NOT work with 140W):

Fixed: 5V 3A
Fixed: 9V 3A
Fixed: 15V 3A
Fixed: 20V 5A
PPS: 5.00-11.00V 5A

EPR Capable
Fixed: 28V 5A
AVS: 15-28V

I’ve highlighted the differences. So, based on the results of this USB-C tester (Power-Z KM003C), the device which supports AVS is the one that does not work properly, while the device which only supports EPR with fixed voltage 28V, does charge it at high wattage.

So I’m not sure if the results are similar with a different power bank, and I can’t be 100% confident of these test results, but from these, it looks like the AVS would likely be the problem, as it works with the powerbank which does not support AVS but only supports 28V fixed voltage with max 5A.

As for the mentioned concern - how the laptop could charge with fixed setting in case the battery is already full - that should not be a problem, as only the voltage part in the protocol is fixed. Current is still being drawn only as much as needed/supported. Once the laptop is charged, it would either limit the current (amps) drawn at the same voltage, or possibly renegotiate to a lower voltage. With proper support for AVS, the device can constantly tune the voltage as well, in small increments, to provide the maximum efficiency or charging speed.

Therefore, I assume there is something wrong with the negotiation when using AVS. However, I’m unable to confidently say if this is on the side of Framework or the side of Anker charger (140W port), because I don’t have another AVS capable sink device to test on - the power bank charges at 140W, but also seems to use fixed voltage for charging.

2 Likes

Hi I ran into similar issue and wanted to mention it.
I have alza power APW-HCA82SLY USB-C replicator.
If i connect framework charged to its USB-C connector, laptop will become wery slow, and there are similar messages in dmesg:

[ 1074.236464] workqueue: ucsi_handle_connector_change [typec_ucsi] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
[ 1078.436648] workqueue: ucsi_handle_connector_change [typec_ucsi] hogged CPU for >10000us 8 times, consider switching to WQ_UNBOUND
[ 1087.466008] workqueue: ucsi_handle_connector_change [typec_ucsi] hogged CPU for >10000us 16 times, consider switching to WQ_UNBOUND
[ 1101.003594] workqueue: acpi_os_execute_deferred hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
[ 1104.849760] workqueue: ucsi_handle_connector_change [typec_ucsi] hogged CPU for >10000us 32 times, consider switching to WQ_UNBOUND
[ 1115.328705] usb 7-1: USB disconnect, device number 2
[ 1115.328770] usb 7-1.5: USB disconnect, device number 3
[ 1115.354820] usb 8-1: USB disconnect, device number 2
[ 1115.354954] usb 8-1.1: USB disconnect, device number 3
[ 1115.359265] cdc_ncm 8-1.1:2.0 enxa0cec8acd065: unregister 'cdc_ncm' usb-0000:c3:00.3-1.1, CDC NCM (NO ZLP)
[ 1115.390886] usb 8-1.4: USB disconnect, device number 4
[ 1115.934868] ucsi_acpi USBC000:00: UCSI_GET_PDOS failed (-70)
[ 1116.445178] workqueue: acpi_ec_event_processor hogged CPU for >10000us 8 times, consider switching to WQ_UNBOUND

and secont try

[ 1216.409648] workqueue: power_supply_changed_work hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
[ 1236.034202] workqueue: ucsi_handle_connector_change [typec_ucsi] hogged CPU for >10000us 64 times, consider switching to WQ_UNBOUND
[ 1243.184519] usb 7-1: USB disconnect, device number 4
[ 1243.184589] usb 7-1.5: USB disconnect, device number 5
[ 1243.217186] usb 8-1: USB disconnect, device number 5
[ 1243.217354] usb 8-1.1: USB disconnect, device number 6
[ 1243.230612] cdc_ncm 8-1.1:2.0 enxa0cec8acd065: unregister 'cdc_ncm' usb-0000:c3:00.3-1.1, CDC NCM (NO ZLP)
[ 1243.358312] usb 8-1.4: USB disconnect, device number 7
[ 1243.819133] ucsi_acpi USBC000:00: unknown error 0
[ 1243.819149] ucsi_acpi USBC000:00: UCSI_GET_PDOS failed (-5)

I had similar behavior with some noname USB-C replicator that i borrowed.

1 Like

can you report what sensors report?

> sensors
ucsi_source_psy_USBC000:004-isa-0000
Adapter: ISA adapter
Voltage   Back Left:   0.00 V  (min =  +0.00 V, max =  +0.00 V)
Current:               0.00 A  (max =  +0.00 A)

ucsi_source_psy_USBC000:003-isa-0000
Adapter: ISA adapter
Voltage Middle Left:   0.00 V  (min =  +0.00 V, max =  +0.00 V)
Current:             680.00 mA (max =  +0.00 A)

ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
Voltage   Back Right:  20.00 V  (min =  +5.00 V, max = +39.00 V)
Current:                5.00 A  (max =  +6.12 A)

ucsi_source_psy_USBC000:002-isa-0000
Adapter: ISA adapter
Voltage Middle Right:   5.00 V  (min =  +5.00 V, max =  +5.00 V)
Current:                0.00 A  (max =  +1.50 A)

in this case the “Back Right” is connected to a 100W power (Chargeur Anker Prime (250 W, 6 ports, GaNPrime) - Anker FR)

But with this power when I use a 140W port it do not report Voltage and do not work correctly for me…

1 Like

When I plug my FW charger to right back port with battery at 87% (charging stops at 90%)

mt7921_phy0-pci-0100
Adapter: PCI adapter
temp1:        +32.0°C  

ucsi_source_psy_USBC000:004-isa-0000
Adapter: ISA adapter
in0:           0.00 V  (min =  +0.00 V, max =  +0.00 V)
curr1:         0.00 A  (max =  +0.00 A)

ucsi_source_psy_USBC000:002-isa-0000
Adapter: ISA adapter
in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         0.00 A  (max =  +1.50 A)

nvme-pci-0200
Adapter: PCI adapter
Composite:    +28.9°C  (low  = -40.1°C, high = +83.8°C)
                       (crit = +87.8°C)
Sensor 1:     +40.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +28.9°C  (low  = -273.1°C, high = +65261.8°C)

amdgpu-pci-c100
Adapter: PCI adapter
vddgfx:        1.30 V  
vddnb:       672.00 mV 
edge:         +30.0°C  
PPT:          12.25 W  (avg =   5.21 W)

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +33.1°C  

ucsi_source_psy_USBC000:003-isa-0000
Adapter: ISA adapter
in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         0.00 A  (max =  +1.50 A)

ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         5.00 A  (max =  +3.00 A)

BAT1-acpi-0
Adapter: ACPI interface
in0:          17.35 V  
curr1:       231.00 mA 

when i plug my FW charger through my expander to right back port (battery at the same SOC)

mt7921_phy0-pci-0100
Adapter: PCI adapter
temp1:        +34.0°C  

ucsi_source_psy_USBC000:004-isa-0000
Adapter: ISA adapter
in0:           0.00 V  (min =  +0.00 V, max =  +0.00 V)
curr1:         0.00 A  (max =  +0.00 A)

ucsi_source_psy_USBC000:002-isa-0000
Adapter: ISA adapter
in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         0.00 A  (max =  +1.50 A)

nvme-pci-0200
Adapter: PCI adapter
Composite:    +29.9°C  (low  = -40.1°C, high = +83.8°C)
                       (crit = +87.8°C)
Sensor 1:     +40.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +29.9°C  (low  = -273.1°C, high = +65261.8°C)

amdgpu-pci-c100
Adapter: PCI adapter
vddgfx:      715.00 mV 
vddnb:       669.00 mV 
edge:         +31.0°C  
PPT:           4.18 W  (avg =   4.14 W)

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +33.5°C  

ucsi_source_psy_USBC000:003-isa-0000
Adapter: ISA adapter
in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         0.00 A  (max =  +1.50 A)

ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0:          20.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         3.75 A  (max =  +0.10 A)

BAT1-acpi-0
Adapter: ACPI interface
in0:          17.02 V  
curr1:       605.00 mA 
ucsi_source_psy_USBC000:001-isa-0000

look to be the right back port…

so we get:

#>  100W Power charger
ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
Voltage   Back Right:  20.00 V  (min =  +5.00 V, max = +39.00 V)
Current:                5.00 A  (max =  +6.12 A)

#> FW 180W charger ?
ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         5.00 A  (max =  +3.00 A)

#> alza power APW-HCA82SLY USB-C replicator.
ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0:          20.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         3.75 A  (max =  +0.10 A)

# on a 65W charger I get:
Adapter: ISA adapter
Voltage   Back Right:  20.00 V  (min =  +5.00 V, max = +38.80 V)
Current:                5.00 A  (max =  +3.56 A)

Look rely there is something bad somewhere … (linux sensors report / EC report / PD negociation…)

Did some on know if we can get PD config/stat from EC ? (with ectool tools?)