Unable to charge

I found a microHDMI and connected to a TV(Poor choice I know) It will flash an initial uBoot line and then goes black. It then disconnects and reconnects repeatedly (about 30 seconds off 10 on) but the screen stays black.

If uboot starts, the SOM starts, and that implies the sysctl is running. You can also check in the oled menu → battery status; if that gives values, sysctl is running.
In this case I’d try with an older Linux kernel, as there were display init changes some time ago. Might be easiest to try with an older system image copied to a new sdcard.

Ok i tried an image from last month, no change. i have been able to boot the system to an external monitor.(i have either a bad cable or bad port ) once i login blind and open sway i get external display. I ran all updates and downloaded the updated fw and script.

i was able to update the keyboard firmware without issue.(except my Dvorak mapping is gone)

i tried reflashing the system controller and i get an error that rp2050 not found or multiple are present.

i seem to have the correct builds but still no internal display.

play again tomorrow. thanks for the tips @zeha and @amospalla
@SpaceLizard we will figure this out.

dmesg output with “panel”
[ 0.165146] /soc@0/bus@32c00000/dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000/panel@0
[ 0.165285] /soc@0/bus@32c00000/dsi@32e60000/panel@0: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000
[ 0.186479] /soc@0/bus@32c00000/dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000/panel@0
[ 0.186613] /soc@0/bus@32c00000/dsi@32e60000/panel@0: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000
[ 0.187849] /soc@0/bus@32c00000/dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000/panel@0
[ 0.188011] /soc@0/bus@32c00000/dsi@32e60000/panel@0: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000
[ 2.303152] /soc@0/bus@32c00000/dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000/panel@0
[ 2.303258] /soc@0/bus@32c00000/dsi@32e60000/panel@0: Fixed dependency cycle(s) with /soc@0/bus@32c00000/dsi@32e60000
[ 2.303484] panel-mnt-pocket-reform 32e60000.dsi.0: DSI burst mode enabled via device tree
[ 2.303503] panel-mnt-pocket-reform 32e60000.dsi.0: supply vddp not found, using dummy regulator
[ 2.303630] panel-mnt-pocket-reform 32e60000.dsi.0: supply iovcc not found, using dummy regulator
[ 2.303720] panel-mnt-pocket-reform 32e60000.dsi.0: error -ENOENT: cannot get reset-gpios 0
[ 2.303744] panel-mnt-pocket-reform 32e60000.dsi.0: error -ENOENT: cannot get dcdc-en-gpio 0
[ 2.398062] panel-mnt-pocket-reform 32e60000.dsi.0: [display] init in enable…
[ 2.462377] panel-mnt-pocket-reform 32e60000.dsi.0: [mnt pocket reform display] read register 12a: 0x77
[ 4.486105] panel-mnt-pocket-reform 32e60000.dsi.0: [display] init in enable…

Thanks for reporting back on this. I’ve also managed to get the keyboard firmware to update, but haven’t yet had the time to test anything else yet.

Was glad I’d updated some scripts, and had the keyboard lights on login, so I could tell (with a blank screen), when the monitor should be showing something. So happy to get something working!

Quick update from me:

  • I’ve now updated both the system controller firmware and keyboard firmware
  • No internal display showing at all
  • After leaving it turned on a while, plugged into an external monitor, the OLED said “Reset by watchdog.”
  • The external display works fine at least, and I am getting boot messages (rather than on the internal one), although until logged in, the display is rotated 90 degrees
  • On logging in to Sway, it has two screens configured, but the internal display remains blank. Running arandr also shows that it’s activated
  • Not sure, but wondering if my (and @Savasten ) issues are related to the “purple flash” thread - not sure my kernel version, although I don’t think I’ve run an apt upgrade for at least a few weeks.
  • oh, and the command to change the keyboard lights doesn’t seem to be working any more

Edit: I also tried selecting “High Brightness” from the Sway menu, and adjusting the screen brightness using the shortcuts, just in case, but neither made a difference.

@cjobrien after the new pair of updates the Lenovo charger seems to work better and goes straight to 19v and charges quicker. Your screen functioning afterwards is questionable.

1 Like

For anyone reading here, please don’t upgrade to that version for now. There’s an issue with the display bringup/control, and also updating out of that firmware.

2 Likes

That sounds a little ominous. Hope there’s a possibility of forcing it somehow for those of us that did upgrade.

@SpaceLizard @Savasten i made a workaround today that should get you out of this buggy firmware that turned off your display.

Preparations:

  • you need some way to get a shell on your pocket, for example over HDMI, SSH or in worst case UART console.
  • sudo apt update
  • sudo apt install fwupd
  • edit the file /etc/fwupd/fwupd.conf, add the line OnlyTrusted=false
  • wget https://source.mnt.re/reform/reform-tools/-/jobs/7408/artifacts/raw/reform2-lpc-dkms_1.65_all.deb
  • sudo dpkg -i reform2-lpc-dkms_1.65_all.deb
  • then reboot
  • after reboot, you should see a file brightness in /sys/bus/spi/drivers/reform2_lpc/spi1.0. i have a rk3588 pocket here at the moment so it could be that it’s not called spi1.0 but similar on your pocket.
  • download the bugfixed firmware, i.e. wget -O sysctl.cab https://source.mnt.re/reform/pocket-reform/-/jobs/7370/artifacts/raw/pocket-reform-sysctl-fw/build/sysctl.cab
  • become root, i.e. sudo su and then echo 0 > /sys/bus/spi/drivers/reform2_lpc/spi1.0/brightness (making sure the sp1.0 is correct which you found out earlier). a simple sudo won’t work for this command because the > will be interpreted by the surrounding shell which is not affected by sudo.
  • this previous step should work around the problem of an attempted firmware update immediately resetting the machine.
  • do the update: fwupdtool install --allow-older sysctl.cab
  • hopefully it should succeed and after reboot you should have your display back up.

I apologize for the inconvenience this bug caused for you.

3 Likes

First, no worries, I appreciate you and this community.
Second, the solution worked perfectly thank you so much.

2 Likes

All seemed okay to this point, to the letter (I also have the RK3588), but on this final step, get:

❯ fwupdtool install --allow-older sysctl.cab
Loading…                 [*******                                ]18:25:52.399 FuEngine             failed to add device /sys/devices/platform/a41000000.pcie/pci0004:40/0004:40:00.0: failed to subclass open: failed to open /sys/devices/platform/a41000000.pcie/pci0004:40/0004:40:00.0/rom: Permission denied
18:25:54.405 FuEngine             failed to add device /sys/devices/platform/a41000000.pcie/pci0004:40/0004:40:00.0/0004:41:00.0/nvme/nvme0: failed to retry subclass open: failed after 5 retries: failed to open /dev/nvme0: Permission denied
Loading…                 [**********                             ]18:25:54.447 FuEngine             failed to add device /sys/devices/platform/fe2e0000.mmc/mmc_host/mmc0/mmc0:0001/block/mmcblk0: failed to subclass open: failed to open /dev/mmcblk0: Permission denied
Decompressing…           [ -                                     ]
No supported devices found

sudo the last command

1 Like

[I thought] it was under sudo su still, but I did try it again, and got:

❯ sudo su
[sudo] password for : 
root@kogata:/home/user/tmp/fix-blank-screen-fw/phase2# fwupdtool install --allow-older sysctl.cab
Loading…                 [*******                                ]18:39:36.892 FuDevice             g2ab0d3a is not a valid number (guessed plain)
18:39:36.904 FuDevice             ga98e2bd is not a valid number (guessed plain)
18:39:38.952 FuEngine             failed to add device /sys/devices/platform/a41000000.pcie/pci0004:40/0004:40:00.0/0004:41:00.0/nvme/nvme0: failed to retry subclass open: failed after 5 retries: failed to open /dev/nvme0: Resource temporarily unavailable
Decompressing…           [ -                                     ]18:39:39.105 FuRelease            invalid release version ga98e2bd: cannot parse ga98e2bd
18:39:39.105 FuRelease            invalid release version ga98e2bd: cannot parse ga98e2bd
18:39:39.106 FuRelease            invalid release version ga98e2bd: cannot parse ga98e2bd

Specified firmware is already installed 'ga98e2bd'

looks like it worked ?

1 Like

Thanks so much to @minute and @Savasten, you’re both stars!

I did go through a little more panic, as on reboot there still wasn’t any output, and then I had the idiotic idea of updating the brightness via the file used in the steps, but then it immediately rebooted and wouldn’t boot via the OLED menu, but after flicking the standby switch off and on again it booted, and with my screen now working great!

Edit: still getting used to the little keyboard (typos)

2 Likes

@Savasten, @SpaceLizard thank you for all your help so far, I’m glad to hear you’re both back in business.

I managed to find an Anker-branded charger in a drawer that’s a little bit better behaved, so I am able to slowly charge while my Pocket Reform is powered off. Hopefully that will tide me over while we wait for a new update.

1 Like

BTW, regarding the original part of this thread about “unable to charge”, I have a charger that is indeed, even with the old firmware, able to charge while the Pocket is on. However after I let it drain completely and absolutely to 0% and sit on the shelf for two months, even that couldn’t boot it up! The OLED would boot for a fraction of a section and turn off, and nothing else would.

I then visited a friend’s house who had a top-of-the-line USB-C charger with a big ol’ fat top of the line cable, and that woke my system back up! Then the other charger worked again too :slight_smile:

1 Like