Framework Laptop 13 Ryzen 7040 BIOS 3.09 Release BETA

NOTE: Once you update to 3.09, you cannot downgrade to 3.05 or the version earlier than 3.05.

Highlights

  1. Fixed the battery extender setting overwritten battery charge limit on boot.
  2. Fixed battery charging limit is reset by the battery extender reset timer.

You can check your current BIOS version following the steps here to determine if you are on the latest release.

After the beta release, we will monitor community feedback, and publish this release to our stable release channel after approximately one week if no major issues are reported.

Subscribing to release notifications

If you want to subscribe to new release notifications you can now opt in through this link to receive an email when we release a new BIOS or driver update for your Framework Laptop.

Battery Extender functionality

With the high energy density on the 61Wh battery, leaving it at 100% state of charge for an extended period of time can shorten the lifetime of the battery. To prevent this, we have added a new feature that automatically limits the maximum state of charge if the system is left plugged into power for more than 5 days. The timer is reset after the system is disconnected from a power adapter for more than 30 minutes.

Battery Extender Duration Battery State of Charge
0-5< Days 99% → 100%
5-7 Days 90% → 95%
>7+ Days 85% → 87%

This functionality also reduces cycling of the battery by allowing the battery to discharge by several percent before charging again. Note that in addition to this automatic setting, you can also manually set a lower charge limit on your battery in BIOS to further preserve battery longevity.

This feature can be disabled or enabled in the BIOS Advanced menu.

Battery Extender: This option is enabled by default. If disabled, the system will always keep the battery fully charged.

Battery Extender Trigger: This option sets the number of days that must pass before the battery state of charge is reduced automatically to extend the battery life.

Battery Extender Reset: This option sets the number of minutes that the system is running on battery before the extender is reset, causing the system to charge to 100% when attached to power again.

Battery Charge Limit Functionality

This release modifies the battery charge limit functionality to add a 5% float range. This allows us to reduce the number of microcycles on the battery when the CPU turbos.
Previously to the change in 3.07, the battery would be held at the target state of charge, so if a large power draw happened for a short time, such as when the CPU turbos, the battery would drain slightly and then charge again.
Introduced in this version, the battery will not start to charge until the battery has dropped 5% below the charge limit.

As an example, if the user sets the battery charge limit to 80%, the battery will maintain a state of charge between 80% and 75%. And will not charge up to 80% until it has discharged to 75% while the system is on.

If this is activated while the battery state of charge is above the limit, the battery will discharge without drawing power from the adapter until the upper limit is reached.

Downloads

Windows

Download Link SHA256
Framework_Laptop_13_Ryzen7040_BIOS_3.09.exe 23C7D8023E92A61449D6D7486B431427C541455A77B3A62205E3A756EA393102

Instructions for Windows Installer:

  1. Run the .exe.
  2. Click yes to reboot.
  3. Wait for the firmware progress bar to complete, and then the system will reboot.
  4. If you are updating a system in standalone mode, please pay careful attention to the standalone update process below.

Please note that you must update with a charger attached.

Linux/LVFS

Updating via LVFS is available in the testing channel during the beta period.

You can enable updates from testing by running

fwupdmgr enable-remote lvfs-testing

Please note that you must update with a charger attached, then run:

fwupdmgr refresh --force

then

fwupdmgr get-updates

then

fwupdmgr update

Please note that you must update with a charger attached.

LVFS may not update if the battery is 100% charged. LVFS uses the battery status to determine if it is safe to apply updates. However if our battery is at 100% and the charger is off, we set the battery charging status to false. In this case you can discharge your battery a few percent, then plug in AC again and run fwupdmgr update.

Linux/Other/UEFI Shell update

Download Link SHA256
Framework_Laptop_13_Ryzen7040_BIOS_3.09_efi.zip 46B2D3AFFA14ACB88AD7C99A2E2CAF8C874742D62009AD199BC01C0D41FC1132

Note that if you use the EFI shell update with Windows, you should suspend Bitlocker if enabled before updating using the EFI updater.

Instructions for EFI shell update:

  1. Extract contents of zip folder to a FAT32 formatted USB drive. Cleanly unmount the drive before physically removing it, otherwise the BIOS update may not function correctly.
  2. Attach a charger to your device while updating.
  3. Boot your system while pressing F12 and boot from the thumb drive.
  4. Let startup.nsh run automatically.
  5. Follow the instructions to install the update.

Updating a Mainboard outside of a laptop

This release supports standalone updates without a battery attached. After rebooting, please follow the onscreen instructions to update your BIOS when in standalone mode, which will require moving the power source between both sides of the Mainboard to allow PD firmware to update correctly.

Please note that the power and display output must be connected to the same side during standalone updates. Failure to do this may result in no display output during the update process.

We recommend the following update flow for standalone updates:

Part 1

Ensure that standalone operation is enabled in the bios advanced setup menu.

Display connected to upper left port.
Power connected to the lower left port.
Run the updater from EFI/Windows updater.

After rebooting into the updater the update will commence:

The updater will update the BIOS and EC.

The Updater will update the PD controller that is not connected to the power source.

You will see one PD controller will fail the update with the X, and “update complete” is displayed, but the bios will restart.

Part 2

At this screen, the bios update will stop. You must disconnect the display and power source, and move them to the other side.
The display should be connected to the top right.
Power should be connected to the bottom right.

Press the power button, and the second PD update will complete.

After this, the system will reboot, and your bios update is complete.

Security Fixes

Module Name Vulnerability Score
N/A N/A N/A

Enhancements

Fixes

  1. Fixed the battery extender setting overwritten battery charge limit on boot.
  2. Fixed battery charging limit is reset by battery extender reset timer.

Component Versions

This BIOS update is a bundle of updates to multiple embedded components in the system.

Not all of them use the same version number.

Firmware Version Update?
BIOS 3.09 Updated
EC ec_309_c25de Updated
PD 0.0.1C Same
AMD PI 1.1.0.3 Same

Reporting Issues

To report issues we have created a public issue tracker on github. GitHub · Where software is built We hope that this is a better way to track issues with community involvement moving forward as we have found it difficult to both gather relevant information about issues people are reporting on the forums, and track the issues through their lifecycle in a transparent way.
If you do experience an issue with the update that is related to your system firmware, please post as complete a description as you can, including relevant system information, and external peripherals. Please note that we do not currently have a SLA for responding to issues on github, but we will be reviewing them through the bios release process, and will review them for future updates as well.

If you have an issue regarding hardware, broken devices, returns, etc, this is not the place, please contact support.

Known Issues

  • BIOS display output may not show up in standalone mode when booting the first time. To work around this issue we suggest booting into the OS and then restarting and pressing F2 to enter the setup menu.
  • When updating in standalone mode, there may be no display output after updating one side’s PD firmware. Suggest connecting power and display on the same side when performing a BIOS update in standalone mode.
  • Connecting with iPhones over type-c may be unstable.
16 Likes

:clap: :clap: :clap:

3 Likes

Doesn’t seem to be available in lvfs-testing yet

It installed okay for me in Windows 11 24H2.
I will come back here and report if anything seems wrong to me. (Currently I have battery extender off, charge limit 75%).

1 Like

This seems dumb to me. If I set the battery to charge to 75% then I expect to find it charge to a value very close to 75% whenever I check. Not to some value as much as 5% different.

Is this just because some people didn’t like seeing the light on the side changing between orange and white too often? How about a solution using timers? Maybe the LED shouldn’t change colour until the system has consistantly stayed in a different state (charging or charged) for some carefully chosen length of time, like maybe 2 minutes?

I’m sure some folks wouldn’t like to see the battery cycling constantly between charing and not, but I think the main reason for doing this is that it’s harder on the battery to have it frequently cycle between charging and discharging.

4 Likes

fwupdmgr finds no update following instructions at the top of the thread.

But today it worked.

If it works as intended, it is precicesly what’s needed (and other laptops, including thinkpads, enable/do). That’s because:

  • The battery recalibrates itself frequently, so the reported charge can move in either direction. If you haven’t already, go through that thread, especially the most recent half of it, it’s very informative.
  • It’s preferable to keep the battery idle (not charging or discharging) as much as possible. If the machine is plugged into an adapter that provides enough power, let’s let the battery slooooooowly discharge (self discharge) which should be days per 1% of charge.
4 Likes

@Quin_Chou
I am curious about a little clarification regarding how the battery extender is supposed to behave.
If your battery is fully charged at 100% with the battery limit set to 100%, if left fully charged, it can damage the battery, so one would want the battery to discharge itself to say 90%.

What is supposed to happen if the battery currently has a 80% charge? Its not at 100%, so not going to damage the battery. In this use-case, what happens. It seems to me, that if the battery is at 80% charge, the battery extender should not trigger at all, because its not providing any benefit.

So, the clarification question is:
If the current battery charge is 80%, is the battery extender supposed to trigger, or is it not supposed to trigger at all?

1 Like

I don’t see why it would be. If it discharges 1% and recharges by that 1% five times, then that would equate to the same wear as (or maybe even a tiny bit less than) discharging by the whole 5% and then charging by that 5%. Same for discharging 0.1% fifty times, and so on.

It recalibrates just when the charge level changes a few percent? That seems pretty dumb. There isn’t a hope in hell of making much of a valid assessment of the battery state with such a small change to the battery level.
That’s why one is often told to occasionally let a battery discharge almost completely before then recharging it to 100%, so that the BMS can accurately re-asses it’s capacity.

This is still not available from lvfs-testing or has someone managed to update to this from LVFS?

that’s not quite correct because wear isn’t the same across the battery percentage during charging, the higher the battery percentage the higher the wear, charging the battery at 75% provides less wear than charging the battery at 80%, so a bunching of charging cycles near 80% can cause more total wear than discharging to 75% and then charging back up to 80% because in the first scenario the battery spends more time being charged at the higher percentage

3 Likes

LVFS is ready for download.

2 Likes

Hmm still not seeing it via fwupdmgr after enabling lvfs-testing

1 Like

The charge limit I set depends, to a considerable extent, on how low an amount of charge I can accept. Therefore, if setting a limit meant it would only do tiny cycles (<= 1%) I would set a limit of 70%. But if it would do big 5% cycles I would set 75% to make sure it’s never going to be under 70%.

You can set the range yourself.
sudo ectool chargecontrol normal <lower> <upper>
Where the lower and upper are in integer percent.

1 Like

Was the ChromeOS charge control support removed?
I can’t seem to be able to set the charge limits anymore from Linux using the cros_charge-control driver anymore. It was working on 3.08.

Showed up here after a refresh
$ fwupdmgr refresh # may need the --force option if you'fe refreshed too recently
Updating lvfs-testing
Downloading…             [***************************************]
Updating lvfs
Downloading…             [ -                                     ]
Successfully downloaded new metadata: 3 local devices supported
$ fwupdmgr get-updates 
Devices with no available firmware updates: 
 • SSD 990 PRO 2TB
 • TPS DMC Family
 • TPS6598X PD#0
 • TPS6598X PD#1
 • USB3.0 Hub
Devices with the latest available firmware version:
 • Fingerprint Sensor
 • UEFI dbx
Framework Laptop 13 (AMD Ryzen 7040Series)
│
└─System Firmware:
  │   Device ID:          1e4fa9cea0b89e613370cf9657ffa0b6d3f37fec
  │   Summary:            UEFI System Resource Table device (Updated via capsule-on-disk)
  │   Current version:    0.0.3.5
  │   Minimum Version:    0.0.0.1
  │   Vendor:             Framework (DMI:INSYDE Corp.)
  │   Update State:       Success
  │   GUID:               b5f7dcc1-568c-50f8-a4dd-e39d1f93fda1
  │   Device Flags:       • Internal device
  │                       • Updatable
  │                       • System requires external power source
  │                       • Supported on remote server
  │                       • Needs a reboot after installation
  │                       • Cryptographic hash verification is available
  │                       • Device is usable for the duration of the update
  │   Device Requests:    • Message
  │ 
  ├─Laptop 13 AMD Ryzen 7040 System Update:
  │     New version:      0.0.3.9
  │     Remote ID:        lvfs-testing
  │     Release ID:       111845
  │     Summary:          Framework Laptop 13 System Firmware for AMD Ryzen 7040 Mainboards
  │     License:          Proprietary
  │     Size:             36.1 MB
  │     Created:          2025-04-22
  │     Urgency:          High
  │     Tested by Framework:
  │       Tested:         2025-04-23
  │       Distribution:   fedora 41 (workstation)
  │       Old version:    0.0.3.9
  │       Version[fwupd]: 1.9.29
  │     Vendor:           Framework
  │     Duration:         2 minutes
  │     Release Flags:    • Trusted metadata
  │                       • Is upgrade
  │                       • Tested by trusted vendor
  │     Description:      
  │     This firmware update includes the following changes:
  │     
  │     • Fixed battery charging limitation cannot work when battery extender function disabled.
  │     • Fixed battery charging limit is reset by battery extender reset timer.
  │     Checksum:         9a9b6b23623227b1a2b5906030de4a1c08990ef3b57a65df101dab6ea4169b47
  │   
  ├─Laptop 13 AMD Ryzen 7040 System Update:
  │     New version:      0.0.3.8
...
1 Like

I guess my pull earlier was stale
All good now