Echolink node on Raspberry Pi using SVXLink (part 1)

Echolink node on Raspberry Pi using SVXLink (part 1)

While prepping for Winter Field Day I was inspired to setup a Raspberry Pi for portable/emergency operations. This ‘concept’ has lead me down a rabbit hole of HAM Radio fun. Although not on my original Pi to do list. I thought I could setup an Echolink node to our local repeater using a Raspberry Pi and a Baofeng HT.
I found a lot of good information on the web. However, most of it was outdated. I start by setting up a Simplex node for testing. Once I get that working I’ll move on to connecting the node to a local repeater for community use. For reference I’m working with:
-Raspberry Pi 3 (with Raspbian Desktop Buster release) and a 64GB micro SD card
Sabrent USB Sound Card $8 on amazon
3.5mm headset splitter cable $6 on amazon
-Baofeng HT
BTech APRS Cable $19 on amazon

The goal of this project was to setup a Raspberry Pi as an Echolink node that connects to a local repeater. Eventually I’d like to have this setup powered from from the 12v side of my homebrew solar or battery/backup power source.
References for this project are: 
This article assumes you have a basic working knowledge of the Raspberry Pi.

Initial setup:
-boot up the Pi and update apt. Then install the SVXLink server

sudo apt-get update 
sudo apt-get install svxlink-server 

-CD to the /svxlink/sounds folder, downloaded and extract the sounds. Then create a symbolic link to the the extracted sounds folder.

cd /usr/share/svxlink/sounds/ 

sudo wget 

sudo tar xvjf svxlink-sounds-en_US-heather-16k-19.09.tar.bz2 

sudo ln -s en_US-heather-16k en_US 

At this point you have SVXLink installed as well as the sounds files. Now its time to connect the USB Sound card and set it as the default audio device. First we need to find the USB Sound card device ID. Then we need to edit the alsa.conf.

arecord -l 

You should get a result similar to:
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0 open nano and edit the alsa.conf

Use nano to edit the alsa.conf

sudo nano /usr/share/alsa/alsa.conf

   Edit the lines default.ctl.card and default.pcm.card. In my case I changed the number at the end of the line from “0” to “1” as arecord listed my sound card as Card 1, Device 0.
default.ctl.card 1
default.pcm.card 1

Use “ctrl + x” | “y” | “enter” to exit nano and save your changes. Now reboot the Pi

sudo reboot

After the reboot, head back to terminal and run alsamixer, verify the USB Audio device is set as the default playback/recording device. At this point I connected speaker/headphones to the USB Sound card and played a video in Chronium to verify audio output was working.


Next we’ll edit the svxlink.conf for our initial setup. Before we make any changes I always like to make a copy of the .conf as backup in case something goes wrong

sudo cp /etc/svxlink/svxlink.conf /etc/svxlink/svxlink.conf.bak

sudo nano /etc/svxlink/svxlink.conf

Under the [GLOBAL] section:
uncomment: “CARD_CHANNELS=1”
Under the [SimplexLogic] section:
RX=NONE (this is temporary)
Under the [Rx] section:
AUDIO_DEV=also:plugw:1 (recall our USB Sound card was Card 1)
Under the [Tx] section:
AUDIO_DEV=also:plugw:1 (recall our USB Sound card was Card 1)
Save the your changes and exit nano Using“ctrl + x” | “y” | “enter”

Next we need to edit the ModuleEchoLink.conf file using nano. Again before making any changes let’s make a copy of the .conf as a backup.

sudo cp /etc/svxlink/svxlink.d/ModuleEchoLink.conf /etc/svxlink/svxlink.d/ModuleEchoLink.conf.bak

sudo nano /etc/svxlink/svxlink.d/ModuleEchoLink.conf 

Make the following changes to the ModuleEchoLink.conf file:

Uncomment line 5 “Allow_IP=
-may need to adjust for your network subnet

Lastly uncomment the line “DEAFULT_LANG=en_US” to set the language to English

You’ll now need to create a NAT/Firewall rule on your router/firewall to the Pi. Echolink relies on these ports for communication with its servers. I recommend you also create a DHCP IP Reservation for your Pi or configure your Pi with a Static IP address. This steps will be specific to your router/firewall.
Create NAT for TCP 5200 as well as UDP 5198 and 5199 to the Pi.

It is finally time to connect things together and do some testing.
-connect the BTech APRS cable to the Baofeng HT
-connect the 3.5mm audio jack from the APRS cable to the Mic/Speaker splitter
-connect the Speaker line to the Speaker Jack on the USB Sound Card
If you haven’t already turn on the Baofeng and tune to an unused frequency within your license privileges. You’ll also need to enable VOX on the Baofeng (Menu | VOX[4]). You’ll need to experiment with the VOX setting for your specific setup. For me setting VOX to level 5 on the Baofeng seems to work ok.

Back on the Pi lets start SVXLink with the command:

sudo -u svxlink svxlink

If all goes well you should get a message “event handler script successfully loaded” and SVXLink should be waiting for input or a connection. Go ahead and tune a second transceiver to the same simplex frequency the Baofeng is set to. In SVXLink use the command to have the server ID itself (*#).


SVXLink should key up the Baofeng and you should hear the identification transmission on your second monitoring transceiver. You may need to go back and adjust the speaker level using alsamixer. For me setting the speakers to approx 70% seems to work ok.
Now open Echolink on another device (I used my cell phone) and connect to your Echolink station. If all goes well you should hear Echolink ID the incoming connection on your monitoring transceiver. Additionally, you should be able to key up Echolink on your cell phone, transmit, and hear the transmission on your monitoring transceiver.
Congrats! You now have SVXLink with the Echolink module setup and working for Tx!

Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *