Thursday, 8 December 2016

LoRa LoRa Laughs!

Due to the restrictions on airborne amateur radio operation in the UK High Altitude Balloon (HAB) enthusiasts have been forced to utilise licence exempt low power devices in novel ways to make radio trackers for their payloads. I have written plenty on this blog about my HAB tracking, the UKHAS distributed listener network and my own flights.

Until recently the preferred method was to use RTTY transmissions, however the advent of the IoT (Internet Of Things) has seen manufacturers of radio modules develop devices to increase both the range and reliability of communication between 'connected' embedded devices.

One such development are LoRa devices, primarily for devices to connect to a global wide-area network LoRaWAN, more information can be found at the LoRa Alliance in addition there are some open hobbyist networks such as The Things Network using these devices.

Using chirp spread-spectrum modulation these LoRa devices are marketed as being capable of robust, interference and fade resistant communication over longer distances and higher data rates.

The UK HAB community has begun experimenting with these devices and one of their keen proponents is Dave Akerman (M0RPI). Dave has developed both payload software for the "Pi In The Sky" PITS tracker along with Anthony Stirk (M0UPU) and gateway software in collaboration with Robert Harrison M0RJX. The 'gateway' is the necessary receiver element to upload the data to the tracking system. (all software is on the PITS Github page)

Dave gave an informative presentation on LoRa at the UKHAS 2016 Conference which is now available online (starts around 3 minutes in)

I had intended to fly a LoRa transmitter on my 2015 Hamfest balloon but it stopped working at the eleventh hour and hadn't done anything else with LoRa till recently.

Spurred on by the conference presentation and the fact more and more flights are carrying LoRa I invested in one of the Raspberry Pi expansion boards sold by Uputronics and built up another prototype tracker with a working LoRa module.

I have done talks at various radio clubs and societies and demonstrated it working but hadn't actually received a 'real flight' as opportunities have been scarce due to the weather. However in the few weeks I have tracked a couple of flights receiving both telemetry and image data, getting a couple of complete images from the imaginatively named 'SPACE' flight.

Dave Akerman also flew a flight experimenting with multiple payloads using Time-division multiplexing (TDM). It had 10 small of "AVRLoRaNut" trackers (of Anthony M0UPU's design) all set to the same frequency (434.450MHz) and same transmission mode. The trackers took turns to transmit, with each one allocated a particular transmission slot in a 20-second cycle. The cycle was GPS-timed but, if any tracker lost GPS lock then it derived timing from the transmissions from the other trackers (the LoRa devices are also receivers) All 10 trackers were suspended from the same balloon. This was in preparation for the 'Operation Outward' re-enactment next year (Steve Randall gave a presentation on it in the above conference video starts 1 hour 16 mins in)

I successfully received telemetry despite the flight not being local and constantly heading away from me as can be seen in the screen shots.

Always a busy man Dave also flew a flight with an experimental camera setup. The SSDV images this time came from a Nikon compact camera, connected to the Raspberry Pi via USB, and using gphoto2 software to take and transfer images to the Pi where they were stored, resized and converted to SSDV format for transmission. These were large images with a high quality SSDV setting so lots of packets per image, approx 1400 per image in testing. 

This flight was using a 868MHz LoRa device, rather than the usual 434MHz due to the IR2030 restriction on bandwidth and duty cycle. Dave was using his Turbo-X or Mode 4 setting which is as fast as LoRa will go within IR2030 bandwidth restrictions (approx 8 packets / 2k bytes per second)

I hastily ordered a 868MHz device and soldered it in the spare slot on my gateway and built a collinear for 868MHz similar to the one I built for ADB-S reception (see video here).

You can see it lashed up just below the dual-band collinear - not ideal mounting and it wasn't tested in anyway, built blind!  The less than optimal setup at UHF, the insane data rate and the distance (>100miles) were going to make reception difficult, so I was pleased I did manage to receive telemetry and image packets.

Most of the current LoRa development in the HAB community has tended to be on the Raspberry Pi due to the use with SSDV and the easy availability of cameras and ready built kit. LoRa is of course available on the Arduino platform and I had purchased a couple of 'Dragino' shields (pictured below) with a LoRa device on.

Dave has done some work on a AVR tracker software and a simple Arduino 'Serial' LoRa receiver. The receiver connects to a host PC appearing as a serial port and by running some gateway software the receiver can be configured via the serial link and received data is sent back to the gateway to be uploaded to the Habitat tracking system and SSDV system - the software can be seen here during the 'Operation Outward' test flight.

This gateway software is written in Pascal using Delphi and is not as functional as the Raspberry Pi Gateway software. Dave has made the source code available but I am not au fait at all with Delphi however I installed the free development IDE and intended to get in and make modifications but it seems to require a non-free(?) library for the serial comms so ditched the idea.

Instead I have spent the last few days developing a C# .NET version using Microsoft Visual Studio (the community version is free) and also have been modifying the Arduino code in the receiver to add functionality, such as storing the SSDV images locally.

It is still a work in progress but I have made a video showing the current state

Anyway as Cilla Black would say it's been a Lorra Lorra Laughs!