Power bank charging stopped working AFTER BIOS update

I had a pretty old BIOS version (3.x.x, I don’t remember exactly) and updated to 4.0.2 because I had issues with the CPU frequently going down to 1GHz. Updating the BIOS fixed it.

Now my anker power bank (the 27,650mah version with 140W PD) can only charge the laptop when it’s been turned off.

My dad has a framework 13 and it charges it fine.

I’ve tried a LOT of different cables with different power delivery ratings and they all do the exact same thing.

When the laptop is turned on, it shows that it’s charging it at 0W, or sometimes at 60W for 1 second and then back down to 0W. The charging indicator in windows keeps cycling between charging and not charging every second. I tried using a different usb c port in a different location and that didn’t change anything.

I even tried using the same model of a different power bank (my dad has the same one) and had the exact same issues.

Any thoughts? I really want this to start working again so that I can study for longer at my university’s library. There are plugs there but they’re usually taken

I’ve got 2 thoughts:

  • I saw a similar behavior on BIOS 4.02 when trying to charge from my official framework chargers, however I have not seen the issue yet on BIOS 4.03 (now marked as stable)
  • If you’re having CPU throttling issues, I would highly encourage you to check and clean your heatsink vents by removing the fan and then clearing out any lint. I cannot understate how much of a difference removing even just a little bit of hair did for me: CPU Throttling? Clean your vents! - Framework Laptop 16 - Framework Community

Tried 4.0.3, unfortunately no luck with the power bank.

Also I definitely still had throttling issues on 4.0.2, I was wrong about them being fixed. There was one instance of it locked to 0.55Ghz for some reason, even though the core temperature was 41° max. Restarting fixed it temporarily.

Just curious, at what temperature does a framework start to throttle? I know the silicon can take up to 99° theoretically but maybe it throttles lower so that the chassis isn’t hot on your leg by default?

I’ll definitely have to try the lint thing if that’s the case. Otherwise, to be honest I don’t think there’s much point. I’ve very rarely seen it go above 80°

I can confirm similar behavior with my Ecoflow rapid pro power bank. Perhaps it has issues with the 140W charging from power banks now? It used to work perfectly fine on bios 3.x.x. It does seem like my ANKER A1695 power bank works fine, but it cannot do 140W charging.

Is there a way to download old BIOS versions?

I’ve used fwupdmgr’s downgrade functionality to do it, yeah. That’s for linux. If you’re on Windows I imagine there’s a similar process, but I’ve never done in.

I can confirm I have exactly the same issue.

My FW16 refuses to charge from my 2 Anker Prime power banks, until I put it to sleep (or turn it off), then charging works. In sleep it doesn’t always work, but most of the times, when turned off charging always works. After a fresh boot, charging always works the first time for a while until it doesn’t anymore, then I need to put the fw16 to sleep, etc.

Some details:

  • the power banks are fine (checked with other devices)
  • this behaviour is new - charging with the same power banks used to work flawlessly
  • I upgraded the BIOS recently, before I never had this problem

Looks like this is BIOS related.

2 Likes

Has anyone contacted FW support for this issue?
I want this fixed. This is not a complete showstopper, but critical (f. e. you need power in a professional environment and the thing doesn’t charge).

I looked, in some considerable detail, at the FW16 usb-c ports and how they work.
I even took a digital capture oscilloscope to them, and decoded the messages from the oscilloscope trace.

Summary:

  1. usb-c PD (power delivery) is really really complex.
  2. There are actually many many usb-c devices out there that do not comply to the usb standards, but users expect them to just work.
  3. FW16 usb-c ports do follow the usb-c standards, but use parts of it in different ways than a lot of the other laptops out there. I.e. FW16 advertise 1.5A Rp and negotiate up to 3A. Most other laptops advertise 3A Rp and negotiate down to 1.5A. Both approaches are following the USB-C standards. In reality, many usb-c devices are broken when the 1.5A Rp is used.
  4. When both devices at the ends of a usb-c cable advertise “Dual-Role” (i.e. can both source and sink power), the usb-c standard does not say what should happen as a result, causing lots of devices to fail. In my view, there needs to be a user interface GUI so the user can say that it is expecting to be charged from a dual-role device, or the user saying it should charge the dual-role device. That is about the only way to avoid the ambiguity and confusion that both end being dual-role causes.

Footnote:
USB-C PD is really really hard to get right.

2 Likes

I’m glad I’m not the only person interested in this issue. Thanks for your analysis.

However, the fact that it worked flawlessly in a previous BIOS version with the exact same hardware suggests that the issue can be fixed.

In my opinion, it never makes sense to charge a power bank from a laptop, as the power bank has no utility on its own, and if you want to use it to charge something else, you can just charge that thing directly from the laptop. I don’t know if it’s possible to detect what kind of device is on the other end, but ultimately, it probably isn’t necessary.

I’m going to contact framework support. Feel free to do the same if you are affected by this as well. I’m sure that more tickets will increase the chance of this getting fixed in the future. For now, I’m going to try to find the newest BIOS version where it still works and post it here as soon as I do.

To your point 4; that can be designed to work correctly without needing user input. If the device has dual role, charge from it if it is the “largest capacity” charger connected, given the rate is the same. Then if it is a 140w output and the other is 100w, charge from the 140w first.

For example, if a 20000wh and a 4000wh are connected (same charge rate), take power from the 20000, and charge the 4000 (if it needs it).

Or, if the ac charger (unlimited power) and 20000wh are both connected, take power from the ac and charge the 20000.

Since the fw can not take dual power, the above should be simple to design in.

Also, just to throw my input in here. I have a 140w power Bank I carry with my fw16. Tested it and it still works to charge my laptop. So, unfortunately, I am not able to reproduce this issue.

When both ends are dual-role for power.
All that the FW16 knows is what voltage and amps the attached device can source, and what volts and amps the device can sink. It does not know that it is a charger or how many wh of charge it can store or even whether the device is low on charge or full.
Generally ac chargers are not dual-role devices. They only source power.
With that very limited information, it is difficult for the FW16 to decide what is best to do next.
There are some cases where the FW16 could theoretically choose what to do, but it would not cover all edge cases.
That is why I suggest a UI for the user to help the FW16 choose what to do.

So in that case, it should just use the highest amp device to charge from, and send power to the other device. Or failing that choice, just charge from the first one that was connected. I’m sure there are edge cases to work around, etc, but that should be doable.

Having user choice would be a nice addition, but it can’t be a requirement for this sort of thing.

I have a similar problem every time I upgrade from 3.07 to any of the 4.0X versions. The top right charging port seems to still function okay with all of my chargers but the top left one, the one I use 99% of the time, will charge when powered off but not when powered on with my 100 or 140 watt chargers. Even my non-Framework 240 watt charger has issues with it. At least the Framework 240 works fine with it. But because of it I have stayed on 3.07 for a while now. Every time they release a new update 4.01, 4.02, 4.03, etc, it has the same problem.

I was about to comment that 3.07 is the last version that works.

If anyone is looking for a specific version of a framework bios, just find the link for the current bios and change the numbers in the url. It’ll work fine

For example,
Current latest

https://downloads.frame.work/bios/Framework_Laptop_16_Amd_Ryzen7040_BIOS_4.03.exe

Last working version

https://downloads.frame.work/bios/Framework_Laptop_16_Amd_Ryzen7040_BIOS_3.07.exe

I have also messaged support.

Another way to find previous BIOS versions is on this page:
https://community.frame.work/tag/bios-announcement

I keep seeing these issues here all the time and I am just wondering..has anybody looked into their USB C cable condition?? Framework supplies the USB cable, but I just wonder if they are “true/certified Thunderbolt 5 cables” (or at least Thunderbolt 4). These are not cheap, specially at 2m lengths. I have just ordered a certified Thunderbolt 5, 2m cable and it costs me over AUS $60,- and no 90 bent. A 90 degree bent with at least 180W power going through it doesn’t sound right.