Recap: I used a USB3 (10 Gbps) hub to connect my gamepad and headset dongle to the motherboard, and I’ve been experiencing random flickering. I spent a significant amount of time testing and trying to reproduce the issue, and I’m increasingly convinced it’s power related. I’ve also noticed a couple of new scenarios, so I think it’s appropriate to post in this thread.
Test setup
- Motherboard: Framework Desktop (motherboard only, 128 GB)
- PSU 1: SilverStone SFX 450W
- PSU 2: Seasonic Prime TX-1000 FullATX 1000W
- Reference system for comparison: Lenovo T14 AMD Gen 6 laptop with Ryzen AI 350 CPU
USB devices used
- UGREEN 10 Gbps USB-C hub with 2x USB-C and 2x USB-A data ports (SKU 35583)
- Seagate OneTouch 5 TB portable HDD
- WD My Passport 1 TB portable SSD
Test method
Read from the HDD using the following command and confirm it runs continuously:
sha256sum <a very large file on disk>
Read from the SSD using:
fio --name=seqread --ioengine=libaio --rw=read --bs=1M --numjobs=16 --size=3G --filename=Fedora-Silverblue-ostree-x86_64-43-1.6.iso --direct=1 --runtime=180 --time_based --group_reporting
After a couple of minutes (or after a few retries of the fio command), the entire hub disconnects/cuts off.
What I’ve ruled out so far
-
I tested with both the 450W and 1000W PSUs and saw no difference, so the PSU is unlikely to be the cause.
-
I tested on Fedora Silverblue 42 and 43, across multiple recent kernels, so this likely isn’t an OS related issue.
-
I upgraded to BIOS 3.04 (and did encounter the boot delay issue), enabled the BIOS option to allow higher current, and kept the hub and devices connected from a cold boot. This did not help. In many cases, the USB devices weren’t recognized properly at boot, likely due to limited power during initialization.
Additional observation
When I connect the same hub and devices to the rear USB3 port, everything appears to work normally.
USB4 port power reporting
I don’t have a USB PD tester, so I checked the reported current limit for the USB4 ports with:
cat /sys/class/power_supply/ucsi-source-psy-USBC000:001/current_max
0 <-- expected because this USB4 port is unconnected
cat /sys/class/power_supply/ucsi-source-psy-USBC000:002/current_max
1500000 <-- 1.5A
On my Lenovo laptop, the same setup works fine and the port reports 3A.
This makes me suspect the issue is more than just USB-PD negotiation. My hub likely does not perform USB-PD negotiation, which is supported by the fact that upgrading to BIOS 3.04 did not help (even though the BIOS change was reported as partially working by @aLostEngineer).
Related dmesg messages
I also noticed the following in dmesg. I’m not sure whether it’s related to the root cause, but it appears to be a long standing issue reported by Framework laptop users and still unresolved.
[ 4.001734] ucsi_acpi USBC000:00: unknown error 256
[ 4.001741] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
What I think is needed
-
Allow both USB4 ports to supply 3A unconditionally, simultaneously (mirroring Lenovo’s behavior). So “dumb” devices can work reliably. It doesn’t seem right that the USB3 ports support a higher current than USB4 ports by default.
-
Advertise the 3A profile upfront during USB-PD negotiation for USB-PD aware devices.
-
Consider that many users run the motherboard with their own PSU/case, and not everyone benefits from the “power saving” decision for the Framework Desktop kit (and I don’t think it’s a right design decision in the first place anyway).
For this testing, I took the risk of potentially damaging the disk surface/head of my HDD due to repeated power loss during active reads. The scratching sound I heard during the tests, when the HDD cut off, was really scary. Hopefully this can be fixed soon and ideally in one go so I don’t have to repeat these tests.
cc @Quin_Chou @Eagle hope this provides your team something useful for the investigation/fix. I’m more than happy to be an alpha tester for the fix.