Support Suite

Open-source Python tooling for bulk flashing, configuration, licensing, and OTA updates across your entire drone fleet.

The DLSE Commercial Support Suite is an open-source Python library and set of ready-to-use scripts that automate the most time-consuming parts of managing a large fleet of ESP32s. Instead of configuring, flashing, and licensing each drone one by one, you set up one reference device, export its configuration, and let the suite handle the rest.

githubView on GitHub


What It Can Do

Capability
How
Use When

Batch serial flash + configure + activate

batch_install_dlse_allinone.py

Initial setup of a new fleet — plug in ESP32s one by one

Batch OTA firmware update

batch_ota_update_allinone.py

Upgrading all drones in the field over Wi-Fi

Batch OTA license activation

batch_ota_license_activation.py

Licensing a fleet of ESP32s over Wi-Fi in one pass

Scan network for DLSE devices

Library function

Discovery, health checks

Upload / download licenses

Library function

Re-licensing, backup

Get activation key from device

Library function

Programmatic licensing workflows

Remote reset of ESP32

Library function

Automated test pipelines

Change settings over Wi-Fi

Library function

Dynamic reconfiguration without USB

Download flight logs via the ESP32 bridge

Library function

Post-show data collection


Prerequisites


Installation

Each script contains configuration variables near the top (such as MY_SECRET_TOKEN, ESP_SERIAL_PORT, or subnet addresses). Open the script you intend to use and update these before running.


Batch Serial Flash, Configure & Activate

Overview

batch_install_dlse_allinone.py is the main script for setting up a fresh fleet. You run it once, then plug in your ESP32 modules one by one via USB. For each device it automatically:

  1. Flashes the DLSE firmware over the serial connection

  2. Writes your exported configuration (SSID, IPs, GPIO pins, MAVLink settings, etc.)

  3. Assigns a unique hostname, AP SSID, and static IP based on a sequential index (e.g., drone 55, 56, 57…)

  4. Requests a license from the DroneBridge license server and activates the device

  5. Logs everything to a /logs folder

circle-info

Re-flashing an already-licensed device? The script detects that the ESP32 already has a valid license, pulls it from the device before flashing, and re-applies it after. You will not lose license credits by re-running the script on the same hardware.

Workflow

1

Configure one reference ESP32

Set up a single ESP32 exactly as you want all drones in your fleet to be configured.

  1. Flash DLSE using the online flasherarrow-up-right

  2. Connect to the ESP32's Wi-Fi AP (DroneBridge for ESP32, password dronebridge)

  3. Open the web interface at http://192.168.2.1 and configure all settings (UART pins, baud rate, Wi-Fi credentials, power management, etc.)

  4. Test the configuration with your show drone and flight controller

  5. Activate this reference device manually using your token from drone-bridge.comarrow-up-right and the online license generatorarrow-up-right

  6. Export the settings using the web interface — this produces a .csv file you will pass to the batch script

2

Prepare the suite

Download the latest DLSE release binaries from drone-bridge.com/dlsearrow-up-right and extract them into the DLSECommercialSupportSuite folder. The folder name (e.g., DroneBridge_ESP32DLSE_BETA3) is used as the --release-folder argument.

3

Run the batch script

Arguments:

Argument
Description

--token

Your secret token from the drone-bridge.com dashboard

--release-folder

Folder containing the DLSE firmware binaries

--settings-file

The .csv settings file exported from your reference ESP32

--start-index

Starting index for per-drone unique values (AP SSID suffix, hostname, static IP suffix)

The --start-index parameter allows automatic per-device differentiation. With --start-index 55, the first ESP32 you plug in will get a hostname of <your_hostname>55, an AP SSID of <your_ssid>55, and a static IP suffix of 55. The index increments automatically for each subsequent device.

4

Plug in ESP32s one by one

With the script running, simply connect your ESP32 modules to the computer via USB one at a time. The script detects each new device, flashes it, configures it, and activates it — then waits for the next one. The whole process per device takes under a minute.

All actions are logged to the /logs folder for your records.

circle-check

Batch OTA Firmware Update

Overview

batch_ota_update_allinone.py scans your Wi-Fi subnet, discovers all DLSE devices, and pushes a new firmware version to each of them over Wi-Fi. No USB cable or physical access needed. Existing settings and licenses are preserved across an OTA update.

circle-exclamation

Usage

Update all detected devices:

Update only devices running a specific version (useful when your fleet has mixed versions):

Arguments:

Argument
Description

--release-folder

Path to the folder with DLSE firmware binaries

--subnetmask

IP range to scan, e.g. 192.168.1.0/24

--target-version

(Optional) Only update ESP32s running this specific version. Devices on other versions are skipped.

What Happens

The script scans the subnet, lists all discovered DLSE devices with their current firmware versions, and asks for confirmation before proceeding. It then pushes the firmware binary matching each device's chip type (C3, C5, or C6) and reports success or failure per device.

chevron-rightExample console outputhashtag

Batch OTA License Activation

Overview

batch_ota_license_activation.py continuously scans the subnet and activates any unlicensed DLSE device it finds — over Wi-Fi, without needing a USB connection. Run it while your drones are powered on and connected to the show network, and it will work through the fleet automatically.

circle-exclamation

Usage

Arguments:

Argument
Description

--token

Your secret token from the drone-bridge.com dashboard

--subnetmask

IP range to scan

--esp32localbrcstport

Must match udp_local_port in each ESP32's configuration

--esp32remotebrcstport

Must match wifi_brcst_port in each ESP32's configuration

The script scans on a loop. As drones are powered on and appear on the network, they are discovered, their activation key is read, a license is requested from the DroneBridge license server, and the license is installed on the device. All licenses are also saved locally to /received_licenses as a backup.

chevron-rightExample console outputhashtag

Library Functions & Individual Examples

Beyond the batch scripts, the suite exposes a Python library (DroneBridgeCommercialSupportSuite.py) for building your own automation tools. Individual example scripts are provided for each function:

Script
What It Demonstrates

example_esp32_get_license.py

Request a license file using an activation key

example_params_update_flash.py

Update configuration parameters in the CSV and flash them

example_esp32_ota_update.py

OTA firmware update for all detected devices

example_esp32_download_log.py

Download flight controller logs via the ESP32 bridge

example_esp32_download_log_MAVSDK.py

Same, using MAVSDK


OpenAPI Definition

The suite also ships with an OpenAPI definition (api_definition/openapi_definition.yaml) describing the full DLSE REST API. Use it to generate client code in any language, explore the API in tools like Swagger UI, or build your own tooling on top of the DLSE configuration endpoint.

See the Developers — DLSE API Definition section for more.

Last updated