Basic FANET OGN Groundstation based on ESP32 + SX1262
Important
This project is currently in beta and may require further testing. If you encounter any issues or unexpected behavior, please open an issue or let me know.
Currently, the main groundstation options are GxAirCom and SDR-based OGN receivers.
As long as the OGN receiver software remains closed source and does some shady deals with FLARM, I will not support it. FLARM reception is also not intended in this project.
Both GxAirCom and SDR-based solutions only publish data to OGN, which has some disadvantages β such as reduced accuracy (e.g., windspeed conversion to integer knots) and missing data like battery state of charge.
GxAirCom technically has features to address these issues, but it is overloaded: it can be used as a variometer, flying device, display unit, and cellular modem. The result is a bloated codebase with limited maintenance. Some features are broken or hard to fix.
So, why not start from scratch?
This project is a simple groundstation that acts purely as a gateway for FANET data to the internet β nothing more. It includes useful features like over-the-air updates via a web interface and live viewing of received data.
Currently designed for the Heltec Wireless Stick V3 Lite a ESP32-S3 + SX1262 board.
Where to buy:
Multicore is not explicitly required. The project uses RadioLib for flexible radio support.
- Receives FANET weather data, live tracking, and names
- Sends received FANET data to APRS servers like OGN
- Optionally posts data to an HTTP API endpoint (e.g., breezedude server)
- Simple and modern web UI with captive portal and WebSocket live data
- Web updater (firmware & web)
- No FANET frame forwarding β this is an internet gateway; who would receive them? Everyone flies with a phone
- No third-party weather station data sent to FANET
- Not a weather station: no display, no external sensors
- Wi-Fi only for now β cellular support may be added later (only for solar-powered hardware)
If you miss some features let me know.
Visit Breezedude Web Installer (requires Chrome or a WebSerial compatible browser)
- Connect the Heltec Wireless Stick to your computer using a USB C cable
- Click Connect. A popup Window opens in yur browser. You should see a CP2102 device in the list.
- Select the device and click connect
- Select
erase deviceand click next
- Click
Installto start the installation
- Wait for the installation to finish
- You should find a "BD-Groundstation" WiFi. Connect using the default password
configureme. Continue with the Configuration
If its not working out of the box, check Console/Log for error messages
- Flash device and connect to WiFi AP
BD-Groundstationdefault password isconfigureme - Follow captive portal or open 192.168.4.1 if you get not directed automatically
- Set up your values for WiFi, name and position
- If everything is set up correctly, enable sending data to OGN by enableing the checkbox and filling
aprs.glidernet.orgin APRS Server. Port is 14580
If something went wrong, you can reset to factory config by pressing and holding user button shortly after pressing Reset button. It will be confirmed by a short blink of the white onboard LED. If pressing user button while pressing reset button you will enter esp download mode.
For debugging you may connect to your device using Breezedude Web Installer and open the console by clicking Logs & Console
Get the current version from releases Open configuration page of breezedude groundstation
- Backup the settings by clicking
Export Configin Tools - In Tools select 'Update' and upload
firmware_update.bin - In Tools select 'Update' and upload
littlefs.bin - Restore Config if its broken/reset by uploading your backup file. Don't forget to click
Saveto write the uploaded settings This should work most of the time. If some changes break the updater, an clean upload with WebFlasher/PIO may be required.
You can write a fresh firmware image for updating. Either using the Breezedude Web Installer or Building & Uploading with PIO. This may be required if the integrated web updater fails updating.
Requirements:
- VSCode with PIO installed
- NodeJs (for minifying HTML, optional)
Steps:
- Clone/Download this repo and open it in VSCode with PlatformIO installed
- PIO will setup everything required.
- (optional) edit
src/config.hto set your default values. - In PIO Project Tasks open
heltec_wifi_lora_32_V3->Generaland clickUpload. - It is required to upload the SPIFFS/LittleFS image as well. For this click
Upload Filesystem ImageunderPlatformin PIO Poject Tasks.
Note
If you want to skip rebundeling HTML+JS comment pre:minify.py in extra scripts with a semicolon
pre:install_deps.py will run npm i in /bundle for minifying HTML+JS
Note
The script post:copy_firmware.py will run automatically on build and generate and copy the files for web-update to the project root.
The custom Task Build & Bundle all will generate the all-in-one.bin for webflashing (saved to the project root).
If you like this project