This is an old revision of the document!
Table of Contents
LoRa for AX.25 Packet, and APRS
The LoRa mode, designed for low power and long range, can be used as the physical mode for APRS and connected mode packet radio (BBSes, nodes etc.)
There is already a good amount of APRS over LoRa, and it is continuing to grow (see this map for LoRa-only APRS devices for example). It's use for traditional packet radio is less common, but is finding use in some places, notably OK2ZAW's blog.
LoRa APRS
APRS over LoRa is gaining traction, and is great for getting good range at low power. The popular LoRa boards from manufacturers like Lilygo, Heltec, and RAK that are used in many other LoRa projects work great for this and are widely supported by APRS firmware. They typically offer around 0.1 watts output, which gets you surprisingly far. Remember to get hardware on the 70cm band and not the 868/915 MHz ISM band that is popular with other license free LoRa projects.
While there are a number of other firmware options, people seem to be converging on Ricardo Guzman's (CA2RXU) which incorporates a lot of work done by pervious people. This can be found at:
- LoRa_APRS_iGate - Digi/iGate fimrware
- LoRa_APRS_Tracker - Tracker firmware (periodically beaconing your location)
These work completely standalone, but also offer KISS so external APRS clients can be used (for APRS only, not packet, see below!) The iGate firmware makes KISS available on TCP and/or USB-serial, the tracker firmware can do KISS via bluetooth. The tracker does expose a USB-serial port but it is not for KISS and is only for debug output or flashing the device.
In the UK, the LoRa APRS frequency and modulation settings are:
439.9125 MHz (note this is different to elsewhere in Europe)
Bandwidth: 125khz
Spreading factor: 12
Coding Rate 4/5 (ie. enter “5” for the CR4 option)
License Requirements
If you want to run an unattended Digi that may be subject to 3rd party use (ie. digi'd packets from other people) in the UK, you will need to coordinate with the ETCC for a Frequency Assignment Certificate (FAC) and be aware of any license conditions that need to be followed.
LoRa Packet Radio
(This is still being investigated by OARC members, so the following is a work in progress)
Unfortunately, the LoRa PRS firmware mentioned above is not suitable for traditional connected mode packet radio, even though KISS is exposed. This is because the on-air format of LoRa APRS is actually a TNC2 style string in the payload of the LoRa packet, and not a full AX.25 packet as would be typical of VFH APRS. This TNC2 string does not represent all the header fields of an AX.25 packet, which is fine for APRS which always uses certain values anyway, but destroys important information needed for packet radio. An AX.25 frame is constructed with hardcoded APRS header values specifically to send to KISS clients.
This means all packets, regardless of how they were sent to the KISS port, will end up looking like UI packets on the other side. It is possible to have a UI-packet chat this way, but it is impossible to “connect” to another station.
There are however other options, though these have not yet been tested by OARC members. These are:
- Using an RNode With Amateur Radio Software - some newer device support might also be available in the community fork at RNode_Firmware_CE
- Raspberry Pi LoRa TNC - OK2ZAW also provides Pi images on his blog - newer chips may be supported by RPi-LoRa-KISS-TNC-2ndgen
RNode supports many of the same LoRa hardware options as the APRS firmware, but not all (it does seem to be actively worked on though), and even supports home brew hardware builds. It can also do a lot of other things as well as packet radio, not all amateur radio related.
RNode TNC
RNode firmware can be installed using the rnodeconf command included in the rns python package, which can be installed with pip:
pip install rns
This provides the rnodeconf command. Install firmware by running:
rnodeconf --autoinstall
This will prompt you to plug in your device to USB, and select the virtual COM port it is on. Select the correct model and variant of the hardware you have when prompted, and it will install firmware.
Note that as of 2024-08-14, 2E0HKD has noticed that selecting “LilyGO T-Beam”, and then “433 MHz (with SX1268 chip)”, does in fact select firmware for the SX1262, which works on a T-Beam v1.2 SX1262. (The SX1268 is a very similar chip so it may simply run on identical firmware).
Once installed, the device can be put into packet TNC mode with a command like (change for your COM port, works with linux ports like “/dev/ttyUSB0” as well):
rnodeconf -T --freq 439912500 --bw 125000 --sf 12 --cr 5 COM8
NOTE: this example is the LoRa APRS frequency, but limit your use of this in the real world so as not to crowd out that frequency with non-APRS traffic. Remember LoRa is spread spectrum and can use a wide bandwidth, although alternative settings can lower this bandwidth requirement.
You can now use the COM port for serial KISS (115200 baud was seen to work on Windows). ACKMODE does not seem to be supported at this time (2024-08).
This command will have to be run each time the device is plugged in to put it back into TNC mode.
It is possible to choose lower bandwidths to fit in narrower channels, but the bitrate drops (or even higher bandwidth and faster!), so creativity in different bandplans is feasible.
Other Resources
- esp32_loraprs - ESP32 based LoRa/FSK KISS Bluetooth/BLE/USB/TCPIP modem, and supports “APRSDroid TNC2 text APRS packet mode”
- ESP32APRS_T-TWR - works in 3-modes: APRS internet gateway, digital repeater, tracker, with built-in TNC and radio transceiver. which is used with the ESP32-S3 LILYGO T-TWR Plus V2.0 board, “Bluetooth TNC2/KISS Mode”
- LoRa Packet Radio (new age of PR) Facebook group
OARC's own 2E0ITB is working on an embedded AX.25 implementation ax25embed, so it is entirely possible we could use this with a custom firmware (on either a LoRa dev board, or a custom micro + LoRa module) and make our own.