Looking for help debugging non-functional keys
Posted: 26 May 2018, 23:27
Hey all! I feel like I've reached the limits of my electronics debugging abilities so thought I'd come to the forum to ask for help.
Backstory: a while ago I put new switches into an old Cherry PCB and with thanks to Deskthority user pfoff ran that through an Arduino running TMK. It worked, and all was well!
Recently I had the 1 key stop working. Upon closer inspection the PCB tracing ring for the key had come separated from the rest of the tracing. No problem, I fixed the connection and the 1 key presses were registered again. (It wasn't the cleanest of fixes, I jumped the PCB with a piece of wire to connect it where it needed to go).
Somewhere in that process - either by mishandling the board or something else - I had a second problem when I plugged everything back in: only the number and letter keys are working. I can get all the other keys to work if I press it very quickly after pressing a letter key (e.g., tab doesn't work on its own, but if I press q and then tab one after the other, I can register a tab). I tested this for every non-letter-or-number key on the keyboard using xev and they all register as long as I press a letter key first (except for the insert key, but I verified that the switch and its connections were ok with a multimeter).
Doing this confirmed that no other switch PCB tracings have come loose like originally happened with my 1 key. I suspect that maybe one of the jumper wires had come loose from the PCB (not sure what they're called exactly, but I'm referring to the wires that go where a switch LED would go on newer keyboards. I think they help with PCB routing). I checked maybe a quarter of them with my multimeter, focusing around the 1 key, and they were all connected fine. I can keep going and checking the rest of them but I must admit it's pretty tedious to follow tracings around the whole keyboard.
Nothing has changed with the arduino or firmware, though I'm sure it's likely that one of those is the problem.
I'd appreciate any thoughts anyone here has - either what you think the problem would be, or other techniques I can use to debug. Thanks for your time!
Backstory: a while ago I put new switches into an old Cherry PCB and with thanks to Deskthority user pfoff ran that through an Arduino running TMK. It worked, and all was well!
Recently I had the 1 key stop working. Upon closer inspection the PCB tracing ring for the key had come separated from the rest of the tracing. No problem, I fixed the connection and the 1 key presses were registered again. (It wasn't the cleanest of fixes, I jumped the PCB with a piece of wire to connect it where it needed to go).
Somewhere in that process - either by mishandling the board or something else - I had a second problem when I plugged everything back in: only the number and letter keys are working. I can get all the other keys to work if I press it very quickly after pressing a letter key (e.g., tab doesn't work on its own, but if I press q and then tab one after the other, I can register a tab). I tested this for every non-letter-or-number key on the keyboard using xev and they all register as long as I press a letter key first (except for the insert key, but I verified that the switch and its connections were ok with a multimeter).
Doing this confirmed that no other switch PCB tracings have come loose like originally happened with my 1 key. I suspect that maybe one of the jumper wires had come loose from the PCB (not sure what they're called exactly, but I'm referring to the wires that go where a switch LED would go on newer keyboards. I think they help with PCB routing). I checked maybe a quarter of them with my multimeter, focusing around the 1 key, and they were all connected fine. I can keep going and checking the rest of them but I must admit it's pretty tedious to follow tracings around the whole keyboard.
Nothing has changed with the arduino or firmware, though I'm sure it's likely that one of those is the problem.
I'd appreciate any thoughts anyone here has - either what you think the problem would be, or other techniques I can use to debug. Thanks for your time!