This Arduino based CW decoder was developed by Hjalmar, OZ1JHM.

Hjalmar published the schematics and source code for everyone to use.

The “sketch” programmed in to the Arduino is based on the Goertzel Algorithm for those who are interested on how it works.

To increase the flexibility a microphone like this can be added to the circuitry.

If you are interested on building this CW decoder, but need assistance or have any questions feel free to send an email to: [webmaster (at) k2jji (dot) org].





UPDATED 9/18/2015:

This post was made 1 year ago exactly to the date but it is the most viewed article on this site. I receive a lot of questions on this project. Most of the questions I get are about how to connect the components. I have deiced to post the schematics of my implementation and also the code I use on my version of this project. In addition I also designed a single sided PCB version of the board for those who want to give it a try. You can etch, CNC machine or send out the files for fabrication.



My version allows you to select the target frequency and also the bandwidth via jumpers.

Jumpers configuration:

A0 OFF ON OFF ON A2 OFF ON OFF ON A1 OFF OFF ON ON A3 OFF OFF ON ON BW 220 Hz 140 Hz 94 Hz 70 Hz Target

Frequency 496 Hz 558 Hz 774 Hz 992 Hz

Source code – Codebender:



Schematics and Layout – Upverter:



Top View: Bottom View:





Completed PCB. If you want to download the fabrication files click here and scroll down to the Export Data Design section.



If you have any questions or comments, feel free to leave your message below. Let me know what you do with this.