I know that there are several commercial programs that will decode incoming CW using the computer's sound card, but this is not quite what I need.

The specific requirement that I have is to feed the decoded output (in real time) into a memo/text field in another program running on the same computer. In my mind, the easiest way to do this is to have the decoding program generate keyboard messages directed at the receiving program.

The application is for a museum exhibit that allows people to send messages using Morse Code as input. The audio input quality will be very good (generated on-site with an oscillator and wired (non-radio) connections, so having a known frequency and audio level), but the Morse code timing will be poor as the general public will be using this system.

I'm looking for solutions preferably for Windows.

Does anyone know of any resources or insights that might help with this problem?

  • $\begingroup$ There are probably commercial programs, sure. But the culture of amateur radio is more likely to produce open source - a quick search found dxzone.com/catalog/Software/Morse_Code_Decoders which lists dozens of options. $\endgroup$ – Greg Hewgill Aug 4 '16 at 21:23
  • $\begingroup$ @GregHewgill I had not seen that particular list, but I have investigated most of the entries on that list. Most are not audio decoders. Those that are, are either commercial or closed-source no-cost programs. I have found some web-based solutions, but found none that were not broken. The only open-source solutions I found were orphaned projects with a few commits dating from years ago, which is not an encouraging sign. Perhaps I'll need to contact the developers of the commercial solutions to see if they will entertain custom modifications. $\endgroup$ – EBlake Aug 4 '16 at 21:48
  • $\begingroup$ Do you actually need to decode the audio? My thought is that the switch on-off could feed the decoder directly and simultaneously generate the expected tone. Continuing the thought is a simple ardiuino-style microcontroller to do the decoding and simulate the keystrokes and a separate mini-circuit to generate the tone. $\endgroup$ – kronenpj Aug 4 '16 at 23:40
  • $\begingroup$ @kronenpj That is indeed an interesting idea. It would skip all the DFT tone detection issues, although it still leaves the decoding, which is a significant task (at least when dealing with human input instead of machine-generated CW). $\endgroup$ – EBlake Aug 4 '16 at 23:58
  • $\begingroup$ The truly difficult task is decoding the irregular, mistimed "input" from the hapless museum patron. I know for sure there's a PS/2 library for arduino. I'd bet there's a morse decoder. Welding them together to do what you desire should not be terribly difficult. The microcontroller must simply time the duration of 1's and 0's appearing at a digital input and make an educated guess on the intended character. Again, there's probably a library where that has already been worked out. $\endgroup$ – kronenpj Aug 5 '16 at 0:05

The K3NG keyer probably has all the parts you need except writing out to as a keyboard emulator, but some of the Arduino hardware that the K3NG keyer software runs on has the ability to output USB HID to a computer which makes it appear to be a keyboard.

The K3NG keyer might actually fill all your electronic requirements for the users input also.

Info on Arduino as a USB HID Keyboard: https://arduino.stackexchange.com/questions/484/arduino-as-usb-hid

K3NG Keyer: https://github.com/k3ng/k3ng_cw_keyer/wiki

Both the Arduino and the K3NG Keyer have open source communities that would jump in to help out with any problems you run into.


I think I have built exactly what you need for practising morse. I wrote it all up in a blog :-


It's a USB adapter that takes a key at one end and spits out keyboard characters into a computer at the other. It also contains a buzzer which generates the sidetone. It's really cheap and easy to build and will literally take an hour to assemble. It'll work on all computers and even Android devices without any software being installed.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.