LoRa based inter UAV communication
INAV-Radar is an addition to the INAV flight control software, it relays information about UAVs in the area to the flight controller for display on the OSD. INAV-Radar does this by using LoRa radio to broadcast position, altitude, speed and plane name. It also listens for other UAVs so INAV OSD can display this information as a HUD.
ESP32 Firmware Installer: Download
RCgroups thread: INAV-Radar on RCgroups
*** 1.30 (2019/05/18)
Radar logo at boot Better timings, greatly reduced display latency Many cosmetic tweaks and fixes Newest inav 2.2.dev REQUIRED (built 2019/05/18 or newer)
*** 1.20 (2019/05/14)
Better timing for MSP and air packets 5 nodes capable, but locked at 4 nodes for now Faster rate for MSP messages to improve tracking accuracy in iNav 2.2, faster display to reduce tracking stuttering Known issue : sometime the debug page with the timings reboots the module
*** 1.01 (2019/05/06)
- More detailled screens per nodes - Displays the local vbat and mAh. These datas are not yet transmitted to the other nodes. - Pressing the top button during the boot sequence will put the module in "silent" mode (ground-station), it will only receive, and won't transmit, thus freeing a slot. Button must be pressed at least once, between the time the module is plugged and the end of the SCAN progress bar. - No need to update iNav since 1.00, no changes.
*** 1.00 (2019/04/25)
- Initial release - Require iNav 2.2-dev, including the latest version for the Hud branch (build date 2019/04/27 or newer) - Cycle time 500ms, slotspacing 125ms, LoRA SF9 bw250, maximum 4 nodes (you + 3 others)
If you feel brave engough to be a tester, just ask us in the Facebook group. Contact
Current development is done using these cheap ESP32 LoRa modules.
There are different variants for 433MHz and 868/915MHz:
Other variants (e.g. Heltec) or without OLED display and different antenna connectors should also work.
Also please keep track of your countries regulations regarding radio transmissions.
Everything here is WORK IN PROGRESS!
The software is based on two components:
- ESP32 LoRa part is found in this repo. It's developed using PlatformIO plugin for Atom editor.
- INAV OSD part repo is found here. It's a fork from the INAV repo and instructions how to build can be found here.
INAV-Radar is a experimental firmware based on INAV and soon will become a part of the INAV flight control software. INAV repo can be found here.
ESP32 firmware flashing
With the installer (Only Windows at the moment, for Linux / Mac os user see "Manual flashing" (bottom of page)
For testing there is no need to install Atom and PlatformIO, just use the ESP32 firmware installer for flashing.
To connect the ESP32 to the FC:
- wire up +5V and GND
- TX from FC to ESP RX pin 17
- RX from FC to ESP TX pin 23
Backup your FC settings, flash the current testing version of INAV.
Dump your backup back into the cli.
Activate MSP on the corresponding UART, the speed is 115200. Enable the crosshair.
Please also flash the extra Vision OSD fonts for signal strenth and the homing crosshair. Vision 1 is small/light, Vision 4 is heavy/bold.
The HUD has an entry in the stick menu (OSD->HUD) where you can change this configuration at runtime.
Optional OSD and HUD cli settings:
osd_layout 0 2 0 0 V osd_layout 0 43 0 0 H osd_layout 0 44 0 0 H osd_layout 0 45 0 0 H set osd_crosshairs_style = TYPE6 set osd_horizon_offset = 0 set osd_camera_uptilt = 0 set osd_camera_fov_h = 135 set osd_camera_fov_v = 85 set osd_hud_margin_h = 1 set osd_hud_margin_v = 3 set osd_hud_homing = ON set osd_hud_homepoint = ON set osd_hud_radar_disp = 4 set osd_hud_radar_range_min = 1 set osd_hud_radar_range_max = 4000
!!! COMMANDS ARE DISABLED IN CURRENT VERSION !!!
================= Commands ================= status - Show whats going on help - List all commands config - List all settings config loraFreq n - Set frequency in Hz (e.g. n = 433000000) config loraBandwidth n - Set bandwidth in Hz (e.g. n = 250000) config loraSpread n - Set SF (e.g. n = 7) config uavtimeout n - Set UAV timeout in sec (e.g. n = 10) config fctimeout n - Set FC timeout in sec (e.g. n = 5) config debuglat n - Set debug GPS lat * 10000000 (e.g. n = 501004900) config debuglon n - Set debug GPS lon * 10000000 (e.g. n = 87632280) reboot - Reset MCU and radio gpspos - Show last GPS position debug - Toggle debug output localfakeplanes - Send fake plane to FC lfp - Send fake plane to FC radiofakeplanes - Send fake plane via radio rfp - Send fake plane via radio movefakeplanes - Move fake plane mfp - Move fake plane
Manual Flashing ESP method:
You will need Python 3.4 or newer installed on your system.
Be sure to check 'Add Python to PATH':
The latest stable esptool.py release can be installed via pip in your command prompt:
c:\> pip install esptool
$ pip3 install esptool
Download the air-to-air test firmware from the releases page and extract it. Run this command to flash it onto your ESP32 Lora module (Windows and MacOS):
You may change the --port to match your operating system. If you are using Windows check the device manager.
c:\> cd (your air-to-air directory here) c:\> esptool.py --port COM11 write_flash -z --flash_mode dio 0x1000 bootloader_dio_40m.bin 0x8000 default.bin 0xe000 boot_app0.bin 0x10000 firmware.bin
$ cd (your air-to-air directory here) $ esptool.py --port /dev/tty.SLAB_USBtoUART write_flash -z --flash_mode dio 0x1000 bootloader_dio_40m.bin 0x8000 default.bin 0xe000 boot_app0.bin 0x10000 firmware.bin