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

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 DescriptionBCM-144 Pin Description
28GPIO1 – General Purpose input or outputEXT_PTT – External Push to Talk
810COR_DET – receive (carrier operated relay) detectCOS/COS – Squelch output
94MIC_IN – Direct, low level input to CM119Audio Output 500mV
105LEFT_OUTEXT_MIC – Audio input (5kΩ)
1915GND – GroundGND – Ground
GNDGNDGroundGround

Note that Pin 10 on my URI is listed as LEFT_OUT, but the documentation on DMK’s website lists it as GPIO8. It is possible I have an older or different version of the URI than is documented on their page.

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:

ParameterValueDescription
AUDIO_DEValsa:plughw:2URI Sound Card interface from alsa sound subsystem
SQL_DETHIDRAWUse URI Human Interface Raw device for squelch open detection
HID_DEVICE/dev/hidraw0URI device name (see note above for permissions)
HID_SQL_PINVOL_DNThis 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:

ParameterValueDescription
AUDIO_DEValsa:plughw:2URI Sound Card interface from alsa sound subsystem
PTT_TYPEHidrawUse 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/hidraw0URI device name (see note in Rx1 section for permissions)
HID_PTT_PIN!GPIO1The 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.