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.
Hi,
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.
Thanks.