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.
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.
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!
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
Hallo Walter,
hast du einen Deeplink zu dem Thema? Habe es auf den ersten Blick nicht gefunden.
73 de Silvio
Hallo Silvio,
müsste auch erst die ganzen Seiten durchsuchen.
Gruß Walter
Moin,
ich hatte mit Google gesucht und wurde weder mit dem Suchbegriff ser2net [1] noch mit socat [2] fündig. Schade, vor allem weil ich mir weitergehende Infos erhoffte. Das Projekt RemoteQTH [3] nutzt eine ähnliches Lösung, die Doku [4] setzt den Schwerpunkt anders als in meinem Artikel und nutzt zumindest mit Windows andere Programme.
[1] https://www.google.de/search?client=ubuntu&channel=fs&q=site%3A%2F%2F3610.bplaced.net+socat&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=-yxrVpWNNeeH8QeuwICABw
[2] https://www.google.de/search?client=ubuntu&channel=fs&q=site%3A%2F%2F3610.bplaced.net%2F+ser2net&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=zyxrVpKhD-eH8QeuwICABw#channel=fs&q=site:%2F%2F3610.bplaced.net+ser2net
[3] http://remoteqth.com/
[4] http://www.remoteqth.com/wiki/index.php?page=Ser2Net
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-
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.
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
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