Power bank with higher output not working?

I just picked up a new USB power bank for use with my Pocket: an Anker Nano Power Bank (30W, Built-in USB-C Cable)

These are its output specs:

USB-C Cable: 30W Max (5V⎓3A / 9V⎓3A / 10V⎓2.25A / 12V⎓2.5A / 15V⎓2A / 20V⎓1.5A)
USB-C: 30W Max (5V⎓3A / 9V⎓3A / 10V⎓2.25A / 12V⎓2.5A / 15V⎓2A / 20V⎓1.5A)
USB-A: 22.5W Max (5V⎓3A / 9V⎓2A / 10V⎓2.25A / 12V⎓1.5A)

I had expected it to work fine because the one I used previously and that worked quite well (an Anker 20000PD, charging at 7.47V and 2A) had much lower specs:

PD Output
 5V 3A, 9V 2A, 15V 1.2A

But for some reason, the new one doesn’t charge the Pocket at all, both while booted and in standby.

Here’s the output of sudo cat /dev/ttyACM0 for connecting both

Anker 20000PD:

# [spi] exec: 'q' 0x00

# [spi] init_spi_client done

# [pd] PD_STATE_UNATTACHED -> SNK CC1, going to PD_STATE_UNATTACHED_SNK

[pd] PD_STATE_UNATTACHED_SNK enable pulldown, measure, power; measure=0x47

# [pd] PD_STATE_UNATTACHED_SNK using cc1 to go to PD_STATE_ATTACHED_SNK

# [keyboard] exec: c 65535

# [pd] state PD_STATE_ATTACHED_SNK FUSB_INTERRUPT_I_VBUSOK detach 

# [pd] PD_STATE_SETUP

# [pd] PD_STATE_SETUP done, going to PD_STATE_UNATTACHED

# [pd] PD_STATE_UNATTACHED -> SNK CC1, going to PD_STATE_UNATTACHED_SNK

[pd] PD_STATE_UNATTACHED_SNK enable pulldown, measure, power; measure=0x47

# [pd] PD_STATE_UNATTACHED_SNK using cc1 to go to PD_STATE_ATTACHED_SNK

# [fusb] rxb 0xe0 msgtype 0x01 msgid 0 role SRC numobj 2 size 8

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x1 msgrole: 1 numobj: 2

[pd_src_fixed_pdo]

	number = 1

	dual_role_pwr = 1

	unconstrained_pwr = 1

	dual_role_data = 1

	unchunked_ext_msg = 1

	v = 5.00

	i_a: 3.00

[pd_src_fixed_pdo]

	number = 2

	v = 9.00

	i_a: 2.22

# [pd] discarding further messages

# [pd] requesting PO 2, 9 V

# [fusb] rxb 0xe0 msgtype 0x01 msgid 6 role SRC numobj 0 size 0

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x1 msgrole: 1 numobj: 0

# [fusb] rxb 0xe0 msgtype 0x03 msgid 1 role SRC numobj 0 size 0

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x3 msgrole: 1 numobj: 0

# [pd] charger accepted our requested PDO.

# [fusb] rxb 0xe0 msgtype 0x06 msgid 2 role SRC numobj 0 size 0

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x6 msgrole: 1 numobj: 0

# [pd] power supply ready.

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# ON AC CHG chg=2 mps_flt=00 input=8400mV@2018mA charge=812mA discharge=0mA p=10.25W ttempty=6143min

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# ON AC CHG chg=2 mps_flt=00 input=8400mV@2000mA charge=725mA discharge=0mA p=10.62W ttempty=6143min

# [keyboard] exec: c 65535

Anker Nano:

# [keyboard] exec: c 65535

# [pd] PD_STATE_UNATTACHED -> SNK CC1, going to PD_STATE_UNATTACHED_SNK

[pd] PD_STATE_UNATTACHED_SNK enable pulldown, measure, power; measure=0x47

# [pd] PD_STATE_UNATTACHED_SNK using cc1 to go to PD_STATE_ATTACHED_SNK

# [pd] state PD_STATE_ATTACHED_SNK FUSB_INTERRUPT_I_VBUSOK detach 

# [pd] PD_STATE_SETUP

# [pd] PD_STATE_SETUP done, going to PD_STATE_UNATTACHED

# [pd] PD_STATE_UNATTACHED -> SNK CC1, going to PD_STATE_UNATTACHED_SNK

[pd] PD_STATE_UNATTACHED_SNK enable pulldown, measure, power; measure=0x47

# [pd] PD_STATE_UNATTACHED_SNK using cc1 to go to PD_STATE_ATTACHED_SNK

# [fusb] rxb 0xe0 msgtype 0x01 msgid 0 role SRC numobj 6 size 24

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x1 msgrole: 1 numobj: 6

[pd_src_fixed_pdo]

	number = 1

	dual_role_pwr = 1

	unconstrained_pwr = 1

	v = 5.00

	i_a: 3.00

[pd_src_fixed_pdo]

	number = 2

	v = 9.00

	i_a: 3.00

[pd_src_fixed_pdo]

	number = 3

	v = 12.00

	i_a: 2.50

[pd_src_fixed_pdo]

	number = 4

	v = 15.00

	i_a: 2.00

[pd_src_fixed_pdo]

	number = 5

	v = 20.00

	i_a: 1.50

# [pd] PD_STATE_ATTACHED_SNK not a fixed PDO: 0xc0dc2137

# [pd] discarding further messages

# [pd] requesting PO 5, 20 V

# [fusb] rxb 0xe0 msgtype 0x01 msgid 3 role SRC numobj 0 size 0

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x1 msgrole: 1 numobj: 0

# [fusb] rxb 0xe0 msgtype 0x04 msgid 1 role SRC numobj 0 size 0

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x4 msgrole: 1 numobj: 0

# [pd] msg type: 0x4 numobj: 0

# [fusb] rxb 0xe0 msgtype 0x01 msgid 0 role SRC numobj 0 size 0

# [pd] PD_STATE_ATTACHED_SNK: charger responds msg type: 0x1 msgrole: 1 numobj: 0

# [keyboard] exec: c 65535

# ON AC  chg=0 mps_flt=00 input=5075mV@62mA charge=0mA discharge=800mA p=6.50W ttempty=166min

# [keyboard] exec: c 65535

# [spi] exec: 'q' 0x00

# [spi] init_spi_client done

# [keyboard] exec: c 65535

# [spi] exec: 'q' 0x00

# [spi] init_spi_client done

# [spi] exec: 'q' 0x00

# [spi] init_spi_client done

# [spi] exec: 'c' 0x00

# [spi] init_spi_client done

# [spi] exec: 'c' 0x00

# [spi] init_spi_client done

# [spi] exec: 'c' 0x00

# [spi] init_spi_client done

# [keyboard] exec: c 65535

# [spi] exec: 'q' 0x00

# [spi] init_spi_client done

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [keyboard] exec: c 65535

# [spi] exec: 'q' 0x00

# [spi] init_spi_client done

# [keyboard] exec: c 65535

# ON AC  chg=0 mps_flt=00 input=5050mV@62mA charge=0mA discharge=1075mA p=7.12W ttempty=166min

# [keyboard] exec: c 65535
1 Like

Any ideas on this? Or is there any additional information I can provide?

1 Like
# [pd] requesting PO 5, 20 V

Please try a newer sysctl firmware, at least version 20250512 - I can tell it’s not the latest, because this string has changed.
The newer firmware deals better with 20V/1.5A sources (like in this case).

But the latest firmware release is 20250429 which I am using.

1 Like

Looks like something is wrong with the 20250512 release tag. Maybe @minute or @josch can check what happened there and make a new release tag.

1 Like

josch told me that the firmware update script was updated to install 20250512, so the old instructions should work:

Prerequisites:

  • Make sure Pocket Reform is charged over 50% to avoid power loss during an update.
  • Stable network connection on the Pocket Reform.
  • Small pointy tool (like a SIM card ejector) for toggling standby switch.

To update System Controller firmware:

curl -sfL mnt.re/update-pocket-sysctl | sudo bash -

Note: On old FW versions, you probably have to toggle the standby switch off and on after the update to get everything back to normal. In some cases, the charger chip can hang after the update and doesn’t want to charge. To fix this, unplug and reconnect the battery cells once.

Be aware, that I only received my pocket recently and everything I flashed (so far) was the keyboard firmware. We just had a small chat in IRC (because I was also very confused) and the problem might be that while there is a git tag called “20250512”, there is no gitlab “release” called “20250512” and but instead the latest gitlab “release” that was made is “20250429”. But that release links the instructions that @zeha quoted above. Turns out that https://mnt.re/update-pocket-sysctl links to the latest version of the file pocket-reform/update-sysctl-firmware.sh in this repository: Reform / MNT Reform Factory · GitLab And that script currently has hardcoded to download gitlab job 9937 artifacts which correspond to tag “20250512”. This is to hope that the next time I’m confused about this, I can read this post and not be confused anymore. XD

On IRC there was also mentioned that an official fwupd update might be pushed soon. I’d like to try out upgrading my pocket reform sysctl firmware using fwupd instead of running scripts with curl | bash :smiley:

Thanks, the firmware update helped with the charging issue so now this cute setup works:

3 Likes