Equipment Software

Wie du die CAT-Schnittstelle via TCP/IP-Netzwerk nutzen kannst

CATremote
Meist reicht ein kurzes Kabel um die CAT-Schnittstelle des Transceivers mit dem PC zu verbinden. Sind grössere Strecken zu überwinden muss der Zugriff vom PC zur CAT-Schnittstelle remote erfolgen. Mit etwas Know-How und einem Raspberry Pi am Transceiver funktioniert das sowohl für Windows- als auch für Linux-Anwender.

Es gibt viele nützliche Amateurfunkanwendungen für den Raspberry Pi. Mit dem scheckkartengrossen Linux-Rechner lässt sich auch die CAT-Schnittstelle am Transceiver für den Remotezugriff einrichten. Das dauert kaum länger als einen halben Abend. Im Ergebnis kann von einem vorhandenen Linux- oder Windows-Rechner über ein Netzwerk (egal ob das lokale WLAN, ein VPN oder das Internet selbst als Transportmedium genutzt wird) auf die CAT-Schnittstelle des Transceivers zugreifen. Da die CAT-Schnittstelle keine großen Datenmengen überträgt spielt die Geschwindigkeit des Netzzugangs keine wesentliche Rolle.

Die Transceiver-Seite

Soll die CAT-Schnittstelle über das Netzwerk genutzt werden, bietet es sich an zum Raspberry Pi zu greifen. Die kleinen Rechner sind günstig zu bekommen und leicht zu installieren. Läuft das Linux erst einmal und ist das Netz erreichbar, muss die CAT-Schnittstelle noch mit dem Raspberry Pi verbunden werden. In der Regel wird dieses Interface für wenig Geld selbst gebaut oder für viel Geld als fertiger Adapter gekauft.

Egal welcher Variante der Vorzug gegeben wird: So werden die Signale von der USB-Schnittstelle zum Transceiver geschickt. Dieses Setup wird in 99% dem entsprechen, was beim “normalen”, also lokalen Zugriff, auch passiert. Sobald das USB-Kabel angeschlossen ist wird unterhalb von /dev/ eine neue Gerätedatei angelegt; beispielsweise /dev/ttyUSB0. Sollten mehrere serielle Schnittstellen über USB-Adapter angeschlossen sein, weil vielleicht die CAT-Schnittstellen mehrerer Transceiver angeschlossen sind, werden die Namen durchnummeriert: /dev/ttyUSB1, /dev/ttyUSB2 usw. Gehen wir in den folgenden Beispielen davon aus, dass das Devicefile auf dem Raspberry Pi tatsächlich /dev/ttyUSB0 heißt, dass die Distribution Raspbian zum Einsatz kommt und der Hostname cave zur IP-Adresse 192.168.22.87 aufgelöst wird.

Eine Software, die die serielle Schnittstelle ins Netz bringt ist ser2net. Das muss installiert und konfiguriert werden. Danach ist die Datei anzufassen die festlegt, welche Gerätedatei mit welchem Netzwerkport verbunden werden soll. Dazu kommen einige Parameter für die Schnittstellengeschwindigkeit (im Beispiel 9600 BPS) und das Protokoll (hier lautet der Rat: raw, also das 1:1 durchschleifen von allem ohne irgendwelche Änderungen).

 renner@cave ~ $ sudo apt-get install ser2net
 Reading package lists... Done
 Building dependency tree
 Reading state information... Done
 The following NEW packages will be installed:
 ser2net
 0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
 Need to get 41.2 kB of archives.
 After this operation, 128 kB of additional disk space will be used.
 Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main ser2net armhf 2.6-1 [41.2 kB]
 Fetched 41.2 kB in 1s (27.3 kB/s)
 Selecting previously unselected package ser2net.
 (Reading database ... 82658 files and directories currently installed.)
 Unpacking ser2net (from .../ser2net_2.6-1_armhf.deb) ...
 Processing triggers for man-db ...
 Setting up ser2net (2.6-1) ...
 [ ok ] Starting Serial port to network proxy: ser2net.
 renner@cave ~ $

In der /etc/ser2net.conf wird nun /dev/ttyUSB0 so eingetragen, dass die Schnittstelle mit acht Datenbits, einem Stopbit, Flowcontrol via RTS/CTS und 9600 Bit pro Sekunde
angesprochen wird. Diese Werte sind abhängig vom Transceiver bzw. dem Adapterkabel das verwendet wird, entsprechen tatsächlich aber 1:1 den Werten die bereits für
den Anschluss am vorhandenen PC genutzt wurden.

#2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner 
#2001:telnet:600:/dev/ttyS1:9600 8DATABITS NONE 1STOPBIT banner
#3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
3002:raw:600:/dev/ttyUSB0:9600 8DATABITS RTSCTS 1STOPBIT

Als Netzwerkport wird im Beispiel 3002 genutzt, der Timeout beleibt mit 600s unverändert. In der Datei /etc/default/ser2net sollte noch ein Port angegeben werden, der die Konfiguration von ser2net aus der Ferne ermöglicht. Dazu wird die Variable CONTROLPORT beispielsweise auf 3000 gesetzt. Nach einem Neustart des Deamons lässt sich prüfen ob der Netzwerkport wirklich offen ist. Am 0.0.0.0:3002 ist zu erkennen, dass ser2net auf allen Netzwerkinterfaces auf ankommende Verbindungen warten. Damit ist der Port sowohl vom localhost, über die eth- und auch über die wlan-Schnittstelle erreichbar. Sollte ein VPN-Tunnel laufen ist auch darüber eine Verbindung möglich.

 renner@cave:~$ netstat -na | grep 3002
 tcp 0 0 0.0.0.0:3002 0.0.0.0:* LISTEN

Damit ist die Konfiguration auf Seiten des Raspberry Pi schon abgeschlossen. Die CAT-Schnittstelle ist nun über den Port 3002 über das Netz erreichbar. Jetzt wird es Zeit sich mit dem Rechner zu beschäftigen, auf dem die Software laufen soll die auf den Transceiver zugreift. Das kann, wie zuvor auch, ein Logbuchprogramm sein, fldigi oder eine Bedienoberfäche für den Transceiver, wie sie beispielsweise Kenwood zur Verfügung stellt.

Die PC-Seite

Egal ob auf dem PC (bzw. Notebook) Linux oder Windows läuft: benötigt wird eine Software, die aus dem entfernten Port 3002 auf dem Raspberry Pi wieder eine Schnittstelle macht. Unter Windows wäre das eine serielle COM-Schnittstelle, unter Linux wieder ein Device unterhalb von /dev. Schauen wir uns zuerst die Linux-Lösung an, da sie etwas einfacher ist.

Linux

Softwaretechnisch ist socat die Lösung, die aus dem seriellen Port im Netz wieder ein Device unterhalb von /dev macht. Als Parameter sind die IP-Adresse bzw. der Hostname des Remoterechner incl. des Ports anzugeben (im Beispiel 192.168.22.87:3002) anzugeben, wie das Device bzw. der Link auf das Device heißen soll (im Beispiel /dev/YPort). Damit nicht nur root darauf zugreifen kann muss noch die Gruppe und die Zugriffsrechte festgelegt werden. Im Beispiel gehört die Datei dann der Gruppe dialout, lesend und schreibend dürfen der Besitzer (das bleibt root) und die Gruppe zugreifen.

renner@solaris:~$ sudo socat PTY,link=/dev/YPort,group=dialout,mode=660, TCP:192.168.22.87:3002 &
renner@solaris:~$ ls -l /dev/YPort
lrwxrwxrwx 1 root root 11 Nov 21 11:47 /dev/YPort -> /dev/pts/10
renner@solaris:~$ ls -l /dev/pts/10
crw-rw---- 1 root dialout 136, 10 Nov 21 11:51 /dev/pts/10

Auf dieses Device kann nun zugegriffen werden als wäre der Transceiver lokal angeschlossen. Für einen schnellen Test bietet sich rigctrl mit den passenden Parametern an – hier für ein Kenwood TS480 (also Modell Nr. 228) an.

renner@solaris:~$ rigctl -m 228 -r /dev/YPort -s 9600
Rig command: f
Frequency: 7174540
Rig command: m
 Mode: LSB
 Passband: 2400
Rig command: quit

Funktioniert dieser Test nicht muss nach dem Fehler geforscht werden. Funktioniert die CAT-Schnittstelle lokal auf dem Raspberry Pi? Ist der Port 3002 lokal auf dem Raspberry Pi erreichbar? Und falls ja: Ist der Port auch vom remote Rechner erreichbar (hier hilft telnet auf dem Port 3002) usw. Funktioniert der Test mit rigctl kann auch mit anderen Programmen vom PC aus auf die entfernte CAT-Schnittstelle zugegriffen werden. Egal ob mit qsstv, fldigi, einem Logbuchprogramm das die Schnittstelle nutzt oder mit rigctl bzw. rigctrl. Möglich ist es sogar, eines der meist einfach gehaltenen Remote Control Programme der großen Hersteller die es nur für Windows gibt, mit Hilfe von Wine auch unter Linux zu nutzen. Um beim TS480 zu bleiben: Wine installieren, das KENWOOD Radio Control Program ARCP-480 runterladen und installieren, einen Symlink von ~/.wine/dosdevices/com6 nach /dev/YPort anlegen und mit wine ~/.wine/drive_c/Program\ Files/KENWOOD/ARCP-480/ARCP480.exe starten. Nach der Konfiguration der seriellen Schnittstelle (hier: COM6) lässt sich der Transceiver connecten – egal wo er sich befindet.

arcp-480
Remote Control Programm ARCP-480 unter Linux

Windows

Unter Windows kann HW VSP3 die Verbindung zum ser2net auf dem Raspberry Pi herstellen und lokal auf eine COM-Schnittstelle legen – auch unter Windows gerade so als wäre der Transceiver direkt angeschlossen. Die Software ist ohne Kosten runter zu laden, denn Geld verdient der Herstelle HW VSP mit kleinen Appliances, die genau das machen, was der Raspberry Pi für uns macht: einen oder mehrere serielle Schnittstellen ins Netzwerk bringen. Die Gegenseite, den Treiber für Windows, gibt es für eine oder mehrere serielle Schnittstellen. Für einen einzigen Transceiver genügt die einfache Variante von HW VSP3.
Dass diese Windowssoftware mit dem ser2net auf dem Raspberry Pi kompatibel ist wird kein Zufall sein und lässt ahnen, was HW VSP in seinen Geräten verbaut.

Nach der Installation wird HW VSP3 aufgerufen und im Tab “Virtual Serial Port” mit einem Klick auf “Create Com” eine neue virtuelle Schnittstelle angelegt. Dazu gehören die Angaben zur IP-Adresse des Rasperry Pi und der TCP/IP-Port dort. Im Beispiel also COM6 <==> 192.168.22.87:3002.
Sobald Windows mit den bekannten Ding-Dong-Tönen signalisierte, dass ein neues Gerät angeschlossen wurde kann COM6 für die CAT-Schnittstelle verwendet werden.

HW VSP3 stellt eine virtuelle serielle Schnittstelle zur
HW VSP3 stellt eine virtuelle serielle Schnittstelle zur Verfügung,

Sound

Die Steuerung des Transceivers über die CAT-Schnittstelle ermöglicht noch kein QSO. Dazu muss auch der Sound über das Netzwerk umgeleitet werden. Ein weites Feld, das nicht im Fokus dieses Artikels liegt. Skype als häufig genutzte Lösung um Mikrofon und Lautsprechersignal zu teilen scheidet auf dem Raspberry Pi aus. Denn Microsoft verteilt Skype für Linux nur als Version für x86 und x64 Prozessoren, der Raspberry Pi nutzt dagegen einen ARM-Prozessor – da hilft auch kein Wine. Möglich ist die Nutzung vom Mumble, einer Software für Telefonkonferenzen oder ähnliche Lösungen wie TeamSpeak. Auch direkte Netzwerkverbindung beispielsweise mit Icecast oder Pulseaudio als Endpoint funktionieren. Welcher Software der Vorzug geben wird hängt auch davon ab, ob Windows oder Linux auf dem PC eingesetzt wird. Einer Software, die auf dem Raspberry Pi rein auf der Kommandozeile gesteuert werden kann ist auf jeden Fall der Vorzug zu geben!

Funkamateur seit 1985, ist fasziniert von digitalen Betriebsarten und dem "Selbstbaubetriebssystem" Linux mit seinen Möglichkeiten für den Amateurfunk. Mangels Antennenmöglichkeit in München meist nur am Urlaubs-QTH als F/DD0UL aktiv.

  1. Eine einfachere Möglichkeit aus einer beliebigen Entfernung über das Internet und eine abgesetzte Station ein QSO zu fahren ist auf der Seite http://www.ham-on-air.de beschrieben.

    Gruß Walter, DL3LH

  2. Hallo Micha,

    Klasse Beitrag.
    Mein Raspi freut sich jetzt schon auf seine neue Verwendung 🙂
    Momentan läuft er noch als unterforderter Webserver (www.db0lhr.ddns.net).
    Aber da das Hamnet so gut wie tot zu sein scheint, werde ich ihn über kurz oder lang für sinnvollere Zwecke einsetzen.

    vy 73 de Rolf -DJ7TH-

  3. Olaf Menzel (ol2tmx)

    Bei Linux ist das Thema mit den remote devices auch ein aktuelles Thema. Das Problem ist, dass die Schnittstellen ständig umgebaut werden. Ich habe lange Zeit auf den Jack Audioserver gesetzt. Die neue Version Jack 2 ist noch viel bedienungsfreundlicher. Leider gibt es nur das KXStudio Repository, welches Programme wie Cadence, Carla, Claudia anbietet und mit diesem Repository gibt es Probleme mit den DBUS-Modulen. Bei SDR++ ist dann irgendwann der gesamte Unterbau von Jack2 kaputt gegangen. DBUS funktionierte nicht mehr und damit geht dann auch kein Jack2 mehr. Wirklich schade, Jack2 hat einen gute Ansätz und macht es für Musiker und Funkamateure einfach. Mit Jack2 gibt es ja auch ein globales Sound Routing.

  4. Hallo,
    kann ser2net parallel von mehreren Client-Anwendungen angesprochen werden?
    Es ist ja oft so, dass mehrere Tools gleichzeitig laufen (Logbuch, JTDX etc.) und viele davon die Möglichkeit bieten die TRXe auszulesen oder zu steuern.
    Blockiert ser2net einen Zugriff von verschiedenen Anwendungen?

    In der Windows-Welt habe ich u.a. durch die Startreihenfolge in der ich die Programme öffne und diverse Zusatztools Abhilfe für das Problem gefunden.

    73, steffan / DO6DAD

    • Michael Renner,DD0UL

      Moin,

      kann ich aktuell nicht beantworten. Ich baue meine Station gerade um und die RasPis liegen in der Kiste. Ist aber eine sehr interessante Frage. Muss ich mal testen sobald alles wieder läuft.

      vy 73 de Micha, DD0UL

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*