Arduino CW Encoder (CW Keyer)

In some Arduino, HAM related project books, we found some designs for a memory CW keyer for using in Contests or so.

We decided to make use of the design of Glen Popiel. KW5GP.

Basis of his design was making use of a standard PS/2 Keyboard (PC). Handy if you are not be able to use CW the normal way via a Straight key or paddle… or other reasons…hi

Also this design makes use of the well known 20x4 display, 4 memory-banks for 45 characters, a separate keyer relais, to have no potential issues to key the tranceiver, and a standard PS/2 keyboard.

His design was described perfectly in one of his books.

But, We wanted more…..!

We wanted larger memory-banks, so that is was possible to put a whole standard QSO in them.

Also we noticed there was something strange with the 20x4 display.

Arduino Antenna Analyzer

In the November 2017, Issue of QST,  there was a article published about this Antenna Analyzer project. Several members oft the Milford Amateur Radioclub have build already this project. Proof for us that is should work …hi..

The desgin is very nice. Its totally dedicated to all the Ham radio Amateur bands, from 160 mtrs to 10 Mtrs.

There is made use of a 3.5 Inch Graphical TFT Display.

All the scans and measurements can be saved on a SD memory-card on the back of this display.

Measurements are selective on each band separately and its possible to compare them after you have modified the antenna.

To use this Antenna Analyzer portal, its provided with a

9V rechargeable Lithium Battery next to a external DC power-supply.

It was a challenge again to find a nice enclosure again…

I found a nice enclosure on Ebay for just a few Euro’s.

With some manual labour, we’ve got a t the end a nice design for this project.


To finish the Enclosure, we have searched for a Bezel for this display, but we didn't find it. For a moment we have thought to ask someone to make a design via a 3D printer, but that was much to expensive.

So we decided to make something ourselves.

How did it started….?

Its just like our Ham radio Hobby…  When you have your Licence and once started to make QSO’s and doing some Experiments, you wanted more and more…

In February 2017 the VERON, Department Breda, organized a Arduino Workshop. In total 34 Hams take part and participated at these Arduino Workshop.

Han, PA0JEN and Edwin, PA7FRN did take care of the Workshop Program, Arduino parts, materials and documentation. Of course, there was also Homework to do and self-study.

Planned was a total of 4 evenings, but by the enthusiasm of the Attendees it was expanded to 6 evenings !

With lots of pleasure and enthusiasm we did this workshop and back home, we study and did some practice. And than… it happened….  :-)

Unfortunately, after 6 weeks it was over and ended. But we wanted more and more of this…

Together with a HAM friend of mine,. Bert, PA1BM, who was also interrested in more, we decided to go on with more Ham related projects.

Via Ebay and Aliexpress we ordered some extra parts and materials and together we realised some nice Arduino Ham related Projects

Our First project

We decide to start with a easy project.

A Clock for in the Shack telling us Local and UTC time on a display.

O ja Yeah.. Also telling us Temperature and  Humidity should be handy…hi…


Started with the original code, we expanded it all. We did later things and expanded the desigan with some new Modules. We named the project Hamshack Display.

The display gives you indication of: v

Arduino QTH Locator indicator using GPS

The basic information of our second project, was found in the VERON magazine of November 2015. In this issue, Hans, ON4CDU describes a nice Arduino project, using a GPS module and a Arduino Uno with some Arduino Code to calculate the HAM QTH Locator, based on the received card coordinates.

Our modifications :

We wanted to use a Arduino Nano instead of a Arduino Uno and we wanted a bigger, 20x4 display to display all the available information at once…

Also it must be possible to use it portable and not only connected to a DC power source.

CW projects

The next 2 projects are CW oriented

For a long time we had the wish, to build a CW decoder. Just to give me some help by receiving CW signals. I have not operated CW for a long time.  So I am a bit rusty…hi..

But also to have a tool to decode CW signal.

Also a CW Memory keyer to operate CW from a standard PC Keyboard. Nice to use for CW practice, but also as a tool for if the straight key is not suitable any more.

And of course a nice toool for Ham’s who have no knowledge to practice CW with a key.

Arduino CW Decoder

Looking for a suitable design on the Internet, we’ve found many projects. One even more nicer than the other one…

At the end we can say, its was a nice project to do. Its a very use full device that we already have used many times in our Antenna experiments

Arduino Literature

Jack Purdum, W8TEE

Glen Popiel, KW5GP

We searched on Internet and several Arduino For a for a usable project.

Of Course, just having done a Arduino Workshop, don’t make you a real Programmer, but you can read the code and make some changes or add some other things to the program, just as you like.

And we did find a small project to begin with. There was only one problem : Its was wrotten in Italian Language…hi..

With the help of  Google translator, we translated the code to English.

Afther that was done, we started to build the project on the breadboard

We added some extra code to switch automaticaly from Summer- to Wintertime and back.  During the night hours the backlight of the display is switched off.

It was a very nice project to start with and using the knowledge of the Arduino Workshop in practice. We learned a lot of the several Time, temperature and Barometric modules in practice. Not everything you find on the Internet is usable.

Cheap will not always say the specifications are correct !!

In fact, its a easy project. Only a few parts of hardware, a Arduino and a GPS module are used and the rest is software.

But, of course, we wanted different again….

Afther modification the display tells us:

Besides the designs, found in Books for Ham related Arduino Projects  (see Chapter : Literature below), we found again a nice looking design in the VERON magazine of November 2015.

This project was based on a design from Bud, WB7FHC, bud modified with some extra features by PA0JBG. And by the way : There was a PCB available.!

There was a lot of information available, and many other Ham’s had already build this CW decoder. Such’s thins helps to make a decision !

In this design they did make use of a 20x4 display. We find this better than a small 16x2 display.

Included in this design was a LM567 circuit for tone detection and bandpass filtering.

That was one of our wishes. We wanted to decode signals between 600 and 1000 Hz with a bandwidth of 250 Hz,

PA0JBG has added some extra features to the original design. We’ve all tested them, but not added them all.

For the precision tone-decoding we modified this design ourselves, by using a multi-turn potentiometer.

At he end the result was a perfect CW decoder which gives us a lot of help bij CW decoding on HF, especially when propagation and conditions are very poor.

We did make a direct contact with Glen, KW5GP via e-mail and told him of our wishes and deficiencies identified.

Glen told us about the limitations in memory of the Arduino Nano or Uno controller. He also recognised the shortcomings of the 20x4 display. Is has to do with the internal hardware configuration of this display.

So… it should be difficult to change this..??

Again, a challenge to overcome….

In the meantime we had learned a lot more of the Arduino Code than in the beginning…We analysed the limitations of the Arduino Controllers, and decided to make use of al lager Arduino Mega2560 controller.

This version of Arduino has much more memory available. And we did modify the Code of one of the Library's, so that we could make use of this larger memory.

Professional memory Keyer

Due to the extra capacity of the Arduino Mega260 controller, we’ve got a Memory CW keyer with 8 memory-banks of each 120 characters !

It’s now possible to pre-program a whole CW QSO with all the necessary information in this keyer.

Ideal for CW contests.

And, with the help of Edwin, PA7FRN, we’ve managed to cure the strange behaviour of the 20x4 display too !

One project ready,  another project to come….hi

One of our wishes, was to have a HF Antenna Analyzer. Commercially these tools are very expensive, and its nicer to build your own…

So when we came back from our Summer-Holiday in September 2017, I found on the Internet a description of a Antenna Analyzer project, designed by Jack Purdum, W8TEE en Farrukh Zia, K2ZIA. There was a lot of information available. A schematic design, parts list and even a assembly manual !. Also a very nice double sided PCB was available…

In consultation with my Friend, Bert, PA1BM, we decided to make this our next project.

We searched several Chinese Websites to find the needed parts en ordered them together.

At the end of October 2017, most of the parts arrived and we started to assemble the PCB.

There are many books available about Arduino Ham Related projects

A big advantage is the fact that the described project in practice really works. (most times….hi)

Of course we bought some books after we finished the Workshop. But also on the Internet there is lost of information available. Lots of E-Books in PDF-format are free for download.


Some books and Authors are :

During our project fases of the CW Keyer and the Antenna Analyzer, we had a direct e-mail contact with these authors. They were very helpful to give us a helping hand, hints and tips to solve problems.

Both Authors publish on regular bases in QST and other magazines issued bij the ARRL

Home History Equipment Arduino Information QSL Dutch

Morseduino, Semi-automatic CW decoder

This project exists of a Semi-automatic CW Decoder, Called Morseduino. This decoder detects automatically the right tone and speed of the received CW signal. There is also a programmable noise-filter. In about 80% of the time, the tuning and decoding of the signals is very good. Of course, there must be an acceptable Signal to Noise ratio of the received signal.

This design is based on a Atmel ATmega328p micro controller chip which we known of several Arduino Boards, like the de Arduino Duemilanove, and the Arduino Uno.

Only the most necessary parts are used to make it work like a real Aduino micro controller.

On the PCB we also find the already known LM567 tone-decoder.

This designs difference from the earlier build CW decoder design of Hans, PA0JBG, by using a “digital potentiometer” the MCP41010.

This IC is a electronic 10Kohm potentiometer, which digitally can move the resistance value up and down in 256 steps, controlled by the Arduino software.

On the double sided PCB we find all the control buttons and a reset-button. Further more the audio entry, headphone entry and loudspeaker connections.

All controls and connections are also via Pin-headers available on the PCB, so you can easily use external controls.

Of course there’s also a keyer possibility to practice and hearing the side-tone.

In this design, we again make use of the already known Arduino LCD display 20x4. But now we make use of a parallel connection. On board are controls to set the Backlight.

This decoder print is mounted “piggyback” to the PCB of the Display, making use of spacers.

This design easily can be used without the need of a enclosure or extra parts.

Practical experiences

Beside the fact that a few of my friends also successfully have build this  “Morseduino” CW Decoder, Are there several Regional Ham radio Society's in Holland who have started DIY groups to build this Semi-automatic CW decoder together.

I know that already > 70 Ham’s have build this design.

Building this project gives you no problems if you read the instructions carefully. Using the right parts and look at the “High Speed Kit Build” video of Budd, WB7FHC, op Youtube. Budd is the original author of this design

Macro CW Keyer, Mr. Rags.

As a addition to the “Morseduino”CW Decoder project, I’ve also build this Macro CW Keyer design of Budd, WB7FHC. He’s called it “ Mr Rags.  Why.. ? Well, with this design you can make a CW QSO very fast.

Its a Macro CW keyer, but not al real “Contest-keyer”

Its a programmable CW Memorykeyer

This keyer can automatically detect the fase your in during the QSO, just by pushing the Single Function key, and sending one letter yourself.

Its sends than the right stored macro.

Just like the design of the “Morseduino”, is this project based on the Atmel ATmega328p microcontroller chip. Only a few parts make it act like a real Arduino microcontroller.

On the topside of the double-sided PCB is a silkscreen, so its easy to know where to put all the parts.

This design, based on the Atmel ATMega329P, exists further of a LM386 audio amplifier and some resistors, capacitors and other parts.

Connections for a Iambic Keyer and Loudspeaker are made by connection blocks.

This design is made for using a Iambic Keyer. Its possible to use a straight key, but in practice this is not handy.

The central placed function-switch is doing the job !

Related on his construction, you can use it several ways

All Menu settings, calling the Macro’s during the QSO, are done by this single switch.

Its a very unique design

Practical experiences

I, myself are not a fanatic CW user. I’ve away to long caused by my Job at the time. Therefore, this Arduino Based CW designs, are very helpful for me. Perhaps also for you ?

In the beginning, of course, you have to learn how everything's works.

But once you now how it works, you can do a standard CW QSO very fast…

Don't be afraid, You are always in control, and can always just use the key yourself…hi

It was a nice project to do again.

Expanding the possibilities (2018)

In the meantime this project has been modified several times. There is used another DDS Chip, AD9851, and new Software.  The SWR bridge, originally designed with Germanium Diodes has been changed with two real logarithmic amplifiers AD8307.

You can now choose specific parts of the frequency spectrum and measurements can now be up to 70 Mhz. So the 6 meterband is now included.

Also the presentation of the results are changed.