MorseMode is a hardware translator between (a subset of) ascii and international Morse code. It is mostly a "just for fun" project, but might have some limited practical application. A zipped copy of the current version of the project source code is available in the Files area of this project.
The challenge can be stated as follows. Using low power, inexpensive hardware, create a means by which data be sent over a open channel (radio, sound through the air, infrared light etc ) in a form that is accessible to both computers and minimally augmented human beings. A data rate slow enough for a person to read in real time is assumed, say 5 to 40 'words' ( groups of five characters each) per minute.
This data rate is no challenge at all for computer-only data transfers. The 'challenge' is that I am also requiring that the transmitted information be accessible to humans without computer assistance. There are old stories (possibly apocryphal, a google search turned up nothing) of phreakers who could read teletype-era modem tones by ear, but even if the stories are true this skill is likely difficult to learn. Alternatively, it might be possible to use voice recognition software on the receiving-end computer. This idea solves the human access problem, but is unlikely to be a practical, general solution in 2017 on "low power inexpensive hardware".
Morse code may be a useful protocol to address the problem as stated. Use of Morse is a skill that can be learned by most people who choose to do so (When I earned a ham license, I went from zero to adequate copy at 20 words per minute in less than six months without extraordinary effort or talent). The characters of Morse code are arrangements of the "Presence" or "Absence" of a signal; it is an intrinsically digital protocol which should be easy to read and write by machine.
Some people may be surprised to learn that Morse is still a 'living' medium. Until 2007 Morse proficiency was a requirement for at least some Amateur Radio licenses and it remains a favored mode of many amateurs. In 2017 there is still one class of FCC Commercial Radio Operator License that requires demonstration of Morse proficiency https://www.fcc.gov/wireless/bureau-divisions/mobility-division/commercial-radio-operator-license-program/examinations
The test hardware is based on some Arduino clones pulled out of my 'old projects' pile uh... resource archive. At one end is an UNO R3 and the other is a 5V 16 MHz pro-mini clone with an FTDI usb-to-serial converter. Computers on the "sending" and "receiving" ends of the conversation simply read from and write to their respective serial ports. The computers have and need no knowledge of Morse. An human participant in the conversation should need only the minimum hardware required to access the chosen physical transport medium, with data processing handled by the brain.
This project is still a work in progress; although most commonly-used ascii characters have direct Morse equivalents, some do not. For now, if ascii characters are sent that have no direct Morse equivalent, they are replaced by underscore characters. No notification of an unrecognised character is presently returned to the sender; also, extensions to Morse code that address languages other than English have not been implemented.
Currently the MorseMode hardware works quite well when the two units are connected by wire. The next step is to add an analog front-end to allow convenient interface with e.g. acoustic, radio or optical links. Sound-through-air is my initial choice of physical transport medium This will allow a convenient way to experiment in a “real” noisy, multipath environment. It is also consistent with the basic concept of allowing an unaugmented human being to directly access the data stream. A human can receive by ear. To transmit, a person would need a switchable sound source of suitable frequency. Mouth-whistling probably won’t work, though a Captain Crunch ‘2600’ whistle might....Read more »