FreeDV Voice Keyer and Spotting Demo

I’ve added a Voice Keyer feature to the FreeDV GUI program. It will play a pre-recorded wave file, key your transmitter, then pause to listen. Use the Tools-PTT menu to select the wave file to use, the rx pause duration, and the number of times to repeat. If you hit space bar the keyer exits. It also stops if it detects a valid FreeDV sync for 5 seconds, to avoid congesting the band if others are using it.

I’m going to leave the voice keyer running while I’m working at my bench, to stimulate local FreeDV activity.

Spotting Demo

FreeDV has a low bit rate text message stream that allows you to send information such as your call-sign and location. Last year I added some code to parse the received text messages, and generate a system command if certain patterns are received. In the last few hours I worked up a simple FreeDV “spotting” system using this feature and a shell script.

Take a look at this screen shot of Tool-Options:

I’m sending myself the text message “s=vk5dgr hi there from David” as an example. Every time FreeDV receives a text message it issues a “rx_txtmsg” event. This is then parsed by the regular expressions on the left “rx_txtmsg s=(.*)”. If there is a match, the system command on the right is executed.

In this case any events with “rx_txmsg s=something” will result in the call to the shell script “freedvspot.sh something”, passing the text to the shell script. Here is what the script looks like:
SPOTFILE=/home/david/tmp/freedvspot.html
FTPSERVER=ftp.rowetel.com

echo `date -u` " " $1 "<br>" >> $SPOTFILE
tail -n 25 $SPOTFILE > /tmp/spot.tmp1
mv /tmp/spot.tmp1 $SPOTFILE
lftp -e "cd www;put $SPOTFILE;quit" $FTPSERVER

So this script adds a time stamp, limits the script to the last 25 lines, then ftps it to my webserver. You can see the web page here. It’s pretty crude, but you get the idea. It needs proper HTML formatting, a title, and a way to prevent the same persons spot being repeated all the time.

You can add other regular expressions and systems commands if you like. For example you could make a bell ring if someone puts your callsign in a text message, or put a pin on a map at their grid coordinates. Or send a message to FreeDV QSO finder to say you are “on line” and listening. If a few of us set up spotters around the world it will be a useful testing tool, like websdr for FreeDV.

To help debug you can mess with the regular expressions and system commands in real time, just click on Apply.

I like to use full duplex (Tools-PTT Half duplex unchecked) and “modprobe snd-aloop” to loopback the modem audio when testing. Talking to myself is much easier than two laptops.

If we get any really useful regexp/system commands we can bake them into FreeDV. I realise not everyone is up to regexp coding!

I’ll leave this running for a bit on 14.236 MHz, FreeDV 700B. See if you can hit it!