First things first, to download the Winkey daemon at github. Just click here and the winkey daemon will open up in a separate window. Once that window opens, select all text and save it in a text editor like Gedit to your Raspberry Pi. I saved mine in /home/pi.
Then make the file executable by opening up a terminal window and typing the following:
chmod +x /home/pi/winkeydaemon
Next, we need to find out which USB port your Winkeyer is connected to. Prior to plugging in your Winkeyer, open up a terminal window and type the following:
ls /dev/tty | more
This will list all tty type devices and there will be a lot of them – which is why we pipe it through the more command. If you have no other USB devices, then the only thing will show up are devices like /dev/tty0 which we don’t care about. Now if you have other USB devices plugged in, (which I do..) it will show up as /dev/ttyUSB0. Since your winkeyer isn’t plugged in /dev/ttyUSB0 is your other USB device you have plugged in.
Now plug in your Winkeyer and repeat the above command. Since I already have a device at /dev/ttyUSB0 it will now show two USB devices. Again in my case, my Winkeyer is connected to /dev/ttyUSB1. Your Winkeyer may very well be different. If you have no other USB devices then its probably /dev/ttyUSB0.
One thing that winkeydaemon does is set the minimum CW speed to 20 WPM and the maximum CW speed to 40. Now I like to think I’m pretty decent with CW, but that’s just a bit too fast for me. This is an easy change though. Just open up the winkey daemon that you downloaded and scroll down until you find the following:
my $debug = 0; my $speed = 24; my $minSpeed = 20; my $maxSpeed = 40; my $serial = "/dev/ttyUSB0"; my $baud = 1200; my $server_port = 6789; my $qrvMsge = '';
The four parameters of interest are:
my $speed = CW speed on start
my $minSpeed = Minimum CW speed
my $maxSpeed = Maximum CW speed
my $server_port = The port it communicates on
Adjust these to your own personal preference, except for my $server_port. We just need to know the port number winkeydaemon is communicating, and save the file.
Next you will need to install the Perl serial port library. Do so with the following command in the terminal:
sudo apt-get install libdevice-serialport-perl
Now we are ready to test winkey daemon. Open up a terminal window and type the following – this is assuming you saved winkeydaemon in /home/pi if you saved it someplace else, I suggest you type in the full path name.
~/winkeydaemon -d /dev/YOUR-USB-PORT
Where YOUR-USB-PORT is the USB port that your Winkeyer is connected to. In my case with winkeyer connected to ttyUSB1 I would type: ~/winkeydaemon -d /dev/ttyUSB1 If everything is working, you should get no errors and it should return to the prompt. Then fire up whatever logging program that you want to use winkeyer on and make sure that the port it is listening on for the keyer is the same as in winkeydaemon as listed above.
Rafael says
Mike, good evening to you and yours…
I wanted to type these few lines to immensely thank you for the above write up. It has allowed me to make use of my mini winkeyer on the Raspberry Pi 4 that I recently purchased. I am a newby using Raspberry. I only had to pay attention as to the path for my installations. Working as a charm now on fldigi and directly connecting my Begali onto the mini.
Again, you have made my day and I cannot express my appreciation for the time you took to the writing. I will keep this as a file for the next time around….hihi
73 es forever in debt
Rafael / NN3RP
WB8ERJ says
Thank you Rafel for your kind words. Hope to work you some day!
— Mike WB8ERJ