W3EXW Echolink Setup
Introduction
I’ve been working on setting up an Echolink node for the North Hills Amateur Radio club W3EXW repeater on 147.090MHz in the Pittsburgh area. This blog post is a record primarily for myself in case I need to do this again (or anyone else in the club if I accidentally touch the finals on my TS-820s without discharging them first) as well as hopefully some help for anyone else searching on the web trying to the same thing with the same hardware.

Bill of Materials
- Bridgecom BCM-144 2m Transceiver
- Raspberry Pi 3 Model B V1.2
- DMK Engineering USB Radio Interface
- D-SUB DB15 Male 15Pin Jack Port to Terminal Breakout Board Connector
- DB25 Solderless RS232 D-SUB Serial to 25-pin Port Terminal Male Adapter Connector Breakout Board
- Raspberry Pi OS
- SvxLink Repeater Controller and Echolink Software
Installation of the Raspberry Pi OS and SvxLink software is covered on their respective pages so I will only detail what is necessary to configure the software with this specific hardware. One note however, it is advisable to install the latest SvxLink software from source rather than rely on the older outdated version currently in the Raspberry Pi OS software repository.
Wiring the URI to the BCM-144
The URI connects with a DB25 and the BCM-144 has a D-SUB DB15 data port on the back. The wire connections between these two is as follows:
URI Pin # | BCM Pin # | URI Pin Description | BCM-144 Pin Description |
2 | 8 | GPIO1 – General Purpose input or output | EXT_PTT – External Push to Talk |
8 | 10 | COR_DET – receive (carrier operated relay) detect | COS/COS – Squelch output |
9 | 4 | MIC_IN – Direct, low level input to CM119 | Audio Output 500mV |
10 | 5 | LEFT_OUT | EXT_MIC – Audio input (5kΩ) |
19 | 15 | GND – Ground | GND – Ground |
GND | GND | Ground | Ground |
Configuring SvxLink
The SvxLink documentation for the svxlink.conf was followed but I will call out a few configuration options I had to discover by looking at the code (or in some cases trial and error):
/dev/hidraw0
In order to use the URI for carrier detection and PTT, direct access needs to be granted to the /dev/hidraw0 device (this device may be different on your system if you have more than one USB Human Interface Device). By default, a user account will not have filesystem level access to this file, even if in the input group (as your svxlink linux account should be). To remedy this create a file called /etc/udev/rules.d/50-hid.rules and add the following line to it:
KERNEL=="hidraw*", GROUP="input", MODE="0666"
Then either reboot or enter the command “sudo udevadm trigger” to grant permission.
Rx1
In the [Rx1] block of the svxlink.conf file, you should set your AUDIO_DEV device to point to your alsa sound card provided by the URI. It will most likely be alsa:plughw:2 (0 being built in audio device and 1 being the Raspberry PI’s HDMI audio device) but you can validate this by running the “aplay -l” command to display sound devices. Look for :
card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
I modified the following settings:
Parameter | Value | Description |
AUDIO_DEV | alsa:plughw:2 | URI Sound Card interface from alsa sound subsystem |
SQL_DET | HIDRAW | Use URI Human Interface Raw device for squelch open detection |
HID_DEVICE | /dev/hidraw0 | URI device name (see note above for permissions) |
HID_SQL_PIN | VOL_DN | This was trial and error to see which pin HID considered to be the squelch detection pin. Default option was VOL_UP |
Tx1
In [Tx1] I modified the following settings:
Parameter | Value | Description |
AUDIO_DEV | alsa:plughw:2 | URI Sound Card interface from alsa sound subsystem |
PTT_TYPE | Hidraw | Use URI Human Interface Raw device to trigger PTT on the transceiver (note: note sure why the case difference between the SQL_DET option in [Rx1] but that is how the SvxLink documentation lists it) |
HID_DEVICE | /dev/hidraw0 | URI device name (see note in Rx1 section for permissions) |
HID_PTT_PIN | !GPIO1 | The Pin used to trigger PTT. Note that the ! in front of the pin label inverts the behavior, which is necessary for the URI. |
The URI has Pin 1 defined as the PTT pin, but I was unable to figure out how to reference this pin using SvxLink’s HID_PTT_PIN parameter. Switching to use GPIO1 however worked fine once I figured out that the open/close behavior is inverted.
ModuleEchoLink.conf
I set the USE_GSM_ONLY=1 since this is a low powered RaspberryPi and I do not want it switching to the more resource hungry Speex codec if another SvxLink client connects.
Other settings were configured as per SvxLink documentation for the Echolink account or left as defaults for now.
Filed under: Echolink,Linux,NHARC,Raspberry Pi,Software - @ May 1, 2022 12:02 pm