K3NG Arduino-Based CW Keyer and Homebrew Paddles

Last weekend, I built a little morse-code keyer and a small set of iambic paddles. As I try to continue trying to improve my more code sending and reception, I’ve been running into the limits of what I can accomplish with a traditional straight key. The paddle not only allows for faster sending with perfect spacing, but the back-and-forth motion of he paddles is much easier on the wrist than the up-and-down pressing of the straight key.

While I was tempted to roll my own Arduino keyer code from scratch, the sheer number of features available in the K3NG Keyer Code made that a much simpler starting point. Frankly, I can’t think of any keyer-related function that the K3NG code doesn’t do, and I’m only actually using a small portion of its capabilities. I’m using it as a generic ultimatic-style keyer with sidetone and a potentiometer for speed control. Among the features left by the wayside (for now, at least) are:

  • USB and PS/2 Keyboard support
  • An LBCD display
  • Recordable memories
  • Beacon/Hellschreiber/QRSS Sending
  • Sending practice
  • Callsign receive practice
  • CW Decoder
  • So much more….

Simplifying the K3NG circuit considerably left me with the following schematic:


The unit and its batteries are contained entirely within a 1-gang plastic junction box, an idea shameless stolen from an old W6KWF project. The power source from the project is just 4 AA batteries in series. The power switch for the unit is built into the potentiometer – pulling it out turns the unit on, pushing it in turns it off. The little 1.5″ speaker came from one of the old AM radios I pulled apart, I think. The remainder of the electronics are just point-to-point wired on a piece of perfboard, which rests on top of the battery pack.


I considered adding an power indicator LED, until I noticed that the power LED on the Arduino Pro Mini itself is clearly visibly through the plastic of the box. Looks nice!


The speaker-enable pushbutton was a last-minute add, when I realized that I wouldn’t want to hear both sidetone from a rig and from the keyer. It’s just a SPST latching button. The K3NG software has an option for turning off the sidetone in software, but I opted for just a hard cut-out switch.

I’ve yet to make a contact with the new keyer, but it’s proved useful as a code-practice machine if nothing else. And it should be interoperable with any future radios that accept a straight key, so I think it’ll be a part of my shack to stay. I do wish there was a way to adjust the programming without pulling the box apart, but at only two screws, I think that bit of difficulty is a good trade for a cleaner presentation.

Of course, for the keyer to be useful, it needs a set of paddles to go with it. Mine took about an hour to make from start to finish. It’s just four pieces of scrap copper-clad glued and soldered together. Two pieces of single-sided copper clad, copper-side-in, form the paddles.  A 1/4″ bolt with two nylon lock-nuts forms the center-contact -rotating the upper lock-nut changes the spacing between the paddles and the contact, which allows for some adjustment in the feel of the paddles. A small raised piece of copper clad keeps the paddles elevated off of the base. The 1/8″ stereo cable is soldered to this last small piece of copper clad.

This actually works pretty well for such a quick project, though it became obvious pretty quickly that it needs some kind of base or strap to hold it steady when operating. That can be the next project.

Hear you on the air!



2 thoughts on “K3NG Arduino-Based CW Keyer and Homebrew Paddles

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s