Arduino Project: Going beyond the horizon with LoRa module RF1276

Release time:2016-07-03

I´ve found RF1276 Transceiver to deliver the most outstanding performance in terms of signal range and quality. Upon my first flight I was able to reach 56km distance at -70dB signal level with small quarter wavelength antennas.

2. Ublox NEO-6M GPS module
3. BMP-085 barometric pressure sensor
4. SD Card adapter
5. 3Watt LED
6. 2x 18650 2600mAh batteries
7. DC-DC buck voltage converter
8. 2x RF1276 Tranceivers from

- BMP085 sensor is connected to A4 (SDA) and A5 (SCL)
- SD Card is connected to 10(SS), 11(MISO), 12(MOSI), 13(SCK)
- GPS is connected to 6(TX), 7(RX) – software serial
- RF1276 is connected to TX->RX, RX->TX – hardware serial
- Battery voltage monitor is connected to A0 via voltage divider
- LED ON/OFF control is done through N-FET (IRLZ44N), which is connected to pin 9 via pull-down resistor.
- Pin 8 is connected to RST (for a remote microcontroller reset)

- Battery is connected to DC/DC buck converted, which is regulated for 5V output

I’ve found that dipole antenna on the Transmitting end and Inverted-Vee antenna on the receiving end gives the best results.

Transmit antenna (sky)

Receive antenna (ground)

To go for the maximum range, one has to understand the basic physics behind the radio communication.
- Increasing the bandwidth reduces the sensitivity (and vice-versa)
- Increasing antenna gain reduces the transmit power required
- Line-of-sight is a must
Based on above rules, I’ve chosen the following parameters for RF1276 tool:
- SF: 2048
- BW: 125kHz
- TX Power: 7 (max.)
- UART speed: 9600bps
Above settings will only give 293bps, but will enable -135dB receive sensitivity. That means that you can transmit small packets (i.e. latitude or longitude) approx. every 2 seconds. If you also want to remotely control your electronics, you must leave i.e. 1 second for listening to the ground commands. So the data can be transmitted every 3 seconds.
The firmware requires both the GPS module and RF1276 to be configured for 9600bps UART. GPS configuration can be made with u-blox U-Center software.
View->Messages->UBX->CFG->PRT->Baudrate->9600. Then,
Receiver->Action->Save configuration.
RF1276 configuration can be made with RF1276 Tool.
Firmware will:
- Monitor atmospheric pressure and temperature
- Monitor battery voltage
- Capture variety of GPS values
- Log all data to SD card
- Transmit all data
Firmware enables the following remote control options:
- reset the module
- turn the led ON/OFF
- update internal counter after receiving ping packet from ground
Both SD card reader and BMP pressure sensor is programmed for fault-tolerant operation. Failure of one of those will not crash the module.

I’ve hooked up the payload to the balloon. The payload weight is slightly above 300g.  The balloon is heavier – approx. 1kg. I’ve filled it with 2 cubic meters of helium thus giving 700g of free-lift. I’ve inflated it to burst at 1.5km (85% of volume).

The balloon has reached 4.6km altitude and distance of 56km. It was traveling at 40kmph over a huge city and has landed somewhere in a swamp. It has only burst at 4.6 km, so its tensile strength was 3 times better than I’ve initially estimated.
I did not recover the payload since I couldn’t drive and focus on monitoring the real-time telemetry alone.

I’ve captured the last packets when the balloon was at approx. 1km altitude. This is when it went beyond the horizon.

I’ve collected many more parameters, but those extra-ones are GPS mainly. Reconstructed flight path is provided in the image above, and here’s the internal sensor data.

RF1276 is definitely an outstanding transceiver. I haven’t tested any better than this-one. Flying above huge city (high interference condition) in heavy winds with unstable antenna position it was able to deliver -70dB signal level at 56km distance being 1km above ground, thus leaving -65dB link budget! (its configured sensitivity limit was -135dB). If only it didn’t went behind the horizon (or if I was higher – i.e. on some hill or telco tower) I could have captured it’s landing location. Or, alternatively, if balloon didn’t burst, I could have reached twice or trice the distance!

If anyone need the firmware of the project, please click here to mail us.

*This article is writed by Flegmatoid Zoid, very appreciate for his help*