PICAXE-20X2 Icom Automatic Voice Keyer Mk2

2012-04-23 09.20.50

This project was based upon my original Icom Voice Keyer Mk1 which worked well however I found it a little large and after use a few areas for improvement were needed, but the main reason was I sold it to someone who was desperate for it without the skills to make one…

In the Mk2 version there are 2 main updates over the Mk1 version;

  • Update: The AUTO button has been removed and replaced by the function of a long press of any of the M1..M4 buttons.
  • Update: Installed a relay in the PTT line to isolate the footswitch from the radio to improve PTT detection – for cancelling a voice keying in progress.
  • In the Mk2 version I’ve added a feature to allow an LED to illuminate to show which voice memory is active, this is useful in AUTO mode, but you can decide if this is for you.

So lets look at these changes in turn.

Auto Update Button

In the Mk1 version I did actually change the code that allowed AUTO mode in 2 ways; that was to first press the AUTO button then the memory M1..M4 button and off you went or to just long press the appropriate memory M1..M4 button for 1 second.  The second way worked very well so I never really used the AUTO button so I removed it from the Mk2 design and works great.  Short press is a memory M1..M4 button and you get a single voice key and a long press of a memory M1..M4 button and it puts it into AUTO mode, triggers the memory playback and illuminates the AUTO LED to let you know you are in auto mode.

PTT Relay Isolation

I also found in the original version there were times that trying to cancel the voice key when it was playing was not possible meaning if you heard someone call you you had to wait for the voice memory to finish playing before you could cancel it.  While some of that might have been down to code I also found some was hardware in that when the Icom was in TX the PTT line was LOW (0v) which was the state needed to detect if the footswitch was pressed.  As the PTT line was low pressing the footswitch made no difference to the state or PIN level on the PICAXE chip so it couldn’t detect the user was trying to cancel playback.  My solution in the Mk2 version was that while in AUTO mode, or when an individual voice playback is active when not in AUTO mode, isolate the footswitch from the Icom PTT line using a relay.  This has a number of useful outcomes;

  • When the radio is in TX meaning the Icom PTT line is low the PTT input state from the footswitch, now being isolated, can be detected by the PICAXE chip. 
  • This also allows the PICAXE chip to detect the Icom PTT line on a separate PIN, this is used for a few states in the code including stopping the timer function when in auto mode, meaning the timer only counts when the PTT is not active and better memory playback cancelling.
  • When in auto mode and you cancel the playback, there is a slight delay in connecting the footswitch to the Icom PTT line to stop the radio going into TX and transmitting over the station you want to hear when you are just wanting to cancel the voice keyer. This delay is only 200mS but releasing the footswitch before this time puts the relay in direct mode so the next footswitch press will allow TX.
  • When not in AUTO mode the PTT is straight through the relay so that the footswitch is directly connected to the Icom PTT pin.

Memory LED Illumination

The buttons I used have built in LEDs so I implemented this new memory playback indicator feature. When a voice memory is triggered from the voice keyer box the LED associated with the memory M1..M4 button illuminates for the duration of the playback then goes off when back in RX.  In auto mode this is useful to show which memory is being keyed each time the timer is reached, the Mk1 version only had one LED to show it was in AUTO mode, this AUTO mode LED is still in the Mk2 version.  So now in the Mk2 version when a a voice memory playback it triggered, either individually or automatically, then the appropriate memory button LED illuminates.  See the video for a clear example.


During construction I made a little video to show the keyer in action.

Interface Notes

As explained in the Mk1 article the way to trigger a voice keyer memory playback on Icom radios is to switch in a resistance between pins 3 and 7 of the 8-pin mic connector.


The way I implemented this for PIC control was obviously to use transistors as the switches.

NOTE: The schematic is shown reversed to the Icom keypad image which is due to only showing a small of the schematic.


In the Mk2 project I placed SMD resistors of the required value between the transistors in a chain.

2012-03-31 15.19.24


2012-04-02 20.33.14

2012-03-30 18.07.43 2012-03-30 18.28.07

2012-03-31 16.47.52 2012-04-02 20.33.05

I used Surgu to fill in the dip in the case to make it flat and level.

2012-04-09 22.04.29

Project Box & Labelling

The box I used was from an old soundcard case which just seemed to work perfectly. I rubbed off the original lettering with some Magic Sponges, which is foam with very fine particles embedded which makes it abrasive but very finely leaving no scratches (ideal for lots of everyday cleaning, everyone should have some). I then designed the label to go on the top, which was one of the first projects where I started using Microsoft PowerPoint for designing the layout sticker.

I wrote a separate article on that.


You can grab the PowerPoint pptx from my webpage.

PICAXE-20X2 Code

The PICAXE code can be found here for download.

Leave a Reply

%d bloggers like this: