The CW Decoder Program – A Historical View

I’m Grant, WD6CNF. I joined the NORCAL QRP Club about a year ago and started to attend the monthly get together at the California Burger in Pleasanton, CA. Many club members were displaying their QRP, Keyer, and regenerative receiver kits to other hams. I though this was a good way to exchange technology and to socialize. After several months of attendance, being a System Engineer who works with systems implementing both hardware and software, I thought it was strange that there were no software programs that helped the CW QRP operator. Discussing this with other hams it was generally agreed that a software program that would decode CW would be of use to the Operators at the club. Writing a CW Decoder program also seemed like a good way to contribute to the club activities.

The CW Decoder program would allow beginning operators to listen in on CW conversations without having the skill of a seasoned CW operator. This, in turn, would eventually generate interest in operating CW on the air. Seasoned operators (being lazy) could also use the program to monitor W1AW and weather broadcasts on the HF bands. There were other programs that were available as shareware, many were DOS based. Out of seven programs that I was able to download from the Web and from shareware disks only two of them would run on my computer. A windows based program would be much simpler to run and could be resident with other programs on the desktop. Thus, the programming effort started in earnest. Recently there have been a couple of other Windows based CW programs that have become available. More on that later.

The original CW Decoder program was designed to decode CW transmissions on the air and convert the code to a simple text display for the operator. The controls were very simple and thresholding of the signal was a manual operation. Since I’ve had experience programming the PC sound card for other projects it only took a couple of months to get the program up and running. If atmospheric conditions were quiet and operators typed perfect code the program did its job. Since that was about 1% of the time, the fun began. New features were added to enhance the operation of the program. A simple bar spectrum display was added to enhance the tuning of the signal so that the text decoding software had a signal to work with. An automatic threshold algorithm was implemented to allow the program to work with both strong and weak signals. Text decoding strings of CQ, AR, BK, and KN were added (instead of decoding a blank string) to enhance the understanding of a CW contact. And so on.

At this point the first release of the software was made available to the club members. Along with the release of the software, some schematics were available on how to hook up the computer to the receiver. I displayed the software at several club meetings with my Heathkit HW-9 QRP Transceiver. Was this good enough? Noooooooo….. They wanted more, a transmit capability. They thought a program like this could be used for contests but it would be nice if they could also have a ‘keyer’ function.

Since the ‘keyer’ function would be used in a contest, many features had to be included; a variable transmit code speed, multiple memory locations, full break-in operation, a tune-up mode, etc. This programming effort took about 5-1/2 months of my spare time to integrate the new functions into the old decoder version. My work schedule (the paying job) was very demanding during this time. The new version was released to the club members. To use the program I had to design an optical coupler interface between the computer and the QRP transceiver. I demonstrated the software with accompanying schematics showing how to hook the transceiver up for both transmit and receive with the computer.

At this point many suggestions on improving the program started coming in and of course the bugs started showing up. After a few months things settled down to where most of the functions of the program were easier to use and the program did not crash the user’s computer (such is life). Things were fine until I download other Windows based CW decoder programs and found that they operated better than my version and had neater displays. So…. Back to the drawing board for the program and its features. A new spectrum display was added that stayed visible during text decoding. This changed how processing was done. A lot more things had to be completed in the same amount of time. Functions keys enabled text generation strings in the transmit mode. A MANUAL text operation mode was added to allow the operator to type in text in a window instead of the computer performing the decoding. The ESCAPE key quickly terminated the CW transmission. More work was done to improve the text-decoding; a noise-riding threshold was implement to allow decoding of text when the noise level was S7 and the Signal was S9. Timeout counters were implement if the text-decoding algorithm hung up (typical in noisy environments or during long tune-ups). File storage for received text and transmit text was implemented. Help screens were built in for instructions and for Q Signal descriptions. Plus there were many other refinements.

Today, the CW Decoder program is a full-featured program has been used in several contests, under varying atmospheric conditions, and appears to be a good performer. It decodes about 85% of the CW operators on the air and is fun to use. It is stable enough to be released to the Web for the edification of CW operators around the world. Best of all, the program is FREE!

Leave a comment

Your email address will not be published. Required fields are marked *