DroneBridge Docs
  • Introduction
  • Comparison
  • DroneBridge for Raspberry Pi
    • Release Notes
    • Getting started
    • Supported hardware
    • Standard Modules
    • Milestones
    • mwptools
    • Adjusting TX Power & EIRP
  • DroneBridge for ESP32
    • Overview
    • Hardware & Wiring
    • Installation
    • Configuration
    • Safety & Integration
    • Hardware Setup Examples
    • Troubleshooting/Help
    • Logging & Debugging
    • Developer & API Documentation
  • DroneBridge for Android
    • DroneBridge for Android (deprecated)
  • DroneBridge Desktop
    • Enabling monitor mode
    • Video stream playback
  • Developer Guide DroneBridge for Raspberry Pi
    • Downloading & Compiling
    • System Architecture
    • Startup & Logs
    • Raw protocol
    • Communication protocol
    • Status messages
    • RC message/packet
    • USB message
    • Plugins
    • Image Build
    • System Integration Test Specification
    • DroneBridge lib example usage
    • Notes About Injection
Powered by GitBook
On this page
  • Officially Supported Boards
  • ESP32 C3 - external antenna
  • ESP32 C6 - onboard antenna
  • Do It Yourself Build
  • Other Boards
  • Wiring
  • Wiring to the Flight Controller
  • Wiring for usage with a Ground Control Station (GCS)
  • UART Flow Control
  1. DroneBridge for ESP32

Hardware & Wiring

List of supported Hardware and the wiring instructions

PreviousOverviewNextInstallation

Last updated 8 days ago

The voltage level of the ESP32 UART is 3.3V! Make sure your flight controller also uses 3.3V UART logic level. You can still power the ESP32 via the 5V line. Pixhawk flight controllers do have a 3.3V UART by default and a 5V power supply line. Most ArduPilot flight controllers do as well. These flight controllers will not cause any issues.

Officially Supported Boards

The following boards are officially supported; only these boards will receive support from the main developer. These boards are very low in price, have everything you need and are very small. They are perfect for use on any drone. They support all possible modes and setup out of the box and are your fastest way to a working setup. Please consider supporting the project and doing yourself a favour by buying ready-to-use hardware!

Official Board Option
Support for External Antenna
Ships with External Antenna
Ideal for

✅

✅

range, signal quality

✅

no (onboard antenna)

compact builds, Wi-Fi autopilot configuration interface

✅

depends on the choice of ESP32 - see the two options above

people living in places where there is no shipping option available.

ESP32 C3 - external antenna

Germany: EU/International:

ESP32 C6 - onboard antenna

Germany: EU/International: The third batch of pre-installed and ready-for-use hardware boards is shipping from Germany to the EU (EEA) and other selected countries (inkl. USA, CAN, JPN). Contact the seller for more non-EU shipping destinations or express shipping. For non-EEA shipments, the receiver must handle all customs-related activity (incl. tax, fees etc.). The package will be declared as best as possible.

Do It Yourself Build

SMD Version:

This design is overall easier and more affordable to build compared to the SMD version. The downside is that it is a little bigger and does not feature the official Pixhawk standard connector making it less reliable overall. The design features big solder pads for connections to the flight controller and simple through-hole mounts for the ESP32 chip. The ideal solution for hobbyists who want a fully supported board and ordering the official ready-made board is no option.

Other Boards

These boards might also work but are not tested and will not receive support from the main project.

Other boards that will likely work:

  • Seeed Studio XIAO ESP32C3

  • Seeed Studio XIAO ESP32C6

Other ESP boards are very likely to work as well. You don't need any additional PSRAM, just make sure they come with flash memory installed (internal or external - very few boards come with no flash installed, so this is no issue most of the time). If your ESP32 board does not come with a USB-to-Serial adapter or the USB is not connected to the internal JTAG-USB Interface (the case with some ESP32 C3 & ESP32 C6 boards), you will need one to flash the firmware. When wiring the power supply lines, follow the instructions of the board manufacturer. Some modules do not like an external 5V power input connected in addition to a USB at the same time.

The following ESP32 chips are supported:

  • ESP32

  • ESP32S2

  • ESP32S3

  • ESP32C3

  • ESP32C6

Almost any board featuring one of these chips should work. See the wiring and flashing instructions on how to use the unofficially supported options

Wiring

Wiring to the Flight Controller

GND, 5V, TX & RX connections are mandatory! RTS & CTS connections are optional. Do not configure RTS & CTS pins in the web interface if you did not connect them to the flight controller. In that case, leave them both to set to 0 to disable UART flow control.

Official DroneBridge for ESP32C3/C6 Board

Easy! Just connect the board to your flight controller using the provided cable. In case you are not using the standard Pixhawk telemetry connector see the reference for the output here:

Seeed Studio XIAO ESP32C3 & ESP32C6

You can connect your flight controller using any available pins except for the TX & RX labelled pins and the ones marked in the picture below. It is highly recommended to use GPIO4, GPIO5, GPIO6 & GPIO7 for the ESP32-C3 and GPIO2, GPIO21, GPIO22 & GPIO23 for the ESP32-C6. The image below shows an example of connecting to the PX4 standard telemetry port.

  • Connect the Pixhawk telemetry TX pin to a free ESP32 GPIO (see exceptions above) - note the GPIO number, not the D#! This pin will be configured as TX in the web interface.

  • Connect the Pixhawk telemetry RX pin to a free ESP32 GPIO (see exceptions above) - note the GPIO number, not the D#! This pin will be configured as RX in the web interface.

  • Connect the Pixhawk telemetry GND pin to the ESP32 GND pin

  • Connect the Pixhawk telemetry 5V pin to the ESP32 5V pin

  • Optional: Connect the Pixhawk telemetry CTS pin to a free ESP32 pin (see exceptions above). This pin will be configured as RTS in the web interface.

  • Optional: Connect the Pixhawk telemetry RTS pin to a free ESP32 pin (see exceptions above). This pin will be configured as CTS in the web interface.

Generic ESP32 Boards

You can use any of the available pins to connect your flight controller to the ESP32`s UART except for the TX & RX labelled pins of your dev. board. The reason for that is that most boards are using the TX & RX labelled pins for the default flashing/debugging UART of the ESP32. These pins will output debugging information and allow to install the firmware. The DroneBridge for ESP32 firmware is not configured to re-assign that UART. Your device will crash if you choose them anyway.

Do not use so-called "strapping pins", these pins are connected to the boot button and using them for I/O may result in unexpected crashes. For the ESP32C3 the strapping pins are GPIO2, GPIO8 and GPIO9. For many other ESP32 chips, GPIO0 is a strapping pin. Check the datasheet of your ESP32 chip to get the strapping pins.

Beware of the GPIO numbers, board manufacturers often re-number their pins and the numbers do not match with the GPIO numbers!

Wiring for usage with a Ground Control Station (GCS)

The ESP-NOW mode & the WiFi LR Mode require an ESP32 as a receiver on the ground (the other modes follow the plain wifi standard so you can use any WiFi adapter to connect). To use the ESP32 on the GND as a receiver you have the following wiring options:

Official Hardware Boards can use an external USB-to-Serial adapter or the onboard USB-C connector. To use the official board's onboard USB-C connector, you must flash the firmware flavour "USBSerial" to the GND-ESP32.

Non-official Hardware must use an external USB-to-Serial adapter connected to the ESP32s pins or they flash the noUARTConsole firmware to use the onboard USB-to-Serial chip:

Using the onboard USB-C connector (USB-JTAG interface)

This works only with officially supported boards and boards with a USB connector connected to the ESP32's USB-JTAG interface.

Flash the special flavour of DroneBridge for ESP32 with the suffix USBSerial. This will output all data received via the radio link to the USB port (USB-JTAG interface). Not all ESP32 modules and boards are compatible. Boards with two USB ports will work as well as the XIAO ESP32 board series. There is no need for a Serial-to-USB/FTDI adapter in this case!

Ground Control Station Support:

QGroundControl partially supports the USBSerial firmware flavour. Once QGroundControl disconnected or was closed you have to press the reset button of the GND ESP32 to reboot it. Otherwise, no new connection can be established to QGC. The reason for that is that the DTS & RTS lane of the USB is set to low when the disconnect happens. This will set the ESP32 into download mode preventing a proper restart of the firmware. This could be fixed by the GCS however, it is not fixed yet.

Using an external Serial to USB adapter

Connect the USB-to-Serial adapter to the ESP32`s GPIOs and configure the GPIO pins via the web interface. Now connect the ESP32 via the USB-to-Serial adapter to the computer and open the GCS. Within the GCS connect to the USB-to-Serial adapter to receive the telemetry stream. This mode is supported by MissionPlanner & QGC. If you wire the RTS & CTS pins (not recommended for GND ESP32) of the Serial-to-USB adapter as well you might need to run into issues as described in the section for "onboard USB connectors".

For reference see:

UART Flow Control

To enable flow control you must wire two additional lines RTS and CTS. They cross over just like TX & RX. Any pin of the ESP32 (except for the TX & RX marked pins) can be used for RTS and CTS. Just choose one and make sure your board manufacturer did not connect it to the internal flash or USB port. For the XIAO ESP32C3 board, this means: Do not choose D6 or D7.

Official HW v1.x ESP32C3

Official HW v1.x ESP32C6

DIY Hardware Builds

Easy-Solder DIY Version. No need to deal with SMD parts.

Pinout of the Official DroneBridge for ESP32 Hardware board featuring the ESP32C3

MissionPlanner fully supports USBSerial mode . The fix will be part of the upcoming releases of MissionPlanner. For it to work you must select "Disable RTS reset ..." within MissionPlanner's settings. In case you already tried connecting (without having this setting changed) you need to unplug & replug the GND-ESP32 running USBSerial.

UART Hardware flow control wiring
Order the [Easy Solder] PCB yourself using the KiCAD PCB Project and Production files (e.g. via JLCPCB) with private and commercial options!
ESP32-C3-DevKitM-1
ESP32-S3-DevKitC-1
NodeMCU ESP32S
since it was fixed
Until then you can download & use the nightly build for that fix here.
Order Here
Order Here
Get files here
Official board for DroneBridge for ESP32 with external antenna
Official board for DroneBridge for ESP32 with external antenna
Official board for DroneBridge for ESP32 with onboard antenna
Official board for DroneBridge for ESP32 with onboard antenna
Order the PCB yourself using the KiCAD PCB Project & Production files with private and commercial options!
DroneBridge for ESP32 official board pinout
Official Hardware for DroneBridge for ESP32 featuring the ESP32C3
Official Hardware for DroneBridge for ESP32 featuring the ESP32C6 with an onboard antenna and the connector for an optional external antenna
Official board dimensions
Backside of EasySolder PCB when ordered from PCB manufacturer.
Top of EasySolder PCB when ordered from PCB manufacturer.
EasySolder PCB wired up with optional RTS/CTS connections for UART flow control.
EasySolder PCB wired up with optional RTS/CTS connections for UART flow control.
EasySolder version with an ESP32C6 attached using simple through holes.
XIAO ESP32C3 to Pixhawk standard connector wiring
XIAO ESP32C6 to Pixhawk standard connector wiring
Wiring concept for the official DroneBridge for ESP32 hardware
Wiring concept for generic ESP32 hardware
DroneBridge for ESP32 with an external FTDI/USB-to-Serial adapter wired to the TELEM1 port for useage as a receiver on the Ground Control Station (GCS). An external RP-SAM antenna gives more freedom regarding reception. Case is 3D printed using FFF.
DroneBridge for ESP32C3 wiring diagram for PX4