Voor een bevriend amateur wilde ik een turnkey echolink node samenstellen. De hardware hiervoor was een kwestie van het combineren en een aantal ideeën, onderdelen verzamelen en vervolgens een middagje boren, vijlen en zagen. Behalve de beschreven interface hoorde ook nog een Raspberry Pi bij de uitrusting.
Softwarematig zaten er wat meer haken en ogen aan. Er waren namelijk een aantal eisen:
- geen gedoe met beeldschermen, toetsenborden en allerhande gekke commando’s, dus;
- starten in de boot-fase;
- verbinden via een proxy;
- automatisch linken met een vooraf ingestelde node;
- bediening via DTMF moest eveneens mogelijk zijn.
Met die insteek ben ik aan de slag gegaan met ‘TheLinkBox’. Dit is weliswaar allemaal goed gedocumenteerd, maar ik liep toch tegen een aantal problemen aan. Het automatisch linken kreeg ik niet geregeld en DTMF bokte eveneens. En aangezien de tijd begon te dringen, ben ik uitgeweken naar SvxLink. Echter liep ik ook hier tegen een aantal zaken aan. Wellicht dat andere amateurs iets hebben aan de wielen die ik (opnieuw) uitgevonden heb.
Basis systeem
Uitgangspunt is Raspbian. Hoe dit op een SD-kaartje gezet wordt, is op internet uitvoerig gedocumenteerd, dus dat slaan we over. Voor de eerste boot van Raspbian is overigens wel muis en toetsenbord vereist!
Nadat Raspbian draait, kunnen muis en toetsenbord verwijderd worden en de Echolink-interface kan verbonden worden. Let op dat de beschreven interface TX activeert wanneer SvxLink niet draait! Dus laat de transceiver nog even uit!
Log nu op de RPi in met onderstaande credentials (vooropgesteld dat het wachtwoord nog niet aangepast is):
Username = pi
Wachtwoord = raspberry
Eerst alle updates draaien. Hou er rekening mee dat dit enige tijd kan duren!
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
reboot
TIP: de user ‘pi’ is een gebruiker zonder ‘root’-rechten. Vandaar dat elk commando door ‘sudo’ voorafgegaan wordt. In plaats hiervan kun je ook kiezen voor ‘sudo su‘, waardoor je voor de tijd van de sessie blijvende root-rechten hebt. Denk er wel aan dat bij gebruik van root-rechten elke veiligheidsvoorziening uit is, en je het systeem dus kunt moeren. In dat geval betekent het opnieuw beginnen met een verse image op een SD-kaart!
Nu is de ALSA-module aan de beurt. Dit wordt namelijk niet standaard met Raspbian meegebracht.
sudo apt-get install alsa-tools alsa-oss
sudo modprobe snd-pcm-oss
sudo modprobe snd-mixer-oss
Als het goed is, zijn nu twee audio-devices beschikbaar. Controleer dit met het commando
ls -l /dev/dsp*
Nu zijn twee audio devices zichtbaar:
/dev/dsp
/dev/dsp1
Om ervoor te zorgen dat e.e.a. in de opstartfase meegenomen wordt, moet het bestand ‘/etc/modules’ aangepast worden. Gebruik hiervoor een editor als ‘nano’, ‘vi’ of ‘mc’. Zelf werk ik het liefst met ‘nano’. Hoe deze editor werkt, valt buiten dit artikel. Op internet is hierover voldoende documentatie te vinden.
sudo nano -w /etc/modules
Voeg vervolgens twee regels toe:
snd-mixer-oss
snd-pcm-oss
Na het opslaan van het bestand en het afsluiten van de editor, wordt het tijd om de RPi opnieuw op te starten. Het is een goed idee om in deze fase nog een beeldscherm aangesloten te hebben. Ondanks dat de output tijdens het opstarten veel te snel loopt om alles goed te kunnen lezen, is het wel goed om te zien of ergens een foutmelding in de opstartfase optreedt. Die regels worden namelijk met een rood woordje ‘Failed’ gemarkeerd. En dat valt wel goed op.
sudo reboot
Uiteindelijk moet de USB-soundcard (in de Echolink-interface) nog ‘default’ gemaakt worden. Open eerst het bestand ‘/lib/modprobe.d/aliasses.conf’ met je favoriete editor (in dit voorbeeld wederom ‘nano’)
sudo nano /lib/modprobe.d/aliases.conf
Zoek nu de regel ‘options snd-usb-audio index=-2’. Wijzig de ‘-2’ in ‘0’, zodat er staat:
options snd-usb-audio index=0
Sla ‘/lib/modprobe.d/aliasses.conf’ op en sluit de editor af. Daarna is het bestand ‘/boot/config.txt’ aan de beurt.
sudo nano /boot/config.txt
Zoek de regel dtparam=audio=on en zet hier een hekje ‘#’ voor, zodat er het volgende staat:
#dtparam=audio=on
Sla het bestand ‘/boot/config.txt’ op en sluit de editor af. Nu is het weer tijd om de RPi opnieuw op te starten. Hou de output op het beeldscherm in de gaten. Indien ergens een rood gekleurd tekstje verschijnt, is in het bovenstaande iets niet goed gegaan.
sudo reboot
Daarna moet nog een serie pakketten geïnstalleerd worden.
sudo apt-get -y install subversion libsigc++-2.0-dev g++ make libsigc++-1.2-dev libgsm1-dev libpopt-dev tcl8.5-dev libgcrypt-dev libspeex-dev libasound2-dev alsa-utils cmake libopus-dev qt4-dev-tools librtlsdr-dev doxygen
SvxLink installeren
Eerst dient een nieuwe user met de naam ‘svxlink’ aangemaakt te worden. Tijdens het aanmaken van het account voegen we deze user meteen toe aan de groep ‘daemon’
useradd -G daemon svxlink
Nu is het tijd om het pakket ‘SvxLink’ te bemachtigen en te installeren. Er zijn een aantal beschrijvingen om dit vanuit een repository op te halen, maar geen van deze links heb ik aan de praat gekregen. Gewoon downloaden van www.svxlink.org is de snelste manier.
Pak het gedownloade bestand uit met het commando
tar xvfz [bestandsnaam].tar.gz
Met het commando ‘ls’ kun je zien dat nu een directory erbij is gekomen met de naam ‘svxlink’ gevolgd door een release-aanduiding. Ga deze directory binnen en meteen door naar de subdirectory ‘src’.
cd svxlink[nummer]/src
In deze directory wordt een nieuwe subdirectory met de naam ‘build’ aangemaakt en binnengegaan.
mkdir build
cd build
Eerst moeten wat zaken rechtgezet en gegenereerd worden voordat het compileren kan beginnen. Het hoe en waarom is eigenlijk niet iets voor deze handleiding.
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc \ -DLOCAL_STATE_DIR=/var ..
Vervolgens gaan we compileren met onderstaande commando’s (exact in de aangegeven volgorde). Dit kan overigens weer een behoorlijke poos duren.
make
make doc
make install
ldconfig
Configuratie van SvxLink
Nu begint het leuke gedeelte, waarin SvxLink geconfigureerd en gepersonaliseerd wordt. Begonnen wordt met de globale configuratie in het bestand ‘/etc/svxlink/svxlink.conf’.
sudo nano /etc/svxlink/svxlink.conf
Hier moeten wat dingen in aangepast worden. Voor het gemak heb ik de secties waar e.e.a. te vinden is erbij gezet.
[SimplexLogic]
CALLSIGN=[eigen call]-L
[Rx1]
#SERIAL_PORT=/dev/ttyUSB0
[Tx1]
AUDIO_DEV=alsa:hw:0
PTT_PORT=/dev/ttyUSB0
TIP: al naar gelang de configuratie kun je nog zoeken naar de CTCSS-instellingen. Als de transceiver CTCSS gebruikt, kan hier de juiste toon ingesteld worden. Deze wordt dan in de bakentekst mee uitgezonden.
Sla ‘/etc/svxlink/svxlink.conf’ op en sluit de editor af. Nu is de Echolink-module aan de beurt:
sudo nano /etc/svxlink/svxlink.d/ModuleEcholink.conf
Ook hierin moeten de nodige aanpassingen gedaan worden.
[ModuleEchoLink]
SERVER=europe.echolink.org
CALLSIGN=[eigen call]-L
PASSWORD=[echolink wachtwoord]
SYSOPNAME=[eigen naam]
LOCATION=[QTH en QRG]
USE_GSM_ONLY=1
PROXY_SERVER=[proxy server naar keuze]
PROXY_PORT=8100
PROXY_PASSWORD=PUBLIC
LINK_IDLE_TIMEOUT=0
AUTOCON_ECHOLINK_ID=[node nummer waarmee standaard verbonden dient te worden]
Sla het bestand ‘/etc/svxlink/svxlink.d/ModuleEcholink.conf’ op en sluit de editor af.
Voice response installeren
Voor SvxLink kunnen spraak samples geïnstalleerd worden. Eerst moeten de geluidsclips gedownload worden. Download hier de 16k samples, aangezien de nieuwe versies van SvxLink geen 8k samples kan verwerken. Deze samples komen in de directory ‘/usr/share/svxlink/sounds/en_US’:
mkdir /usr/share/svxlink/sounds/en_US
Kopieer de samples naar de zojuist aangemaakte directory. Wanneer SvxLink nu weer gestart wordt, de transceiver ingeschakeld wordt, zal SvxLink zich met een gesproken bakentekst melden.
Eerste tests
Het wordt nu tijd om de node voor het eerst op te starten.
sudo svxlink
Met bovenstaand commando krijg je output in het terminal-venster, zodat je goed kunt zien wat SvxLink doet. Als SvxLink goed start, gaat de TX-led op de interface uit. De tranceiver kan nu ingeschakeld worden.
Op de website van EchoLink kan vervolgens gekeken worden of de node daadwerkelijk online gekomen is.
Wanneer dit het geval is, kan met het DTMF-toetsenbord van een andere set of een porto verbinding te maken met de echolink-testnode door 4x het cijfer ‘9’ gevolgd door een hekje ‘#’ te zenden.
9999
Hierop meldt de voice response terug dat verbonden wordt met de Echolink-testnode. Deze node werkt als een ‘parrot’, waardoor het ontvangen audio enkele tellen na het afvallen van de squelch opnieuw uitgezonden wordt. Ideaal om de audio-instellingen bij te stellen.
Wanneer deze test succesvol was, kan de transceiver weer uitgeschakeld worden. SvxLink kan nu gestopt worden door ‘control’ + ‘C’ te toetsen.
[Ctrl][c]
SvxLink starten tijdens het booten van de RPi
SvxLink kan via ‘/etc/rc.local’ gestart worden. Hiervoor moet het bestand aangepast worden met
sudo nano /etc/rc.local
Voeg vlak boven de regel ‘exit 0’ het volgende toe:
/usr/bin/svxlink –daemon
Als nu de RPi opnieuw gestart wordt, zal SvxLink NIET automatisch meestarten. Wanneer het script /etc/rc.local gedraaid wordt, start de node wel. En dat heeft voor nogal wat hoofdbrekens gezorgd. Daarom moet voor de regel ‘/usr/bin/svxlink –daemon’ nog iets toegevoegd worden.
HOME=/home/pi
export HOME
Uiteindelijk ziet het bestand er zo uit:
HOME=/home/pi
export HOME
/usr/bin/svxlink –daemon
exit 0
Nu moet het bestand /etc/rc.local opgeslagen worden waarna de editor afgesloten kan worden. Wanneer nu de RPi opnieuw gestart wordt, zal SvxLink mee opstarten. Dit is het makkelijkst te herkennen wanneer de TX-led op de interface uit gaan. Nu kan ook weer de transceiver ingeschakeld worden. De node is nu klaar voor gebruik.