Battery stuck at 99% - /sys/class/power_supply/BAT1/charge_now stuck

Hello everyone,

I am running Ubuntu 24.04 - 6.11.0-21-generic.

When I do a full re-charge and then disconnect the power, the battery indication does not shows the discharge, right now is stuck at 99%.

I’ve checked

sys/class/power_supply/BAT1/charge_now

And the output is always the same, it doesn’t change has been hours now. Restarting or shutting down doesn’t fix it.
The only way I found has been to go in Bios and disable the battery, then re-connecting power and the battery showed discharge again.

Any help would be appreciated,

Thanks

Can you check $ upower -i $(upower -e | grep battery) and get a voltage and power readings?

Eventually I had to re-do the original work around and disconnect the battery so now I can see the power draining

❯ upower -i $(upower -e | grep battery)
  native-path:          BAT1
  vendor:               NVT
  model:                FRANDBA
  serial:               00DB
  power supply:         yes
  updated:              lun 7 apr 2025, 20:26:24 (18 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               discharging
    warning-level:       none
    energy:              19,5203 Wh
    energy-empty:        0 Wh
    energy-full:         55,2017 Wh
    energy-full-design:  85,0007 Wh
    energy-rate:         15,3562 W
    voltage:             14,658 V
    charge-cycles:       104
    time to empty:       1,3 hours
    percentage:          35%
    capacity:            64,9426%
    technology:          lithium-ion
    icon-name:          'battery-good-symbolic'
  History (charge):
    1744050324	35,000	discharging
    1744050290	36,000	discharging
    1744050290	0,000	unknown
  History (rate):
    1744050384	15,356	discharging
    1744050354	18,282	discharging
    1744050324	20,604	discharging
    1744050295	22,709	discharging
    1744050290	0,000	unknown

I will update after I connect it to the AC to see if it happens again.

If it happens again I’d make sure upower is running and check its logs:

systemctl status upower and journalctl -u upower

So is happening again. I just left the laptop on AC reached 98%, now unplugged, I see no sign of discharging.

❯ systemctl status upower
● upower.service - Daemon for power management
    Loaded: loaded (/usr/lib/systemd/system/upower.service; disabled; preset: enabled)
    Active: active (running) since Mon 2025-04-07 23:39:40 CEST; 1min 59s ago
      Docs: man:upowerd(8)
  Main PID: 9353 (upowerd)
     Tasks: 4 (limit: 74290)
    Memory: 4.2M (peak: 5.3M)
       CPU: 110ms
    CGroup: /system.slice/upower.service
            └─9353 /usr/libexec/upowerd

apr 07 23:39:40 jack-framework.16 systemd[1]: Starting upower.service - Daemon for power>
apr 07 23:39:40 jack-framework.16 systemd[1]: Started upower.service - Daemon for power >
lines 1-13/13 (END)

❯ journalctl -u upower

-- Boot cb231adbbb3b46a1ba6a67ed9b5e98b7 --
apr 07 20:24:50 jack-framework.16 systemd[1]: Starting upower.service - Daemon for power>
apr 07 20:24:50 jack-framework.16 systemd[1]: Started upower.service - Daemon for power >
apr 07 22:19:41 jack-framework.16 systemd[1]: Stopping upower.service - Daemon for power>
apr 07 22:19:41 jack-framework.16 systemd[1]: upower.service: Deactivated successfully.
apr 07 22:19:41 jack-framework.16 systemd[1]: Stopped upower.service - Daemon for power >
-- Boot 36a16bb4f84a45c2b0057dae99c4cf41 --
apr 07 23:29:30 jack-framework.16 systemd[1]: Starting upower.service - Daemon for power>
apr 07 23:29:30 jack-framework.16 systemd[1]: Started upower.service - Daemon for power >
apr 07 23:39:40 jack-framework.16 systemd[1]: Stopping upower.service - Daemon for power>
apr 07 23:39:40 jack-framework.16 systemd[1]: upower.service: Deactivated successfully.
apr 07 23:39:40 jack-framework.16 systemd[1]: Stopped upower.service - Daemon for power >
apr 07 23:39:40 jack-framework.16 systemd[1]: Starting upower.service - Daemon for power>
apr 07 23:39:40 jack-framework.16 systemd[1]: Started upower.service - Daemon for power 

Also notice, those are from charge_now in a span of 10 minutes, I mean those number should go down by the second and it stays the same

❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000
❯ cat /sys/class/power_supply/BAT1/charge_now
3528000

Also, here is showing state: discharging but the % doesn’t change.

❯ upower -i $(upower -e | grep battery)
  native-path:          BAT1
  vendor:               NVT
  model:                FRANDBA
  serial:               00DB
  power supply:         yes
  updated:              lun 7 apr 2025, 23:49:58 (30 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               discharging
    warning-level:       none
    energy:              53,9942 Wh
    energy-empty:        0 Wh
    energy-full:         54,5515 Wh
    energy-full-design:  85,0007 Wh
    energy-rate:         12,028 W
    voltage:             17,017 V
    charge-cycles:       104
    time to empty:       4,5 hours
    percentage:          98%
    capacity:            64,1777%
    technology:          lithium-ion
    icon-name:          'battery-full-symbolic'
  History (rate):
    1744062598	12,028	discharging
    1744062597	12,183	discharging
    1744062588	14,009	discharging
    1744062558	11,858	discharging
    1744062528	14,582	discharging

I am really clueless on whats going on.

Thank you for the support!

Well that is interesting; what BIOS are you running?

The battery appears to be “degraded” to 55Wh, which is really weird. I think there’s a bug in the battery management system (BMS) that the coulomb meter is way off. The battery also shouldn’t be only 17.017V at 98%. I suggest you left the laptop with AC for several hours and see if the 98% becomes 100%, if that doesn’t work and the capacity is still at 64%/54.5Wh, contact support and have the battery replaced

1 Like

A full discharge may also help snap the bms/culoumb counter out of whatever it is doing at this point.

1 Like

Thank you all,

BIOS is 3.05

I will try leaving the laptop unplugged until it dies, I will keep you posted.

Thank you

2 Likes

Update:

All of the sudden I can see discharge now, from 98% to 79% and going down

❯ upower -i $(upower -e | grep battery)
  native-path:          BAT1
  vendor:               NVT
  model:                FRANDBA
  serial:               00DB
  power supply:         yes
  updated:              mar 8 apr 2025, 11:41:59 (25 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               discharging
    warning-level:       none
    energy:              45,0158 Wh
    energy-empty:        0 Wh
    energy-full:         56,1305 Wh
    energy-full-design:  85,0007 Wh
    energy-rate:         15,6038 W
    voltage:             15,219 V
    charge-cycles:       104
    time to empty:       2,9 hours
    percentage:          80%
    capacity:            66,0353%
    technology:          lithium-ion
    icon-name:          'battery-full-symbolic'
  History (rate):
    1744105319	15,604	discharging
    1744105289	18,715	discharging
    1744105259	15,434	discharging

Ironically the

energy-full:         55,2017 Wh

Is higher now then when the percentage was at 98%.

Also charge_now is actually showing a decrease

❯ cat charge_now
2825000
❯ cat charge_now
2824000
❯ cat charge_now
2824000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2823000
❯ cat charge_now
2822000
❯ cat charge_now
2822000
❯ cat charge_now
2822000
❯ cat charge_now
2822000
❯ cat charge_now
2822000
❯ cat charge_now
2822000

I will still let the laptop running until it turns off.

1 Like

For extra effect keep trying to turn it on after that until it doesn’t and then plug it in.

Yep, I follow the advice Laptop died and I’ve tried to turn it on until it was completely not responsive.
Now is charging, but I must say the energy-full stat still seems way of, is like I lost 35% of my full battery capacity and after just 100 cycles it doesn’t seem right.

❯ upower -i $(upower -e | grep battery)
  native-path:          BAT1
  vendor:               NVT
  model:                FRANDBA
  serial:               00DB
  power supply:         yes
  updated:              mar 8 apr 2025, 14:34:22 (30 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               charging
    warning-level:       none
    energy:              5,418 Wh
    energy-empty:        0 Wh
    energy-full:         54,7218 Wh
    energy-full-design:  85,0007 Wh
    energy-rate:         85,7592 W
    voltage:             16,26 V
    charge-cycles:       105
    time to full:        34,5 minutes
    percentage:          9%
    capacity:            64,3781%
    technology:          lithium-ion
    icon-name:          'battery-caution-charging-symbolic'
  History (charge):
    1744115662	9,000	charging
    1744115638	8,000	charging
    1744115608	7,000	charging
  History (rate):
    1744115662	85,759	charging
    1744115638	85,682	charging
    1744115608	85,186	charging

Do you think I should keep it on the AC and wait to see if I get to 100%? I am very keen to write to support and ask for a replacement.

After it is fully charged (and getting to actually 100% may take a while with a confused bms) you should have better data.

If those 35% were real that would be pretty bad and imo rma worthy.

Edit:

Since you already started this exercise it may be worth finishing it. Full discharge is only half of the process.

I think the BMS might be correct. It’s possible that one of the four cells is broken so the BMS has to lower the capacity and the voltage drastically to prevent that cell from causing harm.

If one of the cells was gone there is no way in hell it would put 84W into that battery. With damage that bad the bms would just blow the suicide fuse.

But hey we’ll see relatively soon if the bms recovers

Hey, so I got to 100%, in like 3 hours and it seems BMS did snapped off of whatever was going on

❯ upower -i $(upower -e | grep battery)
  native-path:          BAT1
  vendor:               NVT
  model:                FRANDBA
  serial:               00DB
  power supply:         yes
  updated:              mar 8 apr 2025, 17:07:51 (6 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               fully-charged
    warning-level:       none
    energy:              81,5332 Wh
    energy-empty:        0 Wh
    energy-full:         81,5332 Wh
    energy-full-design:  85,0007 Wh
    energy-rate:         0 W
    voltage:             17,55 V
    charge-cycles:       105
    percentage:          100%
    capacity:            95,9206%
    technology:          lithium-ion
    icon-name:          'battery-full-charged-symbolic'
  History (charge):
    1744124780	100,000	discharging
  History (rate):
    1744124841	0,000	fully-charged
    1744124811	0,170	discharging
    1744124781	1,378	discharging
    1744124780	1,486	discharging

Those number make way more sense now!
I am still connected to the AC now, so I will test if I can see the discharging now, but I guess the battery is not busted!

One question tough: was this caused by me by incompetence, like is there something I can do to prevent it? I was thinking maybe a full discharge/charge once every couple of month.

let’s goooo

I kind of doubt it is your fault.

If you want somewhat accurate data from the bms it needs to see both ends of the range from time to time otherwise it’ll drift over time. Though this is one of the more extreme cases of that I have sen so far so not sure if that was just normal drift.

Thank you so much for the support!

The energy is mostly recovered should be all good.

nitpicking

voltage: 17,55 V
The voltage is too low. The 85Wh has a limited charging voltage of 17.8V, when fully charged the voltage should be around 17.76~17.78V

I found that it kinds of calibrating itself when kept at a fixed percentage for a while. If you discharge to a low level like 20% and leave it alone for a day or so, then charge to a higher level like 75% and leave it alone again. The battery % and battery health change.
When I gamed to 10% the health went down, then I charged it and browsed the web to 10%, left overnight and the health went back again. But I agree that full discharge and recharge is the way to go if the columb counter is far off.

Modern bmses certainly can be quite smart and should be able to mitigate the worst of the drift but the data is never going to be as good as when you hit the actual limits.

Since I set my charge limit to less than 100% my battery has been creeping above 100% health XD.