You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

305 lines
7.4 KiB

---
title: Packet radio, VARA (FM+HF), Mobilinkd and Digirig on Linux
summary: >
date: 2024-02-13T22:05:30+01:00
9 months ago
lastmod: 2024-03-12T05:03:59+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
9 months ago
and I haven't got a single chance to get wine onto that) -- I will stay Linux for a while
I guess.
9 months ago
I've been using a Surface 2 Go for some time (well, a really short time) but ditched it again
because I wasn't really satisfied with its performance.
## 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
},
~~~
9 months ago
Start `rigctld` with a <kbd>Dummy</kbd> model - just to use the USB port
of the Digirig for PTT:
~~~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
9 months ago
that crashed wine several times (that is why I set up _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)`.
9 months ago
I also adjust the volumes while connecting to keep the ALC (DIG gain on the TX-500)
correct and also the input volume in VARA FM.
### 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
9 months ago
$ 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
9 months ago
Put them into `$HOME/.config/systemd/user`. I created them at the
beginning of my "Linux Winlink journey" but actually I only let pat
start the webgui at boot - the other stuff I start with scripts or
I search the command history (autocomplete) in my shell.
I don't even let pat listen to something because this is my main laptop
and I like the services started in a terminal window where I actually can
see some output when running.
### 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
~~~