====== 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 ***