Keyer Parts on the Way!

By JonathanGuthrie, 8 October, 2020

A couple of years ago, I wote about a new keyer I was working on. What I meant by "working on" at that point was the software. I got a ways into that project and then essentially no farther. Life intervened and I got interested in other things and ran into some issues that I couldn't immediately overcome and a dozen other wimped-out excuses. So, it might come as a shock, assuming that there's anyone left who is paying attention, that I've not only continued to work on this project, but have actually made progress.

So, what's up? Well, I've given up on gEDA as the schematic capture and printed circuit board layout software. It just felt like I was crawling uphill over broken glass to do layouts because some critical footprints (feetprint?) were missing. Unfortunately, that meant I had to start over basically from scratch with something else. In my case, I chose KiCad as the replacement. Now, starting over is something that people have to do sometimes, but it's not something I look forward to. It's just hard to get started, but after watching several tutorials and running out of other things to do, I've done it. A new board, made with surface-mount parts, has been laid out and three have been ordered from OSHPARK which is the place I used last time. This new board is slightly larger than the old one because it has to be, despite using mostly surface mount parts.

Parts to populate it are also on order. Those that I don't already have, anyway. I wound up adding a beeper for so it could generate a sidetone in standalone mode and a switch so you could turn the sidetone off because you didn't need it. It's got a bunch of LEDs so you can see what it's doing while it's doing it. My plan is to just sandwich this board between acrylic sheets with standoffs instead of putting it into a case like I did with the last one. I can imagine how that will turn out, but I don't know if reality will match my imagination. We'll see.

Let me know if you would like me to do a through-hole version of this board. One of the purposes of the original Arduino keyer board was to help me practice surface-mount soldering, and this new one kind of just continues in that direction. Eventually, I'll publish the schematic files and layout in whatever files KiCad uses, but I'm not ready yet. Let me build at least one first. If I did the design right, I can use an stereo aux cable plug to connect one of the key outputs directly to the keyer port of the Hermes Lite 2 that I have. We'll see.

Of course, this dongle isn't just supposed to be used in "standalone mode" as a dumb keyer. It's supposed to be part of a system with a Raspberry PI providing a touchscreen LCD user interface. I have all the hardware for the Raspberry PI, but the software has always been lacking.

So, a bit of a digression. I program embedded systems professionally and my current job involves programming a device that is kind of like a Raspberry PI, okay it's actually more like a Wandboard with an Ethernet switch bolted to it, but the differences aren't likely to be important to anyone not involved with development. The point is that it's a small computer that is intended to deal with all kinds of conditions like the power failing suddenly. To deal with stuff like that, we run the system out of a ramdisk. That means that, although at its heart it's a Linux computer, we never run fsck on the root filesystem because it always loads a new image from flash.

Since I consider running from a ramdisk to be the way to do it, I've had to struggle to figure out how to build such a ramdisk for the raspberry PI. However, a couple of months ago, I read a message on the Rasbperry PI user forum that suggested the use of Buildroot for that purpose. How to do that with Buildroot wasn't intuitively obvious to the casual observer, but I eventually figured out how to do it and I now have a image that boots into ramdisk and which has a partition on the micro-SD card I can use to hold configuration data. There's lots of things it doesn't have (X Window, Python, and touchscreen support, to name three) but that was close enough to my goal that I felt I should finish the hardware design and implementation.

This has been a years-long effort, but it may be approaching a semi-useful status.


I've been thinking about the dongle. I've been thinking that I didn't want to have a dongle where you could only use one of the outputs in standalone mode. I always didn't like that part of the design, but I haven't had any good ideas about what to do about it, and besides the standalone mode is supposed to be both a kind of emergency fallback mode which I've always imagined as kind of a replacement for my MFJ Econo-Keyer, which only has one output. I also have been thinking that it would be better to use one of those rotary encoders for the speed control rather than the potentiometer. That would allow a much broader speed range in the knob with single-wpm precision. Yesterday, I realized that many of those rotary encoders also have a contact which closes when you press on it, and that including one of those would allow the user to select both the speed and which output is getting keyed. So, I'm going to lay out the board again with one of those instead of the pot.

I've also decided to definitely do a through-hole version of the board. I'm going to call the new boards revision 2 and revision 2T.