Continuing battery and voltage issues

Hi there!

On my Pocket Reform with RK3588, I am experiencing issues with batteries, and voltage. As suggested elsewhere in this community, I removed the batteries out of my Pocket Reform and fully charged them, in order to balance them. It seems like this did not solve my issue. Pocket Reform can’t run on battery power, it reboots with a screen burning in, also similar to how other reported here. When I use it plugged in to power, it usually works fine, but the battery indicator always shows random states, sometimes charging, sometimes discharging. And the OLED display also shows jumps in the voltage, between 0 and -1.40-ish numbers. Sometimes, on longer sessions, even when it’s plugged in to power, it shuts down too. I also realized that when rebooting, a burn in happens with the last messages staying on screen.

I tried to update the firmware to 20250724, but looks like I am still on 20250623.

These are the error messages I get:

Sep 08 10:31:12 eren-pocket-reform kernel: panel-mnt-pocket-reform fde30000.dsi.0: error -ENOENT: cannot get reset-gpios 0
Sep 08 10:31:12 eren-pocket-reform kernel: panel-mnt-pocket-reform fde30000.dsi.0: error -ENOENT: cannot get dcdc-en-gpio 0
Sep 08 10:31:12 eren-pocket-reform kernel: panel-mnt-pocket-reform fde30000.dsi.0: [mnt pocket reform display] read register 12a: 0x70
Sep 08 10:31:12 eren-pocket-reform systemd[1]: bpf-restrict-fs: Failed to load BPF object: No such process
Sep 08 10:31:12 eren-pocket-reform systemd-udevd[636]: /usr/lib/udev/rules.d/90-alsa-restore.rules:18 GOTO="alsa_restore_std" has no matching label, ignoring.
Sep 08 10:31:12 eren-pocket-reform systemd-udevd[636]: /usr/lib/udev/rules.d/90-alsa-restore.rules:22 GOTO="alsa_restore_std" has no matching label, ignoring.
Sep 08 10:31:12 eren-pocket-reform (udev-worker)[668]: 2-1.3: Failed to find and pin callout binary "/usr/lib/udev/mtp-probe": No such file or directory
Sep 08 10:31:13 eren-pocket-reform (udev-worker)[668]: 2-1.4: Failed to find and pin callout binary "/usr/lib/udev/mtp-probe": No such file or directory
Sep 08 10:31:13 eren-pocket-reform (udev-worker)[661]: 5-1: Failed to find and pin callout binary "/usr/lib/udev/mtp-probe": No such file or directory
Sep 08 10:31:13 eren-pocket-reform kernel: asoc-audio-graph-card analog-sound: ASoC: driver name too long 'rk3588-tlv320aic3100' -> 'rk3588-tlv320ai'
Sep 08 10:31:13 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:13 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:13 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:13 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:13 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:13 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:14 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:14 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:14 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:14 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:17 eren-pocket-reform kernel: tlv320aic31xx-codec 6-0018: aic31xx_wait_bits: Failed! 0x25 was 0x98 expected 0x0 (0, 0x8, 500000 us)
Sep 08 10:31:17 eren-pocket-reform kernel: tlv320aic31xx-codec 6-0018: ASoC: POST_PMD: DAC Right event failed: -1
Sep 08 10:31:17 eren-pocket-reform greetd[1327]: gkr-pam: unable to locate daemon control file
Sep 08 10:31:24 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:25 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:31:53 eren-pocket-reform (udev-worker)[2385]: 2-1.3: Failed to find and pin callout binary "/usr/lib/udev/mtp-probe": No such file or directory
Sep 08 10:31:54 eren-pocket-reform (udev-worker)[2385]: 2-1.3: Failed to find and pin callout binary "/usr/lib/udev/mtp-probe": No such file or directory
Sep 08 10:31:57 eren-pocket-reform (udev-worker)[2385]: 2-1.3: Failed to find and pin callout binary "/usr/lib/udev/mtp-probe": No such file or directory
Sep 08 10:31:58 eren-pocket-reform (udev-worker)[2385]: 2-1.3: Failed to find and pin callout binary "/usr/lib/udev/mtp-probe": No such file or directory
Sep 08 10:32:44 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:32:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:15 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:16 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:45 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:46 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16
Sep 08 10:33:46 eren-pocket-reform kernel: power_supply BAT0: driver failed to report `voltage_now' property: -16

Any help is appreciated!

1 Like

Hi, can you try using gnome-firmware and update System Controller and Keyboard to the newest version 20251001, and also update reform-tools via apt?

This seems to have fixed the issues! Battery charging/discharging state is also now displayed correctly. Thanks a lot @minute! :partying_face: EDIT: actually the problems persist, seemingly below 60% battery. :sob:

1 Like

About the charging/discharging state: it is reported maybe not exactly correct. Both swaybar and oled battery status reads charging, even on battery power (oled displays constant -0.05A on battery). But the abrupt shutdowns seem to have stopped. EDIT: Plugging and unplugging the charger cable made the Oled display stuck at -1.xxxA even on battery power. And the abrupt shutdowns started to happen again. ANOTHER EDIT: after a couple of reboots, the battery state and voltage seem to be reported correctly now. But I am not sure how often the wrong reporting happens, will continue using and observe!

I’d like to try this, but gnome-firmware under the “Problems” section says: “System power too low to perform upgrade”

@blipblub How did you get it to upgrade?

I was able to use gnome-firmware without issues.

After the update, it got less unstable overall, but still experiencing random reboots (with screen burn in) when the battery is below 70% charge.

I wanted to chime in and say I have the same random reboots with screen burnin at about 74%. I am up to date with the latest firmwares for system controller and keyboard firmware.

I have the RK3588 with the rcore v2. I’m hoping the v2 of the charging board can fix these issues.

1 Like

I think these reset issues will be mostly fixed by reform-power-daemon, which we’re going to release very soon.

Just to give an update, maybe it’s relevant: currently I am using my Pocket Reform with the charger board bypassed, only when plugged to power. I experienced two abrupt shut downs, during a bit longer sessions, while I was working on the Pocket Reform more than 2 hours or so. Just wanted to put this here in case it is a relevant info. Unfortunately not running the data logger, since the charger board is not connected anyway, but will do that once I receive my v2 board!

OK, that’s interesting. My theory would be that the charger momentarily stops to supply power because of USB-C PD renegotiation.

BTW everyone in this thread: we’ve released the first version of reform-power-daemon via an update for reform-tools, version 1.82 which is now in Debian (thanks @josch!).

To see if it does the right thing, run this command and unplug / replug the charger:

sudo journalctl -u reform-power-daemon -f

It should change the CPU and GPU governors depending on charging or discharing state. Also, it might be necessary to uninstall tuned* and power-profiles-daemon is present until we have a clean integration with these daemons.

(And yes, there’s a silly but harmless mistake in the beginning of the script where it checks the FW version numbers, will be fixed ASAP).

3 Likes

The problem was a shell pipeline involving a call to jq which was copied from reform-check. The call to jq did not have the -r parameter which made reform-check as well as reform-power-daemon buggy. This is now fixed in git. The pipeline is running and the results should be present in the MNT Debian repositories in about an hour from the time I’m writing this. Apologies for the issue. The bug was initially created by me and I suggested to minute to just copy the same line for reform-power-daemon.

2 Likes

My pocket has some issues that I think are related to this post.

  • system controller may shows current (amps) and combined voltage as zero. Sometimes when that happens the computer reboots in loop. I can solve this by attaching a charger, then somehow it starts tracking the real current and also stops rebooting.
  • Other times, I find current (amps) and combined voltage stuck on a value. For example, it having a negative value (thus charging), and /sys/chass/power_supply/BAT0/status has “Charging”, but it is actually stuck with these values even if I disconnect the charger. The battery charge percent seems to give the real value though. If I reattach the charger it starts tracking again correctly the current.

Hope this helps.

2 Likes

It sounds like you can reproduce this somewhat reliably. Can you post sysctl logs when the second problem appears? I want to rule out communication issues between Linux and sysctl, vs. a sysctl internal problem.

Talked a bit on irc, for reference:

  1. Computer starts: sysctl shows aggregated voltage and current (as expected)
  2. Attach charger: current goes negative (as expected).
  3. Disconnect charger: current and voltage show zeroes (0.000A 0.00V).
  4. Connect charger: current and voltage show real values.
  5. Disconnect charger: current and voltage show zeroes (0.000A 0.00V).

This log file shows what happened after point 3 (it starts with zeroes, shows charger connection and shows charger disconnection).

https://file.amospalla.es/misc/pocket_reform_sysctl_battery.txt

Dumb power source 5V 1A, connect and disconnect:

https://file.amospalla.es/misc/pocket_reform_sysctl_battery2.txt

1 Like

After some more IRC talk: resetting sysctl has fixed this part.

2 Likes

Does reform-power-daemon perform as expected with no battery installed? I’m currently waiting on a charger 2 board, after my charger 1 went pop, and haven’t dared run an apt upgrade for a few weeks until the new board arrives.

Good question, but it shouldn’t do much with no battery installed.