====== APRS with the NinoTNC ======
**Note: This is currently a WIP **
The NinoTNC can be used to send and receive [[https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System|APRS]] which will allow you to run an iGate, Digipeater or position beacon when used in conjunction with some additional software. As well as contributing to the APRS network, this might be useful to help [[https://wiki.oarc.uk/packet_peer_finding|find local stations]] you can peer with to help build a national packet network.
This document will cover installing and configuring the software to run as an Rx only iGate, with a periodic position beacon sent via RF. Two software packages are documented, you can chose one or the other. [[https://thelifeofkenneth.com/aprx/|Aprx]] is lightweight and easy to configure, and [[https://www.cantab.net/users/john.wiseman/Documents/BPQ32.html|BPQ32]] is more fully featured but harder to configure, but also allows you to attach an external APRS client like [[https://www.ka2ddo.org/ka2ddo/YAAC.html|YAAC]] so you can run a "headless" iGate but periodically connect from another computer to view stations on a map or send messages.
**The guides for both packages assume you're using Raspberry Pi OS or Debian, but may work for other Debian derivatives.**
===== NinoTNC / Radio Setup =====
=== NinoTNC ====
For 1200 Baud AFSK set the MODE switches to 0110.
=== Radio ===
The vast majority of APRS in the UK takes place on 144.800Mhz FM with narrow deviation. Configure your radio accordingly.
===== Notes on licensing =====
N.B. These are my interpretation of the license. You're encouraged to read and interpret the license yourself.
* A Digipeater will require an NoV as you're re-transmitting third party traffic.
* The ETCC state you require an NoV for a receive only iGate. This is widely disputed, doesn't appear to be backed up by law and frequently ignored. (See [[https://aprs.fi/|aprs.fi]] to see how many stations are iGating without an NoV... ). That said, anyone with a foundation license or greater can apply for an Rx only iGate, and you get a fancy MB7 callsign.
* If you're beaconing over RF your station will need to be attended unless you have an NoV or you're operating "remotely" ( See license for restrictions on remote operation )
===== Aprx =====
==== Installation ====
Firstly install some pre-requisites:
sudo apt-get update && apt-get upgrade
sudo apt-get install wget openssl
Next download the latest package. I'm forcing IPv4 only as I had issues when attempting to download via IPv6.
For Raspberry Pi:
wget --inet4-only -O /tmp/aprx.deb https://thelifeofkenneth.com/aprx/debs/aprx_2.9.0_raspi.deb
For amd64:
wget --inet4-only -O /tmp/aprx.deb https://thelifeofkenneth.com/aprx/debs/aprx_2.9.0_amd64.deb
Next install the deb package:
dpkg -i /tmp/aprx.deb
==== Configuration ====
Now it's time to customise the configuration. Use your preferred text editor to open ///etc/aprx.conf// and edit to suit.
The latitude and longitude syntax is mildy annoying, you need them in degrees, minutes, and seconds format. Latitude requires 4 digits before the decimal point and Longitude requires 5 digits before the decimal point. Pad with zeros if required. I use the "GPS Coordinates" from [[https://www.latlong.net/|latlong.net]]
You can generate your APRS Passcode [[https://apps.magicbug.co.uk/passcode/|here]]
It should look something like the example below.
mycall YOURCALL-YOURSSID
myloc lat 5139.20N lon 00025.09W
callsign YOURCALL-YOURSSID
serial-device /dev/ttyACM0 57600 8n1 KISS
telem-to-is false
tx-ok true
login YOURCALL-YOURSSID
passcode YOURPASSCODE
server euro.aprs2.net
heartbeat-timeout 1m
cycle-size 15m
beaconmode both # aprsis, radio, or both
beacon interface YOURCALL-YOURSSID via WIDE1-1 symbol "R&" $myloc comment "Aprx + NinoTNC Rx-iGate"
rflog /var/log/aprx/aprx-rf.log
aprxlog /var/log/aprx/aprx.log
==== systemd ====
Aprx doesn't ship with a systemd service file by default, and I've had some issues with the included init script. Lets create a systemd service instead.
sudo systemctl disable aprx
sudo systemctl daemon-reload
sudo rm /etc/init.d/aprx
Open /etc/systemd/system/aprx.service with your favourite text editor.
[Unit]
Description=Amateur Radio APRS Gateway & Digipeater
Documentation=man:aprx(8)
[Service]
Type=simple
ExecStart=/sbin/aprx -i
[Install]
WantedBy=multi-user.target
sudo systemctl enable aprx
sudo systemctl start aprx
==== Usage ====
Aprx is relatively simple and once configured and started it should start to automatically forward packets to APRS-IS.
To view the RF log:
tail -f /var/log/aprx/aprx-rf.log
To view the generic log:
tail -f /var/log/aprx/aprx.log
It might be useful to debug Aprx in the foreground. To do so, stop Aprx with
systemctl stop aprx
Then run it in the foreground with the debug arguments:
aprx -f /etc/aprx.conf -v -dd -L
===== BPQ32 =====
coming soon
SIMPLE
NODECALL=2E0SIP-11
LOCATOR=NONE
IDINTERVAL=0
IDMSG:
!5139.20NR00025.09W&Aprx + NinoTNC Rx-iGate
***
PORT
PORTNUM=1
ID=APRS Port
TYPE=ASYNC
PROTOCOL=KISS
FRACK=10000
RESPTIME=500
RETRIES=10
MAXFRAME=7
PACLEN=128
TXDELAY=500
QUALITY=0
MINQUAL=10
COMPORT=/dev/ttyACM0
SPEED=57600
SLOTTIME=100
PERSIST=64
BBSFLAG=NOBBS ; Disable Packet Functions
DIGIFLAG=0 ; Disable Packet Functions
ENDPORT
PORT
PORTNUM=2
ID=KISS
TYPE=ASYNC
PROTOCOL=KISS
IPADDR=0.0.0.0
TCPPORT=8003
ENDPORT
APRSDIGI
APRSCall 2E0SIP-11
;RXONLY=1
StatusMsg=BPQ32 + NinoTNC Rx-iGate
Symbol=& ; Icon to display for station.
Symset=R ; This is a "R" in a Black Diamond, indiciating a receive only iGate
BeaconInterval=15
;APRSPath 1= ; Receive only port
APRSPath 1=APRS,WIDE1-1
APRSPath 2=APRS,WIDE1-1
Digimap 1=IS
BRIDGE 1=2
BRIDGE 2=1
; Posistion Params
LAT=5139.20N ; Must be in standard APRS Format (ddmm.mmN/S)
LON=00025.09W ; Must be in standard APRS Format (dddmm.mmE/W)
; IGATE Params. If specified you will gate RF packets and your beacons to APRS-IS
ISHost=aprs.2e0sip.co.uk
ISPort=14580
ISPasscode=YOURPASSCODE
***