CW decoder – The Arduino

This is arguably the simplest part of the project. As mentioned Budd Churchward had created a series of videos on how he wrote the Sketch,  created a PCB and published his code. (Budd's Sketch is available here)

I simply downloaded the sketch and uploaded it to the Arduino. Well almost.

I did actually make a couple of changes to Budds sketch. As I mentioned I wanted to create a buildable project that students can understand the radio, electronics and the software element of this project. 

I created a couple of functions that simply look for a LOW on 2 pins. If this exists the Arduino loads a debug function where it writes out some text to the screen, and flashes an LED.  This is an important step for the build project I have in mind, as I want the students to build a bit then test a bit etc. For those who have seen the RSGB Century PSK receiver - and the instructions I wrote to accompany the project, you will instantly know what I mean.

I also included a write out to the Serial port the serial address of the I2C display. And finally add the I2C libraries to enable to I2C display to be used.

Another alteration was to create an auto reset function where if the Arduino cannot resolve 10 characters in succession, it calls the auto reset method, and simply reboots the Arduino.

That’s it. If you didn’t want to change any of the code, I would simply grab Budds latest version and use that. It works perfectly fine. Connecting the circuit again couldn’t have been easier. I took the output from Pin 8 of the LM567, and installed it onto PIN 8 of the Arduino.

Here is the board and Arduino working on the 1st attempt of connecting it all together.

That’s it. However I didn’t want to stop there. So I made some changes and improvements on a Vero board version. I also looked into finalising the Circuit on a PCB. I will cover more of this in an upcoming blog post. and how the new version is looking.
Dan Trudgian, MØTGN, is a regular contributor to and writes from Wiltshire, England. He's a radio nut, IT guru, general good guy and an all round good egg. Contact him him here.

One Response to “CW decoder – The Arduino”

  • Steve KG7WPQ:


    I tried to download Budd’s sketch from the link above and got an error. Do you know of another source for that sketch? I want to compare it to the one I am working on developing as the code I have seems to have trouble decoding anything over 20 words per minute and I forsee problems there.


Leave a Comment

Subscribe FREE to's
Amateur Radio Newsletter
News, Opinion, Giveaways & More!

Join over 7,000 subscribers!
We never share your e-mail address.

Also available via RSS feed, Twitter, and Facebook.

Subscribe FREE to's
Amateur Radio Newsletter

We never share your e-mail address.

Do you like to write?
Interesting project to share?
Helpful tips and ideas for other hams?

Submit an article and we will review it for publication on!

Have a ham radio product or service?
Consider advertising on our site.

Are you a reporter covering ham radio?
Find ham radio experts for your story.

How to Set Up a Ham Radio Blog
Get started in less than 15 minutes!

  • Matt W1MST, Managing Editor

Sign up for our free
Amateur Radio Newsletter

Enter your e-mail address: