LoRa-APRS as used in SOTA

10 minute read

LoRa1 usage is coming on in leaps and bounds, an exciting new-ish tech that is very different from traditional Amateur Radio modulation schemes offering different capabilities. You aren’t going to ragchew on LoRa, but it’s great for short messaging and position reports. A year and a bit ago I looked at Meshtastic and observed that LoRa could be a good match to drag APRS into the 21st century but LoRa APRS wasn’t there yet. Many people seem to be building on the work by OE5BPA and Summits on the Air (SOTA) ops seem to be pressing forward with using it in the field. The QRP units are small and light, range is good, they can be battery powered for long periods.

what Lora can do with 0.01W - 32 miles to GW4WVO-10 south west of Cardiff from a 20dBm (0.1W) board through a 10dB attenuator. SOTA ops get much longer distances on hills, but it’s not bad for a hundredth of a watt inside the house.

SOTA and LoRa - a great match

LoRa-APRS is a good match for the SOTA use case, as they can get spots out without relying on patchy mobile data. Regular APRS coverage can be iffy in the hills, because there are fewer APRS iGates in the countryside. Here the improved performance of LoRa translates to long ranges for low power - summits by definition are high points so they have a good starting takeoff baked in.

LoRa-APRS uses the same boards2 as Meshtastic. SOTA activators are doing a lot of good work with this, and the new licence conditions help greatly by making it easier to run a two-way LoRa gateway. The low power of ~20dBm (0.1W) isn’t going to get you into trouble with ICNRP RF exposure, and performance is good because LoRa spread-spectrum uses a lower signal bandwith3 compared to 1970s Bell 202 modem used with with FM transceivers on 2m.

I constructed a Moxon antenna for the 70cm band, and used a Lilygo T3 S3 v1.6 board 433MHz version. I was able to insert a 10dB Texscan TA-50 attenuator. This is a 50 ohm 10dB in 1dB steps unit and I still got an ack4 from GW4WVO-10 over APRS.FI, having 10dB in hand over 32 miles seems a good performance. On normal APRS 144.800 my Rx only iGate has a coverage into South Wales, but the originating stations are often mobiles running 10W (40dBm)or more, so bridging the same gap with a thousandth of that power is testament to the superior performance of the LoRa modem for APRS compared to the old packet radio 1200 baud AFSK 2m APRS is based on.

UK LoRa quirks

UK LoRa parameters are an oddball relative to most of the rest of Europe which used a frequency of 433.775 MHz, the other parameters are the same.

Frequency 439.9125MHz
spreadingFactor 12
signalBandwidth 125kHz
codingRate4 5

LoRa is chirp spread spectrum so the 125kHz bandwidth isn’t as horrific as it sounds. I listened on a TH-D7 FM handheld on the centre frequency in the same room as the LoRa Tx and sent a beacon, I had to set the rig to unsquelched to hear the signal. 439.9125 is in the All Modes Digital Communications part fo the UK 70cm bandplan

I used CA2RXU’s software ,and program the boards using VSCode and Platformio, Getting that platform going from a standing start isn’t for the faint-hearted, though eminently doable, the above SOTA reflector thread and the associated Wiki

You won’t necessarily get the best results using that dual-band rubber duck antenna, apparently these are often poor on 70cm.

G3CWI notes that

I have mentioned before that many of the dual band antennas work poorly on 70cm. They may give a reasonable SWR, but any “gain” and radiation is not focussed towards the horizon.

on the SOTA LoRa APRS wiki there is a page on antennas. there is a dedicated 70cm rubber duck antenna from RF solutions which is also available at CPC. This is a standard ¼ wave whip so quite improvisable.

70cm Moxon antenna

the 70cm Moxon antenna

I used MoxGen to calculate this, and made it with 4mm ally bar and 20mm plastic conduit and fittings from Screwfix. You can make the whole thing with a little bit in hand from a 1m length of bar. The one-way junction box is for mechanical rigidity. For the dipole I threaded the bar at M4 with a die which allowed me to use two nuts either side of the plastic junction box to hold it, and another for a M4 solder tag to make the connection. I needed to add some ferrite over the exit cable just behind the connection to make the SWR less susceptible to grabbing the cable outer, indicative of RF on the outside ofthe cable. A real balun would help here. I am probably not precise enough a mechanical engineer to make this well at this high a frequency. L Cebik indicates the ratio of the folded tails to the rest of the driven element affects the feed impedance, and I probably muffed it on this, doing this with rod as opposed to wire as 2E0RHM did means you get exactly one chance to get that ratio right.

Testing it with a nanoVNA I found I had to move the reflector back quite a bit to raise the antenna impedance (at resonance) for a better match, a SWR about 1.8. In future I’d make it out of copper wire stripped from cooker cable, that way you get to do over if the lengths need fiddling with - a nanoVNA is essential. I have a large hill behind me so I didn’t want to waste RF on that, for most situations a ¼ wave vertical would be fine. 2E0RHM seems to have done a more competent job than I - the element lengths are similar but my gap is more like 4cm than 2cm, I’ve probably given up some of the great Moxon front to back ratio to get SWR down to make up for my imprecise implementation. But the result to GW4WVO-10 is good, and I got a distance of 13 miles to the tracker on a ebay fake Nagoya NA779 in the boot of my car behind the metal part of the hatch, so it’s tolerable for this use, I will use it as is. I don’t expect a lot of LoRa QRM from the hill. 2E0RHM’s construction is the way to go to make these.

Note the dipole is at the front of the antenna, which feels sort of weird. It is horrifically sensitive to anything solid in the vicinity - I watched the SWR skyrocket as I brought the antenna close to the window, initially I thought I had a broken connection. Anything closer than 10cm to the window seriously detunes it, it is possible my windows have a thermal coating, but I had to run this antenna set back in the room so it points through the wall to get away from that effect.

Messaging quirks with APRSdroid and SSID gotchas with iGate via KISS modem port

People on the SOTA reflector seem to experience some wrinkles with messaging on Android, the goto APRS app here is APRSDroid. This appears to require you to connect via regular Bluetooth, not BLE. You scan for the device like you would for old school BT headphones etc. I can’t say I had a problem with that5, what did give me a probem was the SSIDs.

I found it hard to love APRSdroid’s messaging interface having seen the Meshtastic app, which is much slicker. But it’s serviceable, gets the job done.

CA2RXU iGate strangeness

When I used to connect to hardware KISS TNCs back in the day, they generally had no SSID of their own, the Keep It Simple Stupid acronym is the clue. I initially tried to connect to the iGate (17.07.2024 release) using Pinpoint set to the same SSID, using the IP KISS port. Messages over RF worked OK but Pinpoint wouldn’t send a position beacon or give an error message.

Not sure if this is meant to work, but setting Pinpoint’s SSID to a different value sorted this, but only if the iGate was not connected to APRS-IS, which is largely the point of an iGate. Setting Accept own frames via KISS allowed me to Tx a position packet via the iGate with Pinpoint set to the same SSID as the iGate, but only when not connected to APRS-IS. In the end I turned off the KISS modem on the iGate, it’s a fine iGate as it is and perhaps I was pushing my luck trying to use it as a general KISS modem. After all Pinpoint/APRS32 are perfectly capable to connecting to APRS-IS on their own via the internet.

CA2RXU tracker

The CA2RXU tracker on G7LEE-9 with APRSdroid set to G7LEE-9 seems to work fine. I can’t yet work out if I was being stupid with the iGate or it is a bug, it seemed logical to take over the same SSID as the unit. Note that there can be a surprising delay between pressing send on APRSdroid and the message going out - you will observe a BT TX followed by your message on the OLED screen when it actually goes out over RF. I observed delays of up to a minute and a half, it’s not always that long. The other way, using Pinpoint into the IP KISS port of the igate responds within a second, and APRSdroid shows the message within a couple of seconds.

Conclusion

A lot of hard work by the OpenSource community has made APRS-LoRa from a gimmick to something that could be very useful to SOTA operators, and APRS users generally. There’s a great amateur radio infrastructure behind APRS that has been refined over thirty years in the APRS-IS system and displays like aprs.fi. Although Meshtastic using MQTT does something similar for unlicensed users, and I’d much rather use the Meshtastic app to keep in touch with a group of hikers than APRSdroid this has unique advantages. LoRa-APRS excels in long-ish range connections to this great infrastructure, particularly if more iGates are added over time. Amazing work over the last few years. IMO while APRS was great in its day it needed some development to drag it into the 21st century.

LoRa-APRS hasn’t been tested at a high density so it may have issues as yet unknown, but the progress to date and the technical development is a great example of amateur radio moving forward.

Software used

CA2RXU Tracker ver 2024.07.01 on a LilyGo T-Beam 1.1
CA2RXU iGate ver 2024.06.27 on a LilyGo Lora32 v2_1
APRSdroid

  1. from LongRange 

  2. I repurposed my 433MHz Meshtastic boards to LoRa-APRS after coming to the conclusion Meshtastic is better on 868MHz because more poeple are using it in the UK on that frequency, and I didn’t observe a real difference in Meshtastic range for tracking walkers with 433MHz compared to 868MHz. 

  3. the wide 125kHz signal bandwidth is not all used at once, the Tx and Rx track a narrowband signal across this frequency range, the actual bandwidth used is a function of the signal bandwidth and spreading factor, the SF12 with 125kHz BW and CR4/5 gives a data rate of about 300bit/sec before the protocol overhead. Semtech have a more exact Lora data rate calculator that gives an effective data rate of 290bps 

  4. GW4WVO-10 is an Rx-only iGate, I will not hear an ack from this station over the air, and position reports are not acked anyway. You can, however see stations that heard your position report, and the time they last heard it. aprs.fi updates this within a couple of seconds, keeping an eye on the last heard time lets you confirm signal received (if changed) or not if the time deosn’t change. To extend the 10dB attenuator I needed more loss. I added a fixed 6dB Wavetex SMA DC-2GHz attenuator in line and backed off the Texcan to 4dB, I was just on the edge with 10dB max on the Texscan. 

  5. Note that I used Lilygo T-beam for the tracker and Lilygo S3 for the iGate. These can do Bluetooth Classic. The SOTA ops report APRSdroid problems using Heltec Wireless Tracker, which is a nice form factor and a decent size GPS antenna compared to the T-Beam. The specs for the Heltec Wireless Tracker seems to specify Bluetooth LE and are silent on whether Bluetooth classic is present, leading some people to infer it doesn’t do Bluetooh classic. One data point contrary to this I’ve used a Heltec Wireless Tracker on Meshtastic using the Meshtastic app OK on a 2016 Galaxy Tab A which only does Bluetooth classic, the Helte is a lovely board with a better form factor than the T-Beam for a pedestrian tracker.