Hardware & Wiring

How to choose the right ESP32 hardware for your show fleet and how to wire it to your flight controller and power management board.

Choosing Your ESP32 Chip

The DLSE supports three ESP32 chip families. All three will work for drone light shows — the choice mainly comes down to your Wi-Fi frequency requirements and the size of your fleet.

circle-info

Regardless of which chip you choose, the ESP32 module must have at least 4 MB of flash memory. Almost all modules sold today meet this requirement, but double-check the product listing before ordering.

Chip
Wi-Fi Standard
Frequency Bands
Best For

ESP32-C5

Wi-Fi 6 (802.11ax)

2.4 GHz & 5 GHz

New designs — dual-band gives full frequency flexibility for current and future deployments

ESP32-C6

Wi-Fi 6 (802.11ax)

2.4 GHz only

Existing designs or where C5 modules are unavailable

ESP32-C3

Wi-Fi 5 (802.11n)

2.4 GHz only

Lowest cost, but 2.4 GHz only and older Wi-Fi standard. Not recommended for large fleets of 200+ drones

circle-check

Choosing a Physical Module

ESP32 chips come on many different ready-made modules. For drone use, you want something small, lightweight, and with a reliable power supply input. Below are recommended options, beware that only the XIAO ESP32 models are currently tested during development. Contact the manufacturer of the board before you order to check the compatibility of DLSE features with their hardware.

Module Options

  • Small footprint

  • ESP32-C5 chip: Wi-Fi 6, 2.4 GHz & 5GHz support

  • Onboard USB-C for flashing (connected to the USB-JTAG interface - to be confirmed)

  • U.FL connector for an external antenna (included) — for better signal quality & range

  • Follows the PX4 Connector Standard for safe and reliable connectors

  • 8 MB flash (future proof)

Contact User Propel Labs: 1470527829903933654arrow-up-right via Discord for more details. Manufacturers Websitearrow-up-right

Do you have hardware you want to offer for DLSE? Contact DroneBridge to get added to the list of recommended boards!

circle-exclamation

Wiring

This is a generic wiring guide. If you have a board from a third-party, follow their wiring instructions instead.

Overview

Two electrical connections are needed between the ESP32 and the rest of the drone:

  1. UART connection to the flight controller — carries MAVLink telemetry (mandatory)

  2. Power management connection — allows the ESP32 to power-cycle the flight controller (recommended, but optional for remote sleep/wakeup)

  3. LED Control - allows the ESP32 to control the LED of the Light Show Drone based on Skybrush commands. Use the ESP32 instead of the FC. (optional, check on what LED types are supported)

The ESP32 itself is powered from the drone's 5V supply rail (e.g., from the flight controller's 5V output or a BEC).

Voltage Levels

circle-exclamation

UART Wiring (Flight Controller ↔ ESP32)

The UART connection carries all MAVLink traffic between the flight controller and the DLSE. Four wires are needed for the mandatory connection, with two optional wires for hardware flow control.

Flight Controller Pin
ESP32 Pin
Notes

TELEM TX

ESP32 RX GPIO

Cross-connection: FC TX → ESP RX

TELEM RX

ESP32 TX GPIO

Cross-connection: FC RX → ESP TX

TELEM GND

ESP32 GND

Common ground — always required

TELEM 5V

ESP32 5V/VIN

Powers the ESP32

TELEM CTS (optional)

ESP32 RTS GPIO

Flow control — see note below

TELEM RTS (optional)

ESP32 CTS GPIO

Flow control — see note below

circle-info

Flow control (RTS/CTS) is optional. If your flight controller supports it and you are running high baud rates, enabling flow control reduces the chance of dropped bytes. If you do not wire RTS/CTS, set both gpio_rts and gpio_cts to 0 in the configuration to disable flow control. In general, it is recommended to have flow control. It helps speed up firmware updates of the flight controller.

Which GPIO Pins to Use

Refer to the tables below for the recommended GPIO numbers for each chip. These are GPIO numbers — not pin numbers printed on the physical board. Check the pinout diagram of your specific module to map GPIO numbers to physical pads.

Function
Recommended GPIO

TX (to FC RX)

GPIO 23

RX (from FC TX)

GPIO 24

RTS (optional)

GPIO 4 (untested)

CTS (optional)

GPIO 5 (untested)

Pins that cannot be used with DLSE on ESP32-C5:

triangle-exclamation
circle-exclamation

Power Management Wiring

The DLSE power management feature lets Skybrush Live power the flight controller remotely on or off — for example, to put drones to sleep between shows or for automated pre-show checks. The ESP32 drives a GPIO pin that triggers an external power control circuit on your power distribution board.

circle-info

Power management requires an external circuit on your power board that can switch the flight controller's power supply based on a signal from the ESP32. The ESP32 itself does not directly switch the power — it only sends a control signal.

The recommended approach is active-low logic (GPIO low = power on; GPIO high = power off). This is safer because a failing ESP32 will likely pull all its pins low, which means the drone stays powered — this reduces the risk that it will accidentally cut power in flight.

ESP32 Pin
Power Board Pin
Description

show_pm_gpio (configurable)

Power control input

ESP32 sends on/off signal

GND

GND

Common ground

Pulse vs. Static Signal

You can configure the ESP32 to send either a static high/low signal or a timed pulse (show_pm_pulse_l parameter) to trigger the power switch. A timed pulse is more robust — a faulty ESP32 is unlikely to generate a pulse of exactly the right duration, so a spurious power-off command is far less likely.

Power State Feedback (Optional)

If your power board can report back whether the flight controller is powered, connect that signal to the show_pm_qu_gpio pin. The ESP32 will use this feedback to confirm the power state rather than inferring it from MAVLink traffic. If not provided, the ESP32 will derive the flight controller's power state by looking at the MAVLink telemetry stream. Successful MAVLink packets received from the flight controller indicate a powered flight controller. Based on the flight controllers' derived powered state, the ESP32 will adjust its power control signal. It will only send a power-on or off command if it makes sense from a powered state perspective. This is one of many safety features implemented with DLSE.

Power Board Pin
ESP32 GPIO
Description

FC power-state output (high = FC powered)

show_pm_qu_gpio

ESP32 reads FC power state

If you do not have this feedback signal, set show_pm_qu_gpio to 0. The ESP32 will then use the presence of MAVLink heartbeats to infer the power state.

Safety Requirement

The DLSE version is very much focused on safety. Follow the recommendations when designing or choosing a power management circuit.

triangle-exclamation

Antenna Placement

For best performance:

  • Mount the ESP32 and its antenna away from carbon fibre structures, as carbon fibre is conductive and absorbs RF energy.

  • The antenna should have a clear line of sight toward the ground station direction.

  • If using a U.FL-connected external antenna, secure the U.FL connector with a small drop of cyanoacrylate glue (applied after the antenna is connected) to prevent it from loosening due to vibration.

  • Avoid routing the antenna cable near ESCs or power wires.


Next Step

Once your hardware is selected and wired, proceed to install the DLSE firmware:

Install DLSE Firmware →

Last updated