-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Debugging incorrect / malfunctioning keys (LEDs work) #16
Comments
Hey, thanks for reaching out! My first guess would be that some connection indeed isn’t soldered correctly. Is there any rhyme or reason as to which keys in particular work / do not work? That would help narrow it down. |
OK, after getting hid_listen to compile on OSX and recompiling qmk with logging, it appears that column 3 (Shift, Z, X, C, V, B, etc. on qwerty) is the problem — every other column / row combination produces output except column 3 (3 function keys wired to TOP_RIGHT also have no output, presumably they are COL_3 as well). I re-soldered all of the connections and then double-checked COL_3 connections, which as far as I understand from the schematic are:
But even after re-soldering these connections, COL_3 still doesn't produce any output 😭 I'm new to reading schematics; the FPC connector pins are staggered in 2 columns on the board but in the schematic they are vertical with 1 column. I want to make sure I'm looking at the right pins. Should I be reading them from the "1" on the silk screen such that pin 1 might be on the left column and then pin 2 might be up and to the right (and pin 3 up and to the left)? Or do I go up one column first? Either way, I re-soldered the connections that result from both interpretations. But COL_3 still doesn't register... I am yet again at a loss and really appreciate any insights you might have! Edit: After enabling more verbose debug options, I see the following when releasing a non-column-3 key:
So it appears that column 3 is "on" for all rows 🤔 |
Here’s how to get a better understanding of the connections:
For your specific case, this is the expected result: Do you have a multimeter? You can use its connectivity test (beeps when there is a connection between both probe heads). Do you have any left-over PCBs? Where did you make the PCBs? Could you send photos of the soldering points for all the The most common mistake really is a soldering mistake. Sometimes, residue can lead to unwanted connection. You could use a PCB cleaner if you haven’t already. |
Hi @landakram |
I don’t think you need any changes to hid-listen, you just need to start it and wait for debug messages to come in. Which keys specifically don’t work for you? Compiling a list would be a good first step to narrow it down to specific rows or columns in the matrix, or to confirm that all rows/columns work fine per se and individual keys should be checked. |
@Sanic, unfortunately I narrowed down my problem to a defective teensy pin (as far as I could tell) and then didn't go further. I used the multimeter to test continuinity between every joint connecting I then used the multimeter to test voltage from the gpio pins. I found that every column pin had some non-zero voltage except for the affected pin, 23, which had a flat 0 volts. I concluded that pin 23 was defective, given that, from my understanding of the firmware, every column should be reading high when no keys are pressed. I neglected to test the pins before soldering everything, so perhaps the teensy was defective from the get-go or I fried it during my soldering troubles.
I made some small changes to get it to compile for macOS-x86_64 using clang. The binary on the website is only compiled for powerpc. Please see the @stapelberg, thank you for all your help. It was really helpful for a newbie like me. I hope to pick this project back up soon when I order another teensy 😄 |
I did quick collection of the keys that don't work with the QMK Configurator:https://config.qmk.fm/#/test/ While testing the keys, i also found a weird behavior: Ah btw: I've got a KB500 and also used a Teensy 3.6. I flashed the default .hex file from this github repo with the teensy flash tool. /edit2: |
As a follow up: I just tested the keyboard on a windows machine. So i wonder what might cause these weird issues when using a Macbook. |
This is really strange, but a good find! I don’t have much time to look at this problem in detail right now, but here’s one thing to try: connect the keyboard via a USB hub. That way, subtle differences between USB implementations across devices/operating systems might be less of a problem. |
@stapelberg I also tried out to connect the keyboard via a Hub, but unfortunately that didn't change anything. Today, i found the time to solder another board for the same keyboard, but with a teensy 2.0. Thanks for your hints @stapelberg @landakram |
I’ll close this issue as it seems there’s nothing else we need to diagnose/can do here. Please reopen if that’s incorrect. |
@landakram not sure you got back to this, but I went through the same fun exercise. The information here was helpful. In my case pin 14/15 were shorted, and pin 14 was shorted to GND. I'm unsure how this happened - there were no solder bridges at all, so I suspect my PCB was defective (next time, I'll check my PCB first). I highly doubt the teensy pin itself is busted. I didn't want to junk my board and parts, so I hacked around it, maybe you can do something similar:
Fortunately that was enough to get my board fully working. Hopefully you can get it working w/o ordering all new parts! |
I'm setting up KinT with a Kinesis Advantage 2 and a Teensy 3.6. I soldered everything and flashed the Teensy with this hex file.
When I plug everything in, the LEDs go on as expected, but keys are clearly malfunctioning: some keys aren't registering at all and some are registering as other keys or groups of keys (I'm using qmk configurator to test keypresses).
Any ideas on how to best to debug? I didn't do the best job soldering, but I'm not sure how to determine whether it's something there or software issue.
The text was updated successfully, but these errors were encountered: