Morse-Code Trainer Using Arduino

My kids are learning Morse code this summer, so I threw together this little circuit to help them learn. And to make it more fun…

It uses an ATtiny85 ($2.26 at to drive a piezo beeper (≈ $3.50 at Radio Shack.) The ATtiny85 takes 5.5V max, so I built the circuit on a piece of strip-board so as to fit onto the back of a 3-AA-cell ($3 or so at Radio Shack) battery pack.

Morse-code trainer

To program it, I used MIT’s “High-Low Tech” ATtiny85 core using an Arduino as an ISP programmer. I actually built a 6-pin ISP header into the board, so I don’t have to pull the chip out to reprogram it as you would with MIT’s instructions, but that’s neither here nor there. Using an Arduino core allows me to  use all the Arduino tools I’m familiar with, but I don’t have to spend $20 or more on a full Arduino when all I really need is one output pin and a couple kb of program space. The ATtiny85 is perfect for this: plenty of memory and dirt cheap. (Actually, an ATtiny25 would work with the amount of memory this program takes, but ATtiny85s are so cheap you don’t save much buying the ATtiny25.)
 Morse-code trainer schematic
Here’s the code. When the device is powered up, it waits 3 seconds then puts out the message at the desired speed. The message repeats until power is removed. Currently the message is “SOS the moon rover has broken down and I am stuck in the trash can in the garden shed.” Once the kids decode it, they’ll find a small Lego moon rover there as a prize.

About The Author

Ibrar Ayyub

I am an experienced technical writer with a Master's degree in computer science from BZU Multan University. I have written for various industries, mainly home automation, and engineering. I have a clear and simple writing style and am skilled in using infographics and diagrams. I am a great researcher and is able to present information in a well-organized and logical manner.

Follow Us:
Scroll to Top