Morse Trainer & Decoder for CW

I’ve always been keen on learning Morse Code and the idea of throwing an antenna up while up a hill somewhere and making some QRP contacts has always had an appeal to me.

One problem, I really don’t know Morse Code well enough to actually go and do that. Step in a Morse Code Trainer. Now, there are plenty of Arduino based ones floating around the net that I could have just used. But, me being me, I didn’t. Now, don’t get me wrong, I think Arduino is great, I use Arduino PCB’s all the time, I just don’t use the Arduino software. I’ve always programmed Atmel AVR/SAM and Microchip PIC in C. I prefer the Atmel Studio IDE (Based on Visual Studio).

I find an Arduino board to be a very good vessel for Atmel AVR micro-controllers. Means I don’t need to actually re-design a PCB layout, I use the Arduino form factor and use prototype shields to design and build my personal projects.

Throw in Atmel Studio 7 and an Arduino Leonardo clone with an Atmel ATMega32U4 and you have an instant PCB design with an AVR micro-controller on it.

So, back to the Morse Code Trainer & Decoder, I wanted something that I could practice both Straight Key and Paddle on but, also have the ability for it to decode CW from the radio while I honed my own transcribing. Plus this unit will also mean I don’t necessarily need to take a laptop up a hill with me and the radio.

So, I programmed up a basic straight key practice unit to begin with, which turned out to be a pretty good success. It didn’t do much other than beep when the key was pressed, adding in an LCD screen and a couple of switches I then turned it into something that could then decode what was being keyed directly into it via the Straight key, or switching to an input from the FT-897D it could decode from the audio.

So far so good. It can decode up to 35wpm from the radio comfortably, though I think I need to port it to something that clocks a little faster to get higher than that. I’ll see what I can do in code, hoping to get it accurate to around 40wpm before I release the code.

I’m pretty happy with the results so far, next step is to add paddle support to deal with separate dit/dah for training with and make some tweaks to the circuit for the radio input to get it a little more sensitive to lower down signals and clean up some of errors in decoding

Once I get paddle support added and some bugs squashed, I’ll post the source code and schematics, hopefully in the next couple of weeks.

So watch this space.


Starting the C code
Added LCD Shield
Radio Decode


About Kim - ZL2KEJ 10 Articles
Amateur Radio Operator, Freelancer, Photographer, Electronics Service Tech, IPC 7711B/7721B Certified SMT Rework and Repair trainer, Content Creator and mountain bike rider.

Be the first to comment

Leave a Reply