Power Issues and LPC wakeup

I’ve spent the last couple weeks debugging keyboard issues, and just wanted to share what I’ve learned.

The sleep issue, as it manifests for me, occurs when I shutdown the Reform overnight, and try to wake it the next morning, holding down the circle key. If it’s hung, I’m forced to press the keyboard reset button.

I’ve shutdown probably around a hundred times or so and never had the issue with keyboard FW ‘R1 20210927’ (commit 7319ecec88a7baa709b76d96151f12fae2e57971). This is the first FW with the power-saving code from @Chartreuse , I think? <3 I even flashed this back after having issues with newer FW, to make sure it wasn’t something else changing in my system.

With FW ‘R1 20220221’ (650412076baf5c2024375044de12a56db911df5c), it hung without exception for the five days or so that I used it.

Finally, with the newest FW (commit d33ac3ee1dbbe8a33c6e1c2a819b2a6671d29775, with devkev’s patches merged), I haven’t yet encountered the issue, after a few days. Thanks @devkev ! <3

Admittedly, I’m not able to understand the underlying code as much as others. But if this is some kind of race condition- not all reform2-keyboard-fw releases seem to trigger it!

It would be interesting to know why, but perhaps it’s not worth diving deeper if devkev’s patches have totally solved it? Anyone still having these issues, with the newest keyboard FW?

I’ve found this thread, having had the issue myself. In my case, it only seems to happen if I shutdown via sudo shutdown now, in which case it’ll happen every single time. Shutting down via sudo shutdown -h now, as in the manual, has my machine come up every time (touch wood).

2 Likes

I’ve started to have this issue again more regularly. It seems to work fine if I use the reform every day, but if i wait two days or more it’s much more likely to not respond and need the batteries pulled out to reset it.

Pressing the keyboard reset has no effect. I have had other issues with the keyboard entering flash mode even without the switch set so perhaps that’s related.

I’ve been very fortunate. It’s happened to me twice. Once on the very first day I had it, then a couple of weeks later, but never since. I didn’t do anything other than update to V3 and do regular apt updates. I hope it gets resolved for you soon @CliffyA I know how frustrating it is having to take the back off and redo the connectorrs.

1 Like

Re: unpredictable reset in flash mode issues: check resistance between the switch and 3V3, a while back a missing pull-up resistor has been spotted on the programming switch. Hotfix is to simply add one, i used to have similiar issues but after that my keyboard has been reliable

1 Like

A (very delayed) update on this.

I swapped out the keyboard with a new one and have had no problems since. Also I’m loving the clicky keys.

So, it’s been a long time since I posted about this. The short version of the story is that I can confirm that the missing pull-up resistor to PROG is absolutely the root cause, and adding it does indeed fix the problem. Without my weird firmware fixes, the keyboard does still sometimes spontaneously restart on sleep/wake - but with the pull-up resistor it always restarts cleanly, and never drops into DFU reprogramming mode (and I was also able to confirm that this is what was happening previously).

I used a regular thru-hole 10k resistor, soldered to the non-ground (PROG) side of SW84, and the near-side 3.3v connector of J2 (UART).

(The longer version of the story is that when prepping to solder this resistor (back in September), I accidentally ruined the J3 (OLED) connector. And then after getting a replacement connector, I accidentally ruined that part of the PCB by ripping off the J3 pads. Later I might post to show the repair I had to do to fix this mess.)

5 Likes

I am seeing a similar issue where my Reform does not power on and the LCD stays dark, even after holding the circle button for a while. This happens rather infrequent but the last two days it happened twice already.

I am wondering whether it is the same root cause as @devkev saw and fixed: in my experiments in the faulty state, pressing the keyboard reset (SW83) does not help. Flipping SW84 and pressing reset again does not help either. Neither does pressing LPCRESET. So I always end up removing the batteries, which brings the Reform back up.

This tends to happen when I have not used the machine a day or two, but I have not yet found a clear pattern.
My Reform’s status info is

MREF2LPCR320220621full charge,243,430,1800 Reform Keyboard R1 20220221

the flashed keyboard fw contains Sigrid’s commit kbd fw: lpc wakeup clear serial, delay after write, ...; I don’t think the later fw adds anything that could be expected to affect this situation.

With these symptoms, is it worth dusting off the soldering iron? The fix that @devkev posted looks very doable, but things can always go wrong and the Reform is my daily driver right now… :grimacing:

Has anyone else tried this yet or is (still) experiencing these symptoms?

I was having similar problems where the reform would not turn on after being off for a couple of days. I soldered a resistor as devkev showed in their picture and problem appears to be fixed.

Thanks for the quick reply and confirmation! Then I have a project for the weekend and will report back :slight_smile: