oe7drt-website/content/posts/2024/74-winlink-on-android-with-woad/index.md

200 lines
7.5 KiB
Markdown

---
title: Winlink on Android with WoAD
summary: >
Since I moved from iOS to Android I had to look for another App to test
a small Winlink setup.
<small>The thumbnail was created with Google AI (Imagen 3).</small>
date: 2024-12-07T17:10:03+01:00
lastmod: 2024-12-15T15:47:02+0000
categories:
- amateur-radio
- computerstuff
tags:
- Android
- Archlinux
- command-line
- Digirig
- Linux
- Mobilinkd
- Networking
- Packet Radio
- Portable
- Vara FM
- Vara HF
- Winlink
- 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
---
So I recently sold my iPhone 14 Pro and bought a Google Pixel 9 Pro. I used that for
about two weeks when I finally replaced the vanilla Android with [GrapheneOS](https://grapheneos.org/).
The Android app for my setup is called [WoAD](https://woad.sumusltd.com/)
and is available on the [Google Play Store](https://play.google.com/store/apps/details?id=com.sumusltd.woad).
It currently costs € 6.99 :money_bag:.
I will assume the app is all setup with basic information like CALLSIGN, Grid, etc.
## Packet connection
I love simple and small configurations (mostly) and this one is really small.
When I'm out hiking I usually have an <abbr title="handheld transceiver">HT</abbr>
with me -- usually an Icom ID-52. Together with a Mobilinkd
<abbr title="terminal node controller">TNC</abbr> it is a very small
and (since Android) working solution for mobile/portable Winlink operations (I always
had problems getting the Bluetooth device working with the iPhone - not only with
the Mobilinkd but also other Bluetooth devices struggled with the iPhone...).
### Create a new session called **Packet**
On the main screen (probably the Inbox) click the top right menu (three dots) and select
<kbd>:right_arrow: Sessions</kbd>. On the bottom right menu (three dots) select
<kbd>:plus: Add</kbd>. Name it <kbd>Packet</kbd> and set the Protocol to <kbd>Packet</kbd>.
Touch <kbd>Settings</kbd> and select a Destination address. Select <kbd>RMS channel selection...</kbd>
and choose a nearby station. Go back and set <kbd>TNC type</kbd> to <kbd>KISS</kbd>. In
<kbd>TNC configuration</kbd> select <kbd>Bluetooth</kbd> as <kbd>Connection type</kbd> and
select the previosly paired Mobilink TNC under <kbd>Connection configuration/Device</kbd>.
<kbd>Device manufacturer</kbd> should stay <kbd>Generic</kbd>.
See these screenshots for reference.
| | | |
| ---------------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------ |
| [![Session config screen](session.packet.1.png)](session.packet.1.png) | [![Packet config screen](session.packet.2.png)](session.packet.2.png) | [![TNC config screen](session.packet.3.png)](session.packet.3.png) |
We use the App Mobilinkd TNC to configure our TNC. The app is available at the
[Google Play Store](https://play.google.com/store/apps/details?id=com.mobilinkd.tncconfig)
and on [F-Droid](https://apt.izzysoft.de/fdroid/index/apk/com.mobilinkd.tncconfig) (or Neo Store).
Make sure the audiolevels are ok (<kbd>Audio Input Settings...</kbd>), also check the
<kbd>PTT Style</kbd> within <kbd>Audio Output Settings...</kbd>.
[![audio levels](settings.mobilinkd.audio.1.png "The most right red led should flicker a bit.")](settings.mobilinkd.audio.1.png)
Don't forget to disconnect the config app from the TNC.
Back in WoAD select the Packet session and hit the play button on the bottom (right).
## VARA FM and HF
The VARA modes will need another device that can run the VARA software which our
Android phone will connec to via port <kbd>8300</kbd>.
Assuming we have a working installation of VARA FM and VARA HF in a
32-bit wine environment in `~/.wine-winlink`.
Let us view the screenshots of my WoAD configuration -- create a new session for that
and call it <kbd>VARA FM</kbd>.
| | | | | |
| ---------------------------------------------------------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [![Session config screen](session.varafm.1.png)](session.varafm.1.png) | [![VARA FM Settings screen](session.varafm.2.png)](session.varafm.2.png) | [![Destination config screen](session.varafm.3.png)](session.varafm.3.png) | [![RMS channel selection screen](session.varafm.4.png)](session.varafm.4.png) | [![TNC configuration screen](session.varafm.5.png)](session.varafm.5.png) |
The configuration for VARA HF is nearly identical, just select <kbd>VARA HF</kbd> for the
<kbd>Protocol</kbd>. Don't forget to select a proper VARA HF station and make sure the
bandwitch matches.
### Setup on the laptop
In this scenario I use the internal network card (wlan0).
Usually there is no DHCP server installed, we will need one though (and hostapd):
```console
$ paru -S dhcp hostapd
```
- Stop the network
```console
$ sudo systemctl stop wpa_supplicant@wlan0.service
```
- Flush IP configuration on that interface and flush route table
```console
$ sudo ip addr flush dev wlan0
$ sudo ip route flush dev wlan0
```
- Set the IP address that we will later use for connecting our WoAD client
```console
$ sudo ip address add 192.168.30.1/24 broadcast + dev wlan0
$ sudo ip link set dev wlan0 up
```
- Start the DHCP server
I use this config for that:
```dhcp
option domain-name "mobile";
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.30.0 netmask 255.255.255.0 {
option routers 192.168.30.1;
option subnet-mask 255.255.255.0;
option domain-name "mobile";
option domain-name-servers 192.168.30.1;
range 192.168.30.2 192.168.30.40;
}
```
```console
$ sudo systemctl start dhcp4.service
```
- Start the hostapd service
```console
$ sudo systemctl start hostapd.service
```
### Stop the services and bring back normal networking
- Stop the services (dhcp4, hostapd)
```console
$ sudo systemctl stop {hostapd.service,dhcpd4.service}
```
- Flush the IP configuration on that interface again
```console
$ sudo ip r flush dev wlan0
$ sudo ip a flush dev wlan0
```
Check for empty interface and route table with `ip r` and `ip a`.
- Start WPA supplicant service on wlan0 again
```console
$ sudo systemctl start wpa_supplicant@wlan0.service
```
Your normal IP address should be back on that interface shortly.