Magic Morse is a mathematical algorithm that [Ray Burnette] wrote a few years ago to make it easy to send and receive Morse code. When he first wrote it, he designed it for a PIC, but since then he has re-written it to use as a training program for the Arduino platform.
It can run on the Uno, Nano, Pro Micro, or even home-brew Arduino boards. He’s demonstrating the program with a Nokia 5110 LCD, but has also included code for the typical 2×16 LCD displays. The Magic Morse algorithm is copyrighted, but he has released the Arduino code as open source in an effort to get people using Morse code once again — it is pretty awesome.
So how does it work? The algorithm assigns weights to the “dits” and “dahs” as received — when there is a longer pause, the algorithm creates a pointer which calls the character out of an array stored in the EEPROM. He’s included an example of this in Excel on his page.
Now you have no excuses about learning Morse code! Oh and if you don’t have a fancy telegraph key (the switch), [Ray’s] also published a handy method of making your own Morse code key out of popsicle sticks and magnets.