Mudi 7 battery percentage on LCD/web UI stays at 100 % for hours after unplugging — is this expected?

Hi,

Logging a finding from a few weeks of using a Mudi 7 (E5800) with last firmware:

When I unplug the charger from a freshly-charged unit and let it sit on battery, the LCD on the case and the web UI both stay at 100 % for what looks like 1–3 hours, then drop fairly quickly to track the actual charge. During that window, the kernel fuel-gauge driver in /sys/class/power_supply/<battery>/capacity correctly decreases (I measured 100 → 88 % over 1 h 37 min under ~1.5 W load).

So the cell IS losing charge, the chip on the board knows it, but the MCU layer that feeds the LCD and the web UI smooths it to "still 100 %" until enough has passed. Voltage / current / temperature numbers all agree with the fuel-gauge that it's a real discharge — not a sensor glitch.

Couple of questions for GL.iNet (and the wider community in case anyone has already dug into this):

  1. Is the headroom hold intentional? I assume yes — most users probably appreciate that "freshly charged" stays at 100 for a while instead of instantly flipping to 98. Just want to confirm before filing a bug.

  2. What's the trigger that releases the hold? A fixed timer, a voltage_now threshold, or a delta between the MCU's estimate and the fuel-gauge?

  3. Is there a documented way to read the unsmoothed value from outside the kernel sysfs path? I'd love a field on ubus call mcu status (something like charge_percent_raw) so third-party tools don't have to special-case the sysfs path that differs across firmware generations.

Sharing this writeup in case other people noticed the same discrepancy and were wondering whether their battery was sick. It isn't — it's just the MCU being polite at the top of the curve. The cell behaves exactly as advertised; only the displayed percentage lags.

Sample logs:

MCU=100%  sysfs=100%  V=4.392  I=  -45 mA   <- unplug
MCU=100%  sysfs= 99%  V=4.378  I= -432 mA
MCU=100%  sysfs= 97%  V=4.350  I= -451 mA
MCU=100%  sysfs= 94%  V=4.305  I= -460 mA
...
MCU=100%  sysfs= 88%  V=4.220  I= -461 mA   <- T+1h37m

For anyone interested in the raw value: my companion app exposes both readings and a toggle to flip between them.

2 Likes

having the same issue with my Mudi 7 - the battery level displayed in the screen and the UI isn't accurate. I haven't poked around in the kernel yet, but I can corroborate that the battery display is inaccurate.

edit:
I pulled some screenshots from my Mudi:

since i'm a new user I can't post more than one embedded image, but here's an actual photo of the router I took at thte same time to show that the battery level shows 100% in the display but the system shows it at 97%

@bruce @will.qiu