No Things found in this revision yet.
Browse this revision’s files →DroneBridge for ESP32. A secure & transparent telemetry link with support for WiFi and ESP-NOW. Supporting MAVLink, MSP, LTM or any other protocol
Loading README and project media…

DroneBridge enabled firmware for the popular ESP32 modules from Espressif Systems. Probably the cheapest way to communicate with your drone, UAV, UAS, ground based vehicle or whatever you may call them.
Also allows for a fully transparent serial to wifi pass through with variable packet size (Continuous stream of data required).
DroneBridge for ESP32 is a telemetry/low data rate only solution. There is no support for cameras connected to the ESP32 since it does not support video encoding.

![]()
Tested with: DOIT ESP32 module

Blackbox concept. UDP & TCP connections possible. Automatic UDP uni-cast of messages to port 14550 to all connected devices/stations. Allows additional clients to register for UDP. Client must send a packet with length > 0 to UDP port of ESP32.
First download the latest release from this repository. You can find them here.
For flashing there are many ways of doing this. To easy ones are shown below.
Erase the flash before flashing a new release!
pip install esptooldmesg on linux or device manager on windows.
In this example the serial connection to the ESP32 is on COM4 (in Linux e.g. /dev/ttyUSB0).esptool.py -p COM4 erase_flashesptool.py -p COM4 -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 bootloader.bin 0x8000 partition-table.bin 0x10000 db_esp32.bin 0x110000 www.bin
You might need to press the boot button on your ESP to start the upload/flash process.Look here for more detailed information
0x8000 partition_table/partition-table.bin
0x1000 bootloader/bootloader.bin
0x10000 db_esp32.bin
0x110000 www.bin
(Power the ESP32 module with a stable 5-12V power source) Check out manufacturer datasheet! Only some modules can take more than 3.3V/5V on VIN PIN
Defaults: UART2 (RX2, TX2 on GPIO 16, 17)
DroneBridge ESP32 with password dronebridgedronebridge.local (Chrome: http://dronebridge.local) or 192.168.2.1 into the address bar.
You might need to disable the cellular connection to force the browser to use the wifi connectionsave
Configuration Options:
Wifi SSID: Up to 31 character longWifi password: Up to 63 character longUART baud rate: Same as you configured on your flight controllerGPIO TX PIN Number & GPIO RX PIN Number: The pins you want to use for TX & RX (UART). See pin out of manufacturer of your ESP32 device Flight controller UART must be 3.3V or use an inverter.UART serial protocol: MultiWii based or MAVLink based - configures the parserTransparent packet size: Only used with 'serial protocol' set to transparent. Length of UDP packetsLTM frames per packet: Buffer the specified number of packets and send them at once in one packetGateway IP address: IPv4 address you want the ESP32 access point to haveMost options require a restart/reset of ESP32 module

You will need the Espressif SDK: esp-idf + toolchain. Check out their website for more info and on how to set it up. The code is written in pure C using the esp-idf (no arduino libs).
This project uses the v4.3 branch of ESP-IDF
Compile and flash by running: idf.py build, idf.py flash
The webinterface communicates with a REST:API on the ESP32. You can use that API to set configurations not slectable via the web-interface (e.g. baud rate). It also allows you to easily integrate DroneBridge for ESP32.
To request the settings
http://dronebridge.local/api/settings/request
To request stats
http://dronebridge.local/api/system/stats
Trigger a reboot
http://dronebridge.local/api/system/reboot
Trigger a settings change: Send a valid JSON
{
"wifi_ssid": "DroneBridge ESP32",
"wifi_pass": "dronebridge",
"ap_channel": 6,
"tx_pin": 17,
"rx_pin": 16,
"telem_proto": 4,
"baud": 115200,
"msp_ltm_port": 0,
"ltm_pp": 2,
"trans_pack_size": 64,
"ap_ip": "192.168.2.1"
}
to
http://dronebridge.local/api/settings/change
To test the frontend without the ESP32 run
npm install -g json-server
json-server db.json --routes routes.json
Set const ROOT_URL = "http://localhost:3000/" inside frontend/db_settings.js