Morse Code interpreter

[Sulaiman Habsi] and two classmates put together a Morse Code interpreter as a class project at Sultan Qaboos University. The system listens to a morse code signal using a microphone, then translates that input to text which is displayed on this character LCD.

The breadboarded circuit feeds an audio signal from the microphone, through an OpAmp, to the ADC of an ATmega8 microcontroller. The captured signal is stored as a byte in a special way. The three least-significant bits signify how many total dots or dashes are contained in the character, the remaining bits represent those dots and dashes with zeros and ones. A full description of this process is included in a PDF linked in the article above. As you can see in the video after the break, the hardware waits to process all of the signals once the full message has been received.

i would be interested in a project where the arduino can have an audio signal fed into an (analog)? pin and the cw outputted on a 2×16 lcd and maybe a piezo speaker. im sure that there is enough processing power to accomplish this without external interfaces.
colin

There’s a lot of room for improvement yet. A nice interpreter should do it in realtime and adapt to speed. This is especially important for practice. The code sent by a manual key by unexperienced sender is going to have a lot of speed deviations. Another thing that would be nice to see is a realtime (pseudo)graphical display of incoming signal, so you could see where exactly you make mistakes. For rhythm-challenged people like me it can be very helpful.

Now that there’s an input opamp anyway, probably 2 of them in one package, one could implement a 2nd order bandpass filter to filter out ambient noise.

I have other ideas about filtering but they’re unproved and I’m going to keep them for myself for the time being :)

this interpreter can translate faster than this speed but we slowed it down because we needed to show the processing to the instructor. and it has limited frequency. We appreciate any improvement to the system.

I designed a headband with a motion detector that is sensitive enough to pick up the heartbeat and can thus easily detect rapid eye movements. And I wrote a program that plays audio tracks when it detects that I am dreaming. I can sometimes hear the songs in my dreams and act on that knowledge — by flying, for example.

I have been training myself to blink in Morse Code patterns and have started writing a plugin that can decode blinking patterns in hope that I can transcribe live from within a dream one day. You can see my latest debugging session on LSDBase and download the raw data.