![]() |
Now that that's out of the way, this post is about...
Soarer's simple logic analyzer
Many times on this forum I come across troubleshooting threads where many different things are suggested. But I never ever see someone suggest trying out Soarer's simple logic analyzer. I think maybe not many people know of it's existence (?). But it's a great tool for doing some basic diagnostic/analysis work on a keyboard.
Here's a link to the thread:
viewtopic.php?t=4567
What I like about this project is that it takes something that's usually cost prohibitive (a logic analyzer) and makes it accessible to the everyday hobbyist. Granted, it's totally bare bones in terms of functionality. But it's enough to allow someone to take a look into the keyboard's communication characteristics.
Building one is really simple. This isn't an in-depth guide, just an overview to give an idea of what's involved. Most of what follows is going to be a copy paste from a blog post I just made.
For a connector, I used a din-5 breakout board but you could just as easily chop a cable.

You can of course substitute your connector of choice, or no connector at all if you’d like to hook it up directly.
You’ll need to know the pinout if you’re using a connector. You can find the pinouts for many keyboard connectors on kbdbabel.
You’ll be flashing the firmware to an ATMEGA32U4 (e.g. teensy or pro micro). I happened to have a spare teensy sitting around so that is what I’m using.

The next thing to do is soldering the wires to the microcontroller. There are actually two versions of this firmware; Port B and Port D. I went with Port D so that I can easily switch between Soarer’s converter and the analyzer firmware. Check the original post linked above to find out which pins to solder to.
Then of course you connect the two together. Here’s what mine looked like.

Once it’s built, you flash the appropriate firmware (Port B/D) to the device and you’re good to go.
How the firmware works is by reading the keyboard input and then outputting message to the console. You use hid_listen to read these messages. It looks like this.

Then you copy the text from hid_listen and paste it into scla, which is the companion application to the firmware. The application will visualize this input and you’ll get something like this.

And zoomed into a single key press.
