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)
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.
RF1276 configuration can be made with RF1276 Tool.
Step 6: FIRMWARE
- 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!