loading

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.

Step 1: BOM (Bill of Materials)

1.

ARDUINO PRO Mini

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 appconwireless.com

Step 2: HARDWARE CONNECTIVITY

- 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

Step 3: ANTENNAS

I’ve found that dipole antenna on the

Transmitting end and wire whip antenna on the receiving end gives the best results

Step 4: RADIO Configuration

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 RF 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.

Step 5: MODULE CONFIGURATION

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.

Step 6: FIRMWARE

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.

Step 7: FLIGHT SETUP

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).

Step 8: RESULTS

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.

Step 9: FLIGHT DATA

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.

Step 10: CONCLUSIONS

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!

Step 11:

Step 12:

<p>Could you please share the Arduino code?</p>
Hi all,there is a good board for the LoRa project,you can view http://wiki.dragino.com/index.php?title=Lora/GPS_HAT to get more info.
<p>Hello, I am working with 2 LoRa1278's and 2 arduino uno's. I would like to make them communicate with eachother but I still didn't managed to do it. Does somebody has experience with this type of transceiver? Thanks in advance!</p>
<p>Hi there! Congratulations on your experiment and thanks for sharing.</p><p>One question, though, if you may: How is the Arduino Pro Mini powered? The UART on the RF1276 is 3.3V, so you'd either need a DC-DC buck for the 3.3V Arduino, or a level shifter for the 5V Arduino.</p><p>If you could clarify, this would be much appreciated.</p><p>Thanks</p>
<p>Hello, <br>I received your code from Appcon Wireless and I have ran into a issue running the code.</p><p>Here is the error message:</p><p>In file included from C:\Users\WSLLC\Documents\Arduino\libraries\SdFat/utility/bufstream.h:27:0, <br> from C:\Users\WSLLC\Documents\Arduino\libraries\SdFat/utility/ArduinoStream.h:29, <br> from C:\Users\WSLLC\Documents\Arduino\libraries\SdFat/utility/FatLib.h:23, <br> from C:\Users\WSLLC\Documents\Arduino\libraries\SdFat/SdFat.h:27, <br> from sky_module_firmware.ino:11: <br>C:\Users\WSLLC\Documents\Arduino\libraries\SdFat/utility/iostream.h: In function 'ostream&amp; endl(ostream&amp;)': <br>C:\Users\WSLLC\Documents\Arduino\libraries\SdFat/utility/iostream.h:40:33: error: 'ostream&amp; endl(ostream&amp;)' redeclared as different kind of symbol <br> inline ostream&amp; endl(ostream&amp; os) { <br> ^ <br>In file included from sky_module_firmware.ino:8:0: <br>C:\Users\WSLLC\Documents\Arduino\libraries\Streaming/Streaming.h:100:21: error: previous declaration of '_EndLineCode endl' <br> enum _EndLineCode { endl }; <br> ^ <br>In file included from sky_module_firmware.ino:15:0: <br>DEVICES.h: In function 'void debug(char, char, uint8_t)': <br>DEVICES.h:62: error: 'endnl' was not declared in this scope <br> CONS_UART &lt;&lt; strb &lt;&lt; endnl; <br> ^ <br>DEVICES.h: In function 'void info(char*, int, int)': <br>DEVICES.h:78: error: 'endnl' was not declared in this scope <br> CONS_UART &lt;&lt; strb &lt;&lt; endnl; <br> ^ <br>DEVICES.h: In function 'void BMP_Init()': <br>DEVICES.h:158: error: 'class BMP085' has no member named 'begin' <br> BMP.begin(); <br> ^ <br>DEVICES.h: In function 'void BMP_Read()': <br>DEVICES.h:169: error: 'class BMP085' has no member named 'readTemperature' <br> SYS.BAR_t = BMP.readTemperature(); <br> ^ <br>DEVICES.h:170: error: 'class BMP085' has no member named 'readPressure' <br> SYS.BAR_p = BMP.readPressure(); <br> ^ <br>DEVICES.h:171: error: 'class BMP085' has no member named 'readAltitude' <br> SYS.BAR_m = BMP.readAltitude(SYS.BAR_p); <br> ^ <br>In file included from sky_module_firmware.ino:17:0: <br>OUT.h: In function 'void txData()': <br>OUT.h:79: error: 'endnl' was not declared in this scope <br> CONS_UART &lt;&lt; dataBuff_b &lt;&lt; endnl; <br> ^ <br>'endnl' was not declared in this scope</p><p>I'm not sure what I'm dong wrong and was hoping you might be able to help.</p><p>Thanks <br>Neil</p>
<p>Its very well established in radio that the antennas should be in the same orientation for optimum results so a dipole on both ends or a vertical on both ends but not a mix . You were not testing properly if you think otherwise. </p>
<p>Bravo, although perhaps mention <em>radio horizon</em> from altitude <br>will of course be still the limiting range factor. LoRa&trade; performance <br>however is indeed near magical, &amp; my diverse trials with Dorji &amp; <br> HopeRF 433 MHz modules confirm <strong>ranges an order of magnitude (x10) greater</strong> <strong>than similar UHF gear under the same conditions</strong>. My own instructable may assist folks after LoRa&trade; insights - see =&gt; <a href="https://www.instructables.com/id/Introducing-LoRa-/" rel="nofollow">https://www.instructables.com/id/Introducing-LoRa-/</a></p>

About This Instructable

7,664views

44favorites

License:

Bio: 游子
More by Jasonw3:Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Solution GOING BEYOND THE HORIZON WITH LoRa RF1276 
Add instructable to: