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.

CW decoder – The electronics

I found a circuit online that refers to a QST article in 1999, that shows a CW zero beat decoder. It uses a LM567 that converts the audio signal and switches on a LED to show the operator has achieved a zero beat. The project has a variable resistor that can be used to tune or “swing” the centre frequency – This was a good start for me, and I created the following schematic for the build and set to work constructing it on the breadboard.

As you can see its very simple indeed. I did differ from the published design and found that I could use a single .22uF capacitor across the output pins. So here is a breakdown of the build :
C1       0.1µF
C2       0.1µF
C3       1µF
C4       0.22µF
C5       0.47µF
VR1     10kΩ
R2       470Ω
IC1      LM567
LED1  
Arduino Uno – Rev 3 (or any suitable Arduino copy etc)
20×4 LCD display ( Im using a I2C display. This takes up less wiring to achieve the same result)
Once I had built the electronics, and before I tested it on the Arduino it was time to feed the circuit with some audio. Luckily I have a audio output from the FT-2000 which had enough volume to trigger the IC.
After some adjustments on the potentiometer the LED was flashing in time with the tones being received on the 20m band at 750Hz audio frequency, This was great, with no mistakes and on the 1stattempt the circuit burst into life. here is the breadboard layout of the 1st attempt. It is laid out subtly different – for ease of understanding only. (also be aware I’m using an I2C display – and in this version I was using a 2 line display)


CW decoder – The electronics

I found a circuit online that refers to a QST article in 1999, that shows a CW zero beat decoder. It uses a LM567 that converts the audio signal and switches on a LED to show the operator has achieved a zero beat. The project has a variable resistor that can be used to tune or “swing” the centre frequency – This was a good start for me, and I created the following schematic for the build and set to work constructing it on the breadboard.

As you can see its very simple indeed. I did differ from the published design and found that I could use a single .22uF capacitor across the output pins. So here is a breakdown of the build :
C1       0.1µF
C2       0.1µF
C3       1µF
C4       0.22µF
C5       0.47µF
VR1     10kΩ
R2       470Ω
IC1      LM567
LED1  
Arduino Uno – Rev 3 (or any suitable Arduino copy etc)
20×4 LCD display ( Im using a I2C display. This takes up less wiring to achieve the same result)
Once I had built the electronics, and before I tested it on the Arduino it was time to feed the circuit with some audio. Luckily I have a audio output from the FT-2000 which had enough volume to trigger the IC.
After some adjustments on the potentiometer the LED was flashing in time with the tones being received on the 20m band at 750Hz audio frequency, This was great, with no mistakes and on the 1stattempt the circuit burst into life. here is the breadboard layout of the 1st attempt. It is laid out subtly different – for ease of understanding only. (also be aware I’m using an I2C display – and in this version I was using a 2 line display)


CW decoder – Introduction

If you do follow me on twitter (and if you don’t – you really should) you will have no doubt seen my recent tweets about constructing  a CW decoder. After a number of retweets, and favorites from other very interested hams – I did promise that I would collate all my knowledge into a blog posts and share the details with you all.

So, for those who have not been following me on twitter – here is the sales pitch. I recently started looking at some projects that I could get my Arduino Uno involved in with the radio hobby. I have a number of reasons why I want to combine radio, Arduino and some electronics – more about this later.

I stumbled across a video on YouTube where Budd Churchward showed his Arduino copying and decoding CW straight off the HF band and at a reasonably high speed. I ventured further and wanted to know what electronics Budd was using to achieve this excellent little project.

I used the limited shared knowledge and discovered that the electronics is basally a LM567 – Tone decoder chip that (I have since discovered the chip is used in the ARRL book for Arduino Projects) I discovered takes an audio input and converts this to a HIGH / LOW output suitable for the Arduino to use as a signal for decoding.

Finding a suitable project for the LM567 and trying to work out how fellow constructors had configured their LM567s was not an easy task. This did indeed take quite a lot of chasing and head scratching.  I will go into more technical detail on the next post – but for the reason why I wanted to complete this ? very simple. I w
ant to create a project that would “inspire” young electronically minded students that might have an interest in radio – (i.e the morse code) some coding experience and some construction / electronic interest. This project covers all 3 areas, and only lightly covers each subject area.

In the next post – I show the LM567, the schematic and give you the list of parts required.

CW decoder – Introduction

If you do follow me on twitter (and if you don’t – you really should) you will have no doubt seen my recent tweets about constructing  a CW decoder. After a number of retweets, and favorites from other very interested hams – I did promise that I would collate all my knowledge into a blog posts and share the details with you all.

So, for those who have not been following me on twitter – here is the sales pitch. I recently started looking at some projects that I could get my Arduino Uno involved in with the radio hobby. I have a number of reasons why I want to combine radio, Arduino and some electronics – more about this later.

I stumbled across a video on YouTube where Budd Churchward showed his Arduino copying and decoding CW straight off the HF band and at a reasonably high speed. I ventured further and wanted to know what electronics Budd was using to achieve this excellent little project.

I used the limited shared knowledge and discovered that the electronics is basally a LM567 – Tone decoder chip that (I have since discovered the chip is used in the ARRL book for Arduino Projects) I discovered takes an audio input and converts this to a HIGH / LOW output suitable for the Arduino to use as a signal for decoding.

Finding a suitable project for the LM567 and trying to work out how fellow constructors had configured their LM567s was not an easy task. This did indeed take quite a lot of chasing and head scratching.  I will go into more technical detail on the next post – but for the reason why I wanted to complete this ? very simple. I w
ant to create a project that would “inspire” young electronically minded students that might have an interest in radio – (i.e the morse code) some coding experience and some construction / electronic interest. This project covers all 3 areas, and only lightly covers each subject area.

In the next post – I show the LM567, the schematic and give you the list of parts required.

MacLoggerDX

The layout of MacLogger DX on my Mac

I recently tweeted that I had dropped Ham Radio Deluxe in favour for MacLoggerDX. Amongst the re-tweets and comments i received, Danny (PA3DM) did mention that HRD is not just a logbook, but a full suite of digital modes, rotor and a rig control system. This I completely agree with, and my time using HRD was always a great experience and I would recommend the software to anyone.

My issue with HRD is this. I use a Mac. I transitioned from PC to Mac around 3 years ago, and have been using a Virtual PC to do my PC based tasks (including my day job) and this is the issue. HRD over a Virtual Machine, using RS-232 connectors is unpredictable, slow and frankly unusable. Its not the fault of HRD, nor is it the fault of the Virtual Machine, The RS-232 – USB connectors. It’s a combination of all the elements tethered together that makes the experience unusable.

So the solution ? well its not a solution to be fair. It’s a compromise. Its not HRD, its not an all in one solution, its a log book that can use the radios VFO,  the rotor and DX cluster all together. That is basically what I used HRD for. And on the odd occasion I did venture into digital modes. 
I will complete a review of MacLoggerDX in future posts, but for now I thought I would explain my rationale of making the switch.  So far, so good.

MacLoggerDX

The layout of MacLogger DX on my Mac

I recently tweeted that I had dropped Ham Radio Deluxe in favour for MacLoggerDX. Amongst the re-tweets and comments i received, Danny (PA3DM) did mention that HRD is not just a logbook, but a full suite of digital modes, rotor and a rig control system. This I completely agree with, and my time using HRD was always a great experience and I would recommend the software to anyone.

My issue with HRD is this. I use a Mac. I transitioned from PC to Mac around 3 years ago, and have been using a Virtual PC to do my PC based tasks (including my day job) and this is the issue. HRD over a Virtual Machine, using RS-232 connectors is unpredictable, slow and frankly unusable. Its not the fault of HRD, nor is it the fault of the Virtual Machine, The RS-232 – USB connectors. It’s a combination of all the elements tethered together that makes the experience unusable.

So the solution ? well its not a solution to be fair. It’s a compromise. Its not HRD, its not an all in one solution, its a log book that can use the radios VFO,  the rotor and DX cluster all together. That is basically what I used HRD for. And on the odd occasion I did venture into digital modes. 
I will complete a review of MacLoggerDX in future posts, but for now I thought I would explain my rationale of making the switch.  So far, so good.


Subscribe FREE to AmateurRadio.com'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 AmateurRadio.com!

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