Morse Code Tx and Rx

Okay I don't know what category this question is on,you can move this into whatever category you deem this fitting so off to the question How can I use one arduino to transmit morse code messages and use another arduino to receive it and decode it,display the message on a 16x2 HD44780 LCD screen....transmission needed is preferrably wireless e.g;IR LED flash,Radio,Bluetooth,any other methods

Thanks In advance :)

Eagle3ye: IR LED flash,Radio,Bluetooth,any other methods

If it's not visible to humans then why do you need morse code?

My Plan is to send the morse code from an arduino to another arduino via wireless and then let the receiving arduino decode the morse signal and display the message to the LCD

Eagle3ye: My Plan is to send the morse code from an arduino to another arduino via wireless and then let the receiving arduino decode the morse signal and display the message to the LCD

OK, I'll rephrase it. Where does the "morse code" come from?

Receiving/decoding Morse code from a noisy audio would be a nice project…
What is the reason to send Morse code via BT or IR or wifi?

The morse code comes from another arduino it is transmitted by any wireless methods,I don't know how to program arduino,but the morse code is tapped in from the user,I need it to be wireless for it to be invisible

I need it to be wireless for it to be covert but i could use a headphone for the Rx but it will be harder to decode than to just display it

Decoding morse code is hard to do, unless its generated by a machine which maintains constant timing. ie the length of the dots and dashes dont change. If its being sent by hand, you will have a very hard task decoding it.

So the user A will key the morse code at an input pin, the morse code will be decoded to ascii (for example), sent via BT or IR and the second arduino B will show the ascii on a display.. Basically you are asking on how to make a program converting morse code (entered via a morse key) into an ascii code. There is a lot of such source codes available, just search "morse code decoder avr pic"

Ok it's my turn to ask now.

Why morse code? Is there an existing device that already transmits that? Is this an assignment and there's no choice? Why morse code? Because as a method of transferring data it's probably the worst available to us these days.

the morse code is tapped in from the user

Ah, so someone is actually keying the code? I still ask why would you do such a thing?


Yes and the B arduino shall decode it into a text which will be displayed on the LCD

Or can someone tell me a way on producing a QWERTY keyboard for arduino A

QWERTY keyboard for arduino A

That is not difficult, you have to start a topic on "qwerty keyboard for arduino" then, however..

So now we have a keyboard, does that mean that morse code was not a requirement? I give up. Good thing I didn't spend time figuring out how to decode it.


Decoding is quite easy. I did it in 1975 as one of my first embedded projects. However, it is very slow and very inefficient and it is more designed to be decoded by humans than machines.

Morse code is the most efficient way when transmitting an information from A to B. And ~200 words per minute is quite fast, indeed.. Of course, the best morse decoder it the one between your ears.. :)

This may be splitting hairs, but I wouldn't bother transmitting the data as Morse code unless the "B" Arduino intends to display it (or sound it out) as Morse code as well. If the code is going to be converted to text, best to do that on the "A" Arduino before sending it over serial. Then, you just send your decoded text via serial like any other data.

However, Morse code was designed to be meaningful to people, with our superior pattern recognition ability. Computers don't excel at this kind of task. Given the problem, I would have the user input the message, count the pulse lengths between key-on / key-off events, then weight them as long or short based on their length relative to an average. If you're accepting more than (16x2) characters of text (like a continuous scrolling display), you might use a sliding window, which would take less memory and probably perform better in the case where the operator sped up or slowed down over the course of the message.

Or just use a keyboard...

You can use regular serial transmission which is about 1000 times faster than "morse code".

well,if via QWERTY keyboard,I need the A arduino to send it in wireless via an undecodable signal just in case a rogue device receives it it cannot be easily decoded and if the B arduino receive it it will then decode it to a readable text

If it is undecodable you will be not be able to decode it. The simplest way to encode things is to apply an exclusive or with a bit pattern under 0X7F before you sent it and the same when you recieve it.