1
\$\begingroup\$

I purchased this split keyboard kit called a gergo and assembled it myself. The board properly registered via usb so I flashed it with qmk which has very good support for atmega32u4 and several existing layouts for the gergo.

issue

I have an issue where intermittently (every 5-30 mins), random key input gets sent from the board, BUT only while I'm typing. It doesn't happen if the board is just sitting plugged in. It appears to be only the LEFT half of the board, and a handful of keys. Usually disconnecting the left half TRRS cable and reconnecting it resolves the issue. I beleive this is an issue with my solder job on the board or a messed up component but I don't have a lot of experience with electronics to know where to start.

board components

The board is 2 halves, each half has 25 diodes (one for each mech switch), the right side has the atmega32u4, the left has an MCP23018 IO expander. The right also has a few capacitors, resistors, and an oscillator.

attempts to fix

I put extra flux and re-soldered the IO expander and atmega chip, but this did not fix the issue. On the software side, I've tried 3 versions of avr-gcc, many different layouts, versions of qmk, etc. That plus the fact the error comes from the left-hand only lead me to believe it's a hardware issue. I've tried different cables (trrs and mini usb).

I have several pictures of the board at various states of build if that helps. Any tips on where to look would be appreciated. I should note that the seller of this keyboard has decided not to respond to any of my emails.

pictures

\$\endgroup\$
2
  • \$\begingroup\$ Given how the solder joints look, I wouldn't be surprised if you had a bad solder joint. I don't know how they are doing the multiplexing, but if they aren't scanning the keys correctly you may get errors while typing. This could be a firmware issue. \$\endgroup\$
    – Ron Beyer
    Jun 27 '19 at 18:00
  • \$\begingroup\$ could a bad solder joint on a diode/cop/resistor cause something like this? I redid the solder on the atmega chip (last pic) and I thought it looked pretty good. Granted the diodes/resistors look not great but I would've thought the board wouldn't work at all if they were bad. \$\endgroup\$
    – leshow
    Jun 27 '19 at 18:32
1
\$\begingroup\$

"Intermittently" is the hardest type of error to troubleshoot in any technology, be it hardware or software. The Best advice I can offer is to try to replace the word intermittently with some specific conditions. You said that reconnecting the TRRS connection clears the issue for a while. Presumably the issue resurfaces.

There are two things that reseating a connection can do. One is hardware/electrically based. For example, opening or closing a circuit and discharging it. The other is software based and could for example trigger a cache/buffer clear. I would personally, begin at this connection and see if I can isolate hardware culprit. Did you double check the component locations and make sure you didn't accidentally swap out 2 similarly looking components?

I would put that connection on a scope and record the signal so you can see any electrical changes when the issue occurs. If you do see something, you could have a component that is acting out of the specified range prescribed for it. All component hardware has a range of performance factors. While a resistor might say it's 10k ohms it might have a variance of 1000-2000 ohms while another from a different manufacturer could be +- 5000. A component variance too far outside the design of a circuit can cause unwanted behavior. It could similar, for example, to what you might see in a circuit with batteries that are on the edge of being "dead". This is why I asked about double checking the assembly instructions. It would help if you had the whitepapers handy for the electronics(Both from the Kit and also the component's manufacturer) if you end up going down this road.

If the issue is software, it may be harder to determine, due to the nature of the device. Depending on what you used to flash the firmware and whether you can actively debug and look at the values of the variables being monitored in real time with an IDE, you may be able to watch the function that interprets key presses and see what signal it is actually receiving and what it is choosing to do with them. You could for instance narrow down your list of culprits if you can say that the issue only appears or appears more frequently when a specific key is used and the more often it is triggered the quicker your problem manifests. The software route can also aid in hardware troubleshooting especially if you don't have an oscilloscope available.

I wish I could offer you something more specific but intermittent issues are the single hardest thing to diagnose and repair and need to be reclassified into something you can reproduce at will first if visual inspections fail to locate the issue.

\$\endgroup\$
6
  • \$\begingroup\$ Thanks for taking the time to respond! Yes the issue resurfaces. I'll grab a multimeter and probe around to see if I can get some more info. Is it possible to probe components in-circuit? \$\endgroup\$
    – leshow
    Jun 27 '19 at 18:42
  • \$\begingroup\$ Sometimes, but a multimeter is the wrong tool in this circumstance. If you do not have an oscilloscope or don't know how to use one, you might be best off trying to see if there is a maker community in your area with a facility. You could probably take your part in and find someone to help you set up the scope and understand what you might be looking for. Otherwise you would need to buy one which can get expensive for a beginning hobbyist. You also might want to look at a couple videos on youtube about oscilloscope basics. \$\endgroup\$ Jun 27 '19 at 21:39
  • \$\begingroup\$ I really think you should double check your component placement and make sure you didn't inadvertently swap out 2 similarly looking parts. \$\endgroup\$ Jun 27 '19 at 21:43
  • \$\begingroup\$ I will double check, unfortunately the guide I'm following docs.gboards.ca/Gergo-Setup was incomplete (pictures missing) and the seller is not answering my emails. One thing I did noticed about this guide (I have the 'blue' board)-- is that I got 6 0.1uF caps but I only needed 5. Last question-- say I wanted to replace the capacitors on my board from say digikey. How do I find a replacement? There are many 0.1uF caps for instance. \$\endgroup\$
    – leshow
    Jun 28 '19 at 13:18
  • \$\begingroup\$ Well there are bound to only be a few components that could be confused or swapped and still have the device mostly work. For cap replacement, match the voltage as well. For a simple circuit the biggest difference is going to be the physical size. When you get into circuits with larger current amounts or more sensitive signals, the type and other specifications come into play. This is through hole, I don't have that much experience with SMD. My eyes are too old and my hands too big ;) \$\endgroup\$ Jun 28 '19 at 20:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.