A SW Keyer for remote operations

This is a simple tool based on the "Morse Code Iambic and Semi-Automatic Keyer" from the Morse-Code-Tools projects.

You can use your key, bug or Iambic Paddle stright connected to your personal computer without a hardware morse keyer. I modified the code to send commands over the network to a remote actuator connected to the Key Line of your rig. The actuator can be a Arduino board (like in my previous project Remote Morse Key) or, if you already own a Raspberry PI 2/3, you can install a simple shell script (see below).

In addition, if you are a FlexRadio 6000 user, you can solve the issue of the Missing CW Tone when you use the radio in Remote Mode. (see the video below).


List of the simple hardware you need:

  • n 1- USB to 232 adapter (with full DB9 lines);
  • n 2- 6800 Ohm resistors;
  • n 2- 100 nF ceramic capacitors;
  • n 1 - your cw key, bug or paddle
  • n 1 - 220 Ohm resistor
  • n 1 - 4n35 opto-coupler
  • n 1 - Raspberry PI 2/3
  • n 1 - Software tool you can download from below




On the local side you have a pc connected to your rig (in my case it is SSDR and Flex 6300). Then connect your key/paddle to the serial port of your pc using a USB to RS232 adapter. You need a DB9 adapter for debouncing. See the pictures below.


Next start the program I modified that can read the signals from the com port and sends 0/1 commands via TCP protocol. The software, and its remote actuator, implements a Step Function. While it is a very simple solution  it seems very reliable as well. 

Before enable the program, configure the TCP channel and set the com port of your key. That's all.

Download - Just uncompress all the files in a directory and run the .exe program.




On the remote side I use a Raspberry PI2 connected to the same network of the FlexRig. A script, you can copy from this page, can be used to key the rig.

The script simply start a TCP socket on the RPI and key it upon receipt of the command. See the picture below.

In the picture below you can see my Pi RemoteQth server. It has enough resources to execute the script and activate the key line of the Flex 6300 rig. You can do the same with your own RPI2/3.





#be sure you have already installed nmap on your PI

echo "Start listening on port $PORT ..."
while read line

    #echo $line
    #echo $line | od -An -t uC

    #echo $cmd
    #echo $cmd | od -An -t uC

case "$cmd" in
    0) #echo "000"
       gpio write $CW_PIN 0

    1) #echo "111"
       gpio write $CW_PIN 1

    3) echo "Going to stop listener ..."

    *) #echo "unknown cmd"


done < <((echo "Welcome. Please give me one of the following commands: 0 | 1 | 3") | ncat -k -l $PORT)
echo "... listener stopped."
exit 0