Technical Topics
Technical Articles Preview

Vintage Receivers



Morse code keyboard

  • Designed using embedded micro-controller with a unique algorithm

  • Generates both perfect CW and the old time "bug" speed key sound

  • On-the-air in its present form for 20 years

Morse code keyboards have been around for a long time now. I first remember reading about one in the early 70's in QST. Those early designs were hardware marvels with complex schematics. One of the commercial offerings 1 cost $500! Later, of course, Morse code keyboards used microprocessors. All were designed with the purpose of eliminating human errors and variations. The Morse code keyboard generated perfect CW, and sounded great. The dual paddle keyers can also generate good CW. Soon everyone began to have the same perfect sound. Today, there are still hand keys and bugs in use, but they are in the minority. Perfect CW has become the standard.

In 1980 I designed a CW keyboard around the Z80 microprocessor for my own use. I wire wrapped a prototype, added an ASCII keyboard made by Cherry, placed it into a custom keyboard enclosure made for the Cherry keyboard (I designed and had this enclosure made for an earlier commercial project of mine), and then wrote the assembly language code to make it run. Later on, I adapted a Z80 printed circuit board (one I had designed for my employer) to replace the wire wrapped prototype board. I now had an official printed circuit board assembly, an excellent looking enclosure, and a commercially made ASCII keyboard. I then got custom keyboard key tops engraved for the special functions and Morse code symbols needed. At this point, the hardware was finished. It was more robust and looked better than anything commercially available.

Inside the Morse Code Keyboard

Inside the Morse Code Keyboard  

Before this keyboard, I used hand keys and then migrated to the dual paddle key and iambimatic keyer 2. I never owned a semi-automatic key like the Vibroplex. I have used them but never became proficient in their use. In their day, bugs were an advantage because they generated the dots (or Dits) automatically, saving the key operator a lot of effort. The dashes (or Dahs) still required a manual paddle depression and release for each one sent. The time length of these Dahs depended upon the individual operating the speed key. Many speed key operators can be identified by their own individual keying characteristics (or fist). I knew it was Dan, W8ZCQ (SK) before he even signed his call letters. It was just like recognizing his voice. Of course, some operators sound better than others, but I have noticed that bug users often use the manually generated Dahs to their advantage. Sometimes it's necessary to emphasize a particular letter in their call sign that has been copied incorrectly by the DX station. Other times emphasis can be added to attempt to compensate for bad band conditions. Sometimes a change used at just the right spot can generate humor or it may clarify a point of discussion. You can't do this sending perfect CW.

I defined an algorithm that modifies the perfect code sent by my keyboard. The change depends upon where a Dah occurs. I added two momentary key switch functions that define the degree of emphasis. This way, I can select either "light" or "heavy" implementation of the predefined change. Since these are momentary action keys, I can instantly shift into the bug emulation mode. A single character may be emphasized this way. For example, the ending letter "K" sent after an exchange may be lengthened from the normal Dah Dit Dah to a Daah Dit Dah, or to a more emphasized Daaah Dit Dah. I don't usually use the bug emulation all the time. I choose instead to selectively emphasize where it's most effective. For fun, I sometimes call CQ using the bug mode. Changing from normal code to the bug emulation mode for a character or two has puzzled some listeners. A DX station asked me if what I was doing was intentional, and if so, how was I doing it? Usually the other stations don't ask. They may figure I'm really skilled at using a bug, or that I have two separate keys.

How does this sound on the air? I can best describe it as sounding like a bug operator with very uniform characteristics, although the choice of light or heavy emphasis that I can instantly change distorts this description. I'll consider adding an audio file here to let you listen to it for yourself.

This Morse code keyboard is still an essential station accessory. Despite its age, it works well. The steel keyboard enclosure (great for RFI suppression) and well made components have contributed to its longevity. Somewhere during the process of converting from the old CPM 8-inch floppy disk format to the smaller IBM PC format in the early 1980's, I lost the original Z80 assembly source code. However, I remember the bug emulation definition. Since this Z80 hardware implementation is dated by today's standard, I won't offer schematics of this controller. If I were to choose to build one of these today, I would use a common stand-alone PC keyboard hooked to a small custom PIC embedded controller interface. This would be practical and still provide the same result. Alternately, a program written on a PC with an interface to one of the PC ports would work, but I prefer the stand-alone keyboard approach.

I made this project originally for utility and fun, and that's pretty much the definition of CW.


1. "Curtis Electro Devices KB-4200 Morse Keyboard", Recent Equipment Review, QST, Oct. 1974, pg. 40-42.

2. Harry Gensler, Jr., K8OCO, "The Iambimatic Concept", QST, Jan. 1967, pg. 18-21