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).
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.
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
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.)
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
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…
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.
Well, I am unfortunately back on this thread experiencing the same issue – but with a twist.
After having the same power-on issues that started this chain, I read through it and decided that – because I don’t have soldering equipment handy – my best bet would be to flash the keyboard firmware to whatever is the latest. I assumed that the chances from @devkev had been merged in, or at least some of the changes appeared to be included.
Now I have sort of the opposite problem: the led on the keyboard does not turn off (and I can’t control the booting of the computer at all). The keyboard reset button does nothing. The only way I’ve discovered to get the led to turn off – and to get the system to reliably boot, but only once before the cycle begins again – is to unscrew the back plate and disconnect, then reconnect, the battery wires from the board.
I have the first generation of Reform 2 that shipped from the first crowdsupply campaign. I also have the replacement battery board that I had installed probably a year or two ago, but that’s the only hardware modification I’ve ever made to the system.
I’m wondering this:
Should I flash any other firmware to the latest for this device?
I’m in a similar boat. I was using my Reform last night, powered it off and plugged it in before bed, then when I tried to turn it on this morning, it was completely unresponsive. The LCD display stayed dark despite pressing (and holding) the circle key several times to try to wake up the LPC.
I took of the cover and took out the batteries and measured their voltage with my multimeter. They were down at 2.5 V - completely dead. I have an external charger for the batteries, so I recharged them. When they were done, they measured about 3.5 V (+/1 0.05 volts each) so I put them back in, but I still can’t get the LCD display to come on.
I also have the first gen Reform 2 with the iMX8M plus SOM and updated battery boards. None of the LEDs on the motherboard light up when I try to turn it on. When plugged in, only the D8 LED lights up.
How can I troubleshoot this?
Update: I tried unplugging and plugging back in the battery board and the R28 resistor made a pop sound and let out a little puff of smoke. So I guess I’m going to need to replace that resistor in addition to whatever else is going on with the machine