|
|
|
---
|
|
|
|
title: Packet radio, VARA (FM+HF), Mobilinkd and Digirig on Linux
|
|
|
|
summary: >
|
|
|
|
|
|
|
|
date: 2024-02-13T22:05:30+01:00
|
|
|
|
lastmod: 2024-02-24T21:30:29+0000
|
|
|
|
categories:
|
|
|
|
- amateur-radio
|
|
|
|
- computerstuff
|
|
|
|
tags:
|
|
|
|
- draft_post
|
|
|
|
|
|
|
|
# showBreadcrumbs: true
|
|
|
|
# showDate: false
|
|
|
|
# showReadingTime: false
|
|
|
|
# showWordCount: false
|
|
|
|
# showPagination: false
|
|
|
|
|
|
|
|
# feed_exclude: true
|
|
|
|
# site_exclude: true
|
|
|
|
|
|
|
|
# some help
|
|
|
|
#
|
|
|
|
# highlighting with highlights
|
|
|
|
#
|
|
|
|
# use table, as inline creates a padding around
|
|
|
|
# and it pushes the text more to the right side (end of screen)
|
|
|
|
#
|
|
|
|
# ~~~html {linenos=table,hl_lines="3-6"}
|
|
|
|
# ~~~html {linenos=inline,hl_lines="1,3-6"}
|
|
|
|
|
|
|
|
draft: true
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
Out of curiosity I began another "research-session" because it is really time to get
|
|
|
|
that Winlink back on my Linux laptop (I used OpenBSD on this machine for some months now
|
|
|
|
and I haven't got a single chance to get wine onto that) -- I will stay Linux for a while
|
|
|
|
I guess.
|
|
|
|
|
|
|
|
## Digirig
|
|
|
|
|
|
|
|
The Digirig gets controlled with `rigctld` -- I use different models for the
|
|
|
|
HF and the FM rig -- but the rig configuration is the same for both:
|
|
|
|
|
|
|
|
~~~json
|
|
|
|
"hamlib_rigs": {
|
|
|
|
"my_rig": {
|
|
|
|
"address": "127.0.0.1:4532",
|
|
|
|
"network": "tcp"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
~~~
|
|
|
|
|
|
|
|
### Packet radio
|
|
|
|
|
|
|
|
Using <kbd>AX.25+agwpe</kbd> within pat in combination with Direwolf -- but
|
|
|
|
this combination felt a bit slow (which might only be my subjective opinion).
|
|
|
|
|
|
|
|
~~~json
|
|
|
|
"ax25": {
|
|
|
|
"engine": "linux",
|
|
|
|
"rig": "",
|
|
|
|
"beacon": {
|
|
|
|
"every": 3600,
|
|
|
|
"message": "Winlink P2P",
|
|
|
|
"destination": "IDENT"
|
|
|
|
}
|
|
|
|
"agwpe": {
|
|
|
|
"addr": "127.0.0.1:8000",
|
|
|
|
"radio_port": 0
|
|
|
|
},
|
|
|
|
~~~
|
|
|
|
|
|
|
|
The <kbd>agwpe</kbd> section is used by Direwolf:
|
|
|
|
|
|
|
|
~~~console {hl_lines="8"}
|
|
|
|
% direwolf -c /etc/direwolf/direwolf.conf -p
|
|
|
|
Dire Wolf version 1.7
|
|
|
|
Includes optional support for: gpsd hamlib cm108-ptt dns-sd
|
|
|
|
|
|
|
|
Reading config file /etc/direwolf/direwolf.conf
|
|
|
|
Audio device for both receive and transmit: plughw:1,0 (channel 0)
|
|
|
|
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, A+, 44100 sample rate.
|
|
|
|
Ready to accept AGW client application 0 on port 8000 ...
|
|
|
|
Ready to accept KISS TCP client application 0 on port 8001 ...
|
|
|
|
DNS-SD: Avahi: Failed to create Avahi client: Daemon not running
|
|
|
|
Virtual KISS TNC is available on /dev/pts/8
|
|
|
|
Created symlink /tmp/kisstnc -> /dev/pts/8
|
|
|
|
~~~
|
|
|
|
|
|
|
|
The `direwolf.conf` file looks like this (comments removed):
|
|
|
|
|
|
|
|
~~~squid
|
|
|
|
ADEVICE plughw:1,0
|
|
|
|
CHANNEL 0
|
|
|
|
MYCALL OE7DRT
|
|
|
|
MODEM 1200
|
|
|
|
PTT /dev/ttyUSB0 RTS DTR
|
|
|
|
AGWPORT 8000
|
|
|
|
KISSPORT 8001
|
|
|
|
IGTXLIMIT 6 10
|
|
|
|
~~~
|
|
|
|
|
|
|
|
Direwolf will warn you if the input audio level is way off; I adjust them
|
|
|
|
with the program `alsamixer` (<kbd>F6</kbd> to select the USB soundcard,
|
|
|
|
then <kbd>F5</kbd> to list all devices, disable _Auto Gain Control_ with <kbd>m</kbd>
|
|
|
|
(mute)).
|
|
|
|
|
|
|
|
### VARA FM
|
|
|
|
|
|
|
|
The corresponding configuratoin in the pat config file:
|
|
|
|
|
|
|
|
~~~json
|
|
|
|
"varafm": {
|
|
|
|
"addr": "127.0.0.1:8300",
|
|
|
|
"bandwidth": 0,
|
|
|
|
"rig": "my_rig",
|
|
|
|
"ptt_ctrl": true
|
|
|
|
},
|
|
|
|
~~~
|
|
|
|
|
|
|
|
Start `rigctld`:
|
|
|
|
|
|
|
|
~~~console
|
|
|
|
$ rigctld -m 1 -p /dev/ttyUSB0 -P RTS -s 9600 -vvvv
|
|
|
|
~~~
|
|
|
|
|
|
|
|
I start VARA FM by running a small script called `varafm.sh`:
|
|
|
|
|
|
|
|
~~~sh
|
|
|
|
#!/usr/bin/sh
|
|
|
|
# Start VARA via wine
|
|
|
|
|
|
|
|
WINEPREFIX=/home/dominic/.wine-winlink wine "C:\\VARA FM\\VARAFM.exe"
|
|
|
|
~~~
|
|
|
|
|
|
|
|
In VARA FM set the USB soundcard, adjust the volume in `alsamixer` and on your
|
|
|
|
radio, set <kbd>PTT</kbd> to <kbd>VOX</kbd> -- I tried to use <kbd>COM1</kbd> but
|
|
|
|
that crashed wine several times (that is why we setup _rigctl_ before).
|
|
|
|
|
|
|
|
If you need to stop rigctl: you can usually do that with
|
|
|
|
<kbd>CTRL</kbd> + <kbd>C</kbd> but this might not work. So either stop the running
|
|
|
|
pat process by hitting <kbd>CTRL</kbd> + <kbd>C</kbd> in the "pat terminal" or by
|
|
|
|
killing rigctld with `kill $(pgrep rigctld)`.
|
|
|
|
|
|
|
|
This is not tested yet, because VARA crashed when I was out in the field and I cannot
|
|
|
|
reach a gateway at home where I researched/tested the final settings.
|
|
|
|
|
|
|
|
### VARA HF
|
|
|
|
|
|
|
|
Back to the TX-500, the pat configuration looks like:
|
|
|
|
|
|
|
|
~~~json
|
|
|
|
"varahf": {
|
|
|
|
"addr": "127.0.0.1:8300",
|
|
|
|
"bandwidth": 2300,
|
|
|
|
"rig": "my_rig",
|
|
|
|
"ptt_ctrl": true
|
|
|
|
},
|
|
|
|
~~~
|
|
|
|
|
|
|
|
I start rigctld like:
|
|
|
|
|
|
|
|
~~~console
|
|
|
|
$ rigctld -m 2014 -r /dev/ttyUSB0 -d /dev/ttyUSB0 -p /dev/ttyUSB0 \
|
|
|
|
-P RTS -s 9600 -vvvv
|
|
|
|
~~~
|
|
|
|
|
|
|
|
Untested, untested...
|
|
|
|
|
|
|
|
|
|
|
|
## Mobilinkd
|
|
|
|
|
|
|
|
I will use <kbd>AX.25+linux</kbd> in pat with the TNC4 paired via Bluetooth.
|
|
|
|
|
|
|
|
First of all, power on the TNC4 and pair it -- I use _blueman-manager_ for this.
|
|
|
|
|
|
|
|
Then we need the serial port -- right click on <kbd>TNC4 Mobilinkd</kbd> and select
|
|
|
|
_Connect with_ <kbd>Serial port</kbd>
|
|
|
|
|
|
|
|
That will create a serial port at `/dev/rfcomm0`.
|
|
|
|
|
|
|
|
In order to use it in pat, we need to use `kissattach` on that serial device.
|
|
|
|
|
|
|
|
First we need to setup an AX.25 port called <kbd>wl2k</kbd> in `/etc/ax25/axports`:
|
|
|
|
|
|
|
|
~~~squid
|
|
|
|
# /etc/ax25/axports
|
|
|
|
#
|
|
|
|
# The format of this file is:
|
|
|
|
#
|
|
|
|
# name callsign speed paclen window description
|
|
|
|
#
|
|
|
|
|
|
|
|
#1 OH2BNS-1 1200 255 2 144.675 MHz (1200 bps)
|
|
|
|
#2 OH2BNS-9 38400 255 7 TNOS/Linux (38400 bps)
|
|
|
|
wl2k OE7DRT 1200 255 7 Winlink
|
|
|
|
~~~
|
|
|
|
|
|
|
|
This needs also some configuration work in the pat configuration:
|
|
|
|
|
|
|
|
~~~json
|
|
|
|
"ax25_linux": {
|
|
|
|
"port": "wl2k"
|
|
|
|
},
|
|
|
|
"serial-tnc": {
|
|
|
|
"path": "/dev/rfcomm0",
|
|
|
|
"serial_baud": 9600,
|
|
|
|
"hbaud": 1200,
|
|
|
|
"type": "Kenwood",
|
|
|
|
"rig": ""
|
|
|
|
},
|
|
|
|
~~~
|
|
|
|
|
|
|
|
Now we can attach a KISS interface to the serial port:
|
|
|
|
|
|
|
|
~~~console
|
|
|
|
$ sudo kissattach /dev/rfcomm0 wl2k
|
|
|
|
AX.25 port wl2k bound to device ax0
|
|
|
|
~~~
|
|
|
|
|
|
|
|
Select your PacketRadio Gateway (CALLSIGN-10 usually) and connect using
|
|
|
|
<kbd>AX.25+linux</kbd>.
|
|
|
|
|
|
|
|
To de-attach the KISS interface we need to kill the process by:
|
|
|
|
|
|
|
|
~~~console
|
|
|
|
$ sudo kill $(pgrep kissattach)
|
|
|
|
~~~
|
|
|
|
|
|
|
|
## Some systemd unit-file examples
|
|
|
|
|
|
|
|
Put them into `$HOME/.config/systemd/user`.
|
|
|
|
|
|
|
|
### pat
|
|
|
|
|
|
|
|
~~~systemd
|
|
|
|
[Unit]
|
|
|
|
Description="pat winlink"
|
|
|
|
After=network.target rigctld.service ardopc.service
|
|
|
|
Wants=rigctld.service ardopc.service
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=simple
|
|
|
|
ExecStart=/home/dominic/bin/pat --listen "ardop,telnet" http
|
|
|
|
TimeoutSec=10
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=default.target
|
|
|
|
~~~
|
|
|
|
|
|
|
|
### rigctld
|
|
|
|
|
|
|
|
~~~systemd
|
|
|
|
[Unit]
|
|
|
|
Description="rigctld for TX-500 using Digirig"
|
|
|
|
After=network.target
|
|
|
|
Before=pat.service ardopc.service
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=simple
|
|
|
|
; -m 2005 for Lab500 TX-500 CAT protocol
|
|
|
|
; ExecStart=/usr/bin/rigctld -m 2050 -r /dev/ttyUSB0 -p /dev/ttyUSB0 -P RTS -s 9600 -vvvv
|
|
|
|
; -m 2014 for Kenwood TS-2000 CAT protocol
|
|
|
|
; ExecStart=/usr/bin/rigctld -m 2014 -r /dev/ttyUSB0 -p /dev/ttyUSB0 -P RTS -s 9600 -vvvv
|
|
|
|
ExecStart=/usr/bin/rigctld -m 2014 -r /dev/ttyUSB0 -d /dev/ttyUSB0 -p /dev/ttyUSB0 -P RTS -s 9600 -vvvv
|
|
|
|
TimeoutSec=10
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=default.target
|
|
|
|
~~~
|
|
|
|
|
|
|
|
You can change the used protocol (_Kenwood TS-200_ or _Lab599 TX-500_l for CAT control within
|
|
|
|
the menu on the TX-500 (last menu setting)).
|
|
|
|
|
|
|
|
### ardopc
|
|
|
|
|
|
|
|
~~~systemd
|
|
|
|
[Unit]
|
|
|
|
Description="ardopc for TX-500 using Digirig"
|
|
|
|
After=network.target
|
|
|
|
Before=pat.service
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=simple
|
|
|
|
; ExecStart=/home/dominic/bin/ardopc 8515 hw:1,0 hw:1,0 -c /dev/ttyUSB0:9600 -p /dev/ttyUSB0:9600
|
|
|
|
ExecStart=/home/dominic/bin/ardopc 8515 plughw:1,0 plughw:1,0
|
|
|
|
TimeoutSec=10
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=default.target
|
|
|
|
~~~
|
|
|
|
|