Pocket Reform System Controller Update: Looking for Testers

(Edit 2: previous issue was fixed, safe to update now)

I’ve published an update to the Pocket Reform System Controller firmware in a branch that aims to improve the compatibility with many USB-C PD chargers and also should reduce idle power consumption somewhat. We’ve been running this firmware successfully on 2 devices for a few days here.

I would like to ask for some more people to test this update script and tell me about their results. Here’s the direct link to the script (there’s a download button): scripts/update-sysctl-firmware.sh · 2ca8b45ebc58aab160c8e86d806b197bc3df9ef8 · Reform / Pocket Reform · GitLab

After downloading, do:

sudo bash update-sysctl-firmware.sh
3 Likes

OK, I found and fixed the issue that would make the RP2040 disappear from USB with the previous build. pico-sdk needs to have its git submodules initialized, otherwise USB support is missing from the build.

So it’s safe to test this now, looking forward to your results.

1 Like

Downloaded and ran; it installed picotool (wget was already installed), and then downloaded the uf2, and then said it was going to go into bootsel mode and I hit enter.

Then I restarted… and I’m staring at an initramfs screen with some messages about /dev/mmcblk2p2 failing to mount.

Hmm thank you, but that sounds like an unrelated issue, or a filesystem issue because of the unclean shutdown of the update. Are you booting from microSD card or the integrated eMMC flash? Could you post a photo of the screen?

I had one error when starting after the update. Did a reboot, it checked the filesystem and Luks worked again

3 Likes

… and now I’ve restarted again, it ran fsck, and booted.

(I don’t have an SD inserted so it is booting from eMMC)

How could I confirm that the update was installed in the Pico?

2 Likes

Thank you both, so we should probably come up with a method that properly unmounts the rootfs.

To confirm that the update worked, check “System Status” (“s” hotkey in OLED menu), it should say PREF1SYSR120240716.

1 Like

Can confirm I see PREF1SYSR120240716 in the OLED now.

2 Likes

Yes, here too. Worked

2 Likes

Great, thank you both! If you have any PD chargers that did not work before, it would be interesting to know if they work now.

I can likely test this tomorrow and report back!

Mine upgraded correctly too.

1 Like

I updated the controller and tested the charger that came from crowdsupply. The behavior is the same as before: Works if plugged in before powering on, but does not work if plugged in after the pocket is already on.
My thinkpad charger continues to work in both scenareous after the update.

1 Like

This is now working with an Anker GaN charger that was not behaving before.

EDIT: i thought it was, however only when off - just connected it to the laptop now at 40% charge, and it is not drawing from the charger. Going to switch off for a bit to get some power back!

→ switch off, plug in → power input → switch on → power input at higher W

Plugging in while already switched on still not working with this charger.

This behaviour differs from that of a UGreen USB multiport charger at home, which does negotiate a power delivery output if plugged in when the machine is already switched on.

1 Like

Just to get sure… this fix does not “fix” the power consumption when the device is turned off?

My Apple charger is only charging, when the reform is not running

Surprisingly, the script refuses to upgrade for me. I already updated my system fw to enable factory mode, but the output from lsusb doesn’t match either the supplied or commented hex ids.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 001 Device 005: ID cafe:4004 MNT Pocket Reform Input
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Nothing else plugged in (not even a charger) for this output.

Can I download the uf2 the update script wgets, drop it over the uf2 in the pocket-reform working copy I built the factory mode enabling firmware into, and then run the flash.sh script I used before?

I just got my Pocket Reform today and I had some trouble finding a USB-C charger that would keep the device charged, so I tried this firmware update. It definitely seems to have helped somewhat with some chargers that wouldn’t work at all previously, but I’m finding that I can only start charging the device while it’s powered off. If I power it on while still plugged in, it’ll continue charging, but if I then unplug it and plug it back in it doesn’t resume charging.

I was able to install it. Like @andypiper , picotool did a hard reboot and was put into an initramfs shell because the hard reboot left the filesystem in an inconsistent state. I had to reboot again for fsck to fix it.

I suggest doing a more graceful reboot with picotool.

I am very happy with the UGreen PD charger I bought on recommendations from other posters on this forum, but a few of the chargers I already have and initially wrote off as non-functioning do eventually finish PD negotiation if I leave them connected to the pocket for 10s or more… first the LED display switches to display a negative amp usage after 5s or so, and then the charge indicator in the menubar updates 5s after that.

If you have a butt-load of PD chargers like me, I’d recommend patiently trying them out again - you might have given up on them too soon like I did :confounded: HTH!

1 Like

I got myself a couple ugreen chargers yesterday and they do seem to charge the Pocket much more reliably than the others I’ve used.