Battery charging thresholds not working as expected?

System Details

  • Device: Morphius
  • OS: Windows
  • Firmware Type: UEFI Full ROM
  • Firmware Version: 2609
  • Internal storage type: NVMe

Summary of the Issue

Charging threshold allows the battery to discharge once the upper threshold is reached

Steps to Reproduce

  1. Set upper threshold in UEFI settings

  2. Charge to threshold

  3. Battery will discharge

Expected Behavior

  1. Charge up to the upper limit
  2. Run off mains entirely so the battery remains at the upper limit
  3. If the battery is below the lower threshold due to being used unplugged, start charging again.

Example

With upper set to 80% and lower set to 70% (hypothetically, the menu only shows 0,10,20)

  • Plug in > Charge to 80%
  • Use on battery until it reaches 65%
  • Plug in > Charge to 80%
  • Use on battery until it reaches 75%
  • Plug in > Do not charge, run off mains

This is the behavior that I get when using other systems with a charging threshold.

Thanks for the report – you’re right, this is an EC firmware bug in Google’s initial implementation (since fixed on newer boards). When the battery went above the max charge limit, the EC switched into an active-discharge mode and stayed there until the battery fell below the min limit, so on AC it would drain all the way down (e.g. 80% → 20%) before charging again.

This is now fixed with updated ECRW firmware: the EC now charges up to the max limit and then holds there, with the system running from AC. It only discharges if the battery is above the max, such as right after you lower the limit, and it resumes charging if the battery drops below the min.

please flash and test / confirm the fix

link removed

I flashed and tried testing, but the battery decided to recalibrate itself while I was discharging and charging. It jumped from 30% to 5% then from 71% to 100% despite 80% being set as the max limit.

It discharged itself down to 80% after this and didn’t discharge under 80%, which suggests it’s working better, but I’ll give it another try without calibration interfering.

Upper limit works as intended, but the lower limit seems to be ignored. With the lower limit set to 20%, I discharged to 30%, plugged in and it began charging the battery

fixed. I was mirroring Google’s behavior, that’s just how they do it.

edit: link removed

I can confirm both the upper and lower limits work correct now. Thanks!

Could you add more control for the upper/lower limits? It only has options for 0/10/20 and 80/90/100 for the limits. For example, I’d like to be able to set it to 40/50 for predominantly AC usage.

already done, guess it wasn’t in that build

coreboot_edk2-morphius-mrchromebox_20260928.zip (3.2 MB)

this fix will be in 2609.1 for all devices.

1 Like