Author Topic: [SOLVED] Ergodox woes - Left home row repetition!  (Read 2517 times)

0 Members and 1 Guest are viewing this topic.

Offline ConSeannery

  • Thread Starter
  • Posts: 3
[SOLVED] Ergodox woes - Left home row repetition!
« on: Tue, 24 February 2015, 02:26:23 »
Hello everyone! I've just built my first ergodox. Unfortunately, when I plug in the left hand side, I am left with a constant and unstoppable repetition of asdfg<tab>asdfg<tab>asdfg<tab>asdfg<tab>asdfg<tab>....etc. etc. or whichever keys are configured on that row (ie: I've tried several different hex layouts; from the online ergodox configurator). This continues until the keyboard is unplugged, not just the problematic left hand side. I assume the teensy is buffering these keystrokes or something. Having just the right hand side plugged in works great, but plugging in the left hand side results in a usb reload and either instant spamming, or full/semi keyboard unresponsiveness. I've been able to use the left hand side just once (excluding the home row), but with poor performance (pressing one key quickly after another didn't register, like the teensy/something was overloaded). Most of the time when plugging in the left hand side, it just spams asdfgasdfgasdfg forever.

I believe I have narrowed it down to the IO expander on the left hand side, but I would like the communities input on this as I am not what you would call an expert.

Here are some awful cell phone pictures which feature wholly inadequate lighting. Please excuse the fluxsplosion and accompanying flux scuff marks caused by multimeter probing:

IO-Expander: http://i.imgur.com/1wYhvXE.jpg
Board-general: http://i.imgur.com/9g08G6G.jpg

The problem row in question matches up to the pin circled in red, which i'm calling pin5. When the keyboard is plugged in, measuring voltage from ground on the IO expander (circled in black, top left) to each of the yellow pins (representing other rows) results in ~4.92v. Measuring from ground to pin5, circled in red, results in 0v.

Measuring continuity between pin5 on the IO expander and the key switch pins circled in blue in the second picture results in a beep, showing a completed circuit from the keys to pin5. This is the behaviour when measuring from pin4 to the row above, pin3 to the row above that etc. etc.

Measuring continuity of each switch measuring between switch pins and pressing the switch down also results in a successful circuit, suggesting switches are all good.

Diode testing using the diode multimeter function results in a measurement of ~0.600 for each diode on the entire board. This measurement is taken from the adjacent through-hole copper rather than placing the leads on the surface mount diode itself, so I know that the diodes are in contact with their pads.

Anyways, I've reflowed the problem pin a couple times (though now I know it has connection because of the continuity testing between it and the keys), I've removed the capacitor and bridge there, I have tested and quadruple checked that there are no shorts elsewhere on the board, I have looked through clickclack123's similar problem here https://geekhack.org/index.php?topic=54288.0 and looked elsewhere, and I am officially out of ideas aside from starting to replace parts.

I'd appreciate any suggestions!

Thanks
« Last Edit: Thu, 12 March 2015, 01:32:46 by ConSeannery »

Offline tlem

  • Posts: 20
Re: Ergodox woes - Left home row repetition!
« Reply #1 on: Tue, 24 February 2015, 10:22:54 »
Try cleaning the flux residue.  Don't connect or disconnect the halves while USB is still connected, as it causes a short circuit.

Offline ConSeannery

  • Thread Starter
  • Posts: 3
Re: Ergodox woes - Left home row repetition!
« Reply #2 on: Wed, 11 March 2015, 14:53:08 »
Thanks for the short circuit tip. I've cleaned the flux as well as replaced the IO expander. No dice :(.

I have diode-tested the whole board again, and have removed the 'a' and 'd' switches and diodes, and asdfg is still printed repeatedly. I've also tried a new aux cable.

How is the signal sent between the units, a different pulse per key/row? Could a wacky TRSS connector cause a whole-row problem like this, and/or could the problem exist on the right hand side of the unit? I suppose now I will dive into the firmware.

Offline tlem

  • Posts: 20
Re: Ergodox woes - Left home row repetition!
« Reply #3 on: Wed, 11 March 2015, 18:29:05 »
How is the signal sent between the units, a different pulse per key/row? Could a wacky TRSS connector cause a whole-row problem like this, and/or could the problem exist on the right hand side of the unit? I suppose now I will dive into the firmware.

I am not sure if a bad cable would cause this.  You can use a multimeter to check if the 4 contacts on each side are connected.

I tested my keyboard and found 5V on all 5 yellow and red circled pins.  I also tried connecting the black circled pin to the red circled pin and produced the same results as you: repeating <tab>asdfg.  Can you check for shorts in between all of row 3 (switches and diodes) and ground?  The ground plane is any large bright blue area, as opposed to dark blue which is insulation.

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: Ergodox woes - Left home row repetition!
« Reply #4 on: Wed, 11 March 2015, 22:08:24 »
How is the signal sent between the units, a different pulse per key/row? Could a wacky TRSS connector cause a whole-row problem like this, and/or could the problem exist on the right hand side of the unit? I suppose now I will dive into the firmware.

I am not sure if a bad cable would cause this.  You can use a multimeter to check if the 4 contacts on each side are connected.

I tested my keyboard and found 5V on all 5 yellow and red circled pins.  I also tried connecting the black circled pin to the red circled pin and produced the same results as you: repeating <tab>asdfg.  Can you check for shorts in between all of row 3 (switches and diodes) and ground?  The ground plane is any large bright blue area, as opposed to dark blue which is insulation.

I don't know about this issue specifically but a number of users had issues that were fixed with a new cable. If you have a scope you can look at the I2c protocol sent from the MCP23018 to the teensy but I bet the problem lies elsewhere.

Make absolutely sure about shorts. Since those keys are in the same row, it only takes one error to "press" them all. If there is continuity between the Appropriate pins on the MCP then your issue lies "downstream" (on the PCB / diodes / switches etc.)

When testing a PCB try to measure continuity instead of voltage. The KB scans of the matrix are usually 5V pulses which can interfere with your readings.

Offline ConSeannery

  • Thread Starter
  • Posts: 3
Re: Ergodox woes - Left home row repetition!
« Reply #5 on: Thu, 12 March 2015, 01:32:19 »
Awesome! thanks tons for the repro case tlem, it gave me the extra kick in the pants I needed to keep testing everywhere for continuity. Keyboard now works great, every key. Occam's razor in full effect on this problem.

Prior, I had tested continuity from "pin 5" to each pole and recorded the same behavior as all the other switches. So, I decided to check between ground on the IO expander and each pole on each switch in the problem row. One of the poles on each switch on the problem row turned out to be grounded out, whereas the working rows were not. I thought that was real weird because I definitely could not see any possible point where it could be grounded. Well, I *assumed* that the six through-holes for each switch were there to support different switch types. Turns out, the bottom through-hole is a ground. I learned this after testing continuity from the bottom holes on each row to the ground on the IO expander. But none of the contacts were touching that hole...unless some solder flow got underneath the switch where I couldn't see on the other side of the board and flowed into it! D'oh. Upon removal of all the switches in the problem row, I found what you see in the picture...a nice flattened out thin bit of solder which had ran to a ground that I didn't think was there. It looks like a big fat blob due to the crap flash and I scratched at it a bit, but it was a teeny little flattened stringy thing. Bah!

http://i.imgur.com/G6uHDA8.jpg

So any other ergodoxers reading this having full row problems, continuity test...and then continuity test some more! Thanks again tlem, and thanks for re-affirming dorkvader (I didn't see your note until after the problem was solved). Much appreciated! Next step...chair-arms mounting mechanism!

**edit**
P.S. for others, just in case. I forgot to mention that after solving the shorting problem and re-soldering everything back in thinking I had won, the entire left side of the keyboard decided to totally stop working. This time, no keys responded. I ended up re-shorting those two pads by the IO expander and adding back the "filter" capacitor I had taken off prior during troubleshooting, and the keyboard fully worked after that. So, something to look at if your entire left side is not working.
« Last Edit: Thu, 12 March 2015, 01:39:10 by ConSeannery »