Hardware & Wiring

List of supported Hardware and the wiring instructions

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

Officially supported boards

The following boards are officially supported and only these boards will receive support from the developer team. These boards are very low in price, have everything you need and are also very small. Perfect for use on any drone.

Other Boards

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

Other non-tested boards that will likely work:

  • AZDelivery DevKit C

  • ESP32-C3-DevKitM-1

  • TinyPICO - ESP32 Development Board - V2

  • Seeed Studio XIAO ESP32C3

Other ESP boards are very likely to work as well. You don't need any additional PSRAM. You will need a USB to serial adapter to flash the firmware if your ESP32 board does not come with one. Follow the instructions of the board manufacturer when it comes to wiring the power supply lines. 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 (experimental)

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

Officially Supported Boards

Official DroneBridge for ESP32 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:

XIAO ESP32C3

You can use any of the available pins for connecting your flight controller except for the TX & RX labelled pins and GPIO9 (D6, D7, D8 & D9). The below image shows an example on how to connect to the pixhawk telemetry port.

DroneBridge for ESP32C3 wiring diagram for PX4
XIAO ESP32C3 to Pixhawk wiring
  • Connect the Pixhawk telemetry TX pin to a free ESP32-C3 pin (except for the pins D6, D7, D8 & D9) - note the GPIO number, not the D#!

  • Connect the Pixhawk telemetry RX pin to a free ESP32-C3 pin (except for the pins D6, D7, D8 & D9) - note the GPIO number, not the D#!

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

  • Connect the Pixhawk telemetry 5V out pin to the ESP32-C3 5V pin

Generic ESP32 Boards

You can use any of the available pins for connecting your flight controller/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 flash 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 also 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)

When the ESP32 is connected to a GCS you have the following wiring options:

Wiring concept for the official DroneBridge for ESP32 hardware
Wiring concept for generic ESP32 hardware

Using an external Serial to USB adapter

Connect the FTDI adapter to the GPIOs of the ESP32 and configure GPIO pins accordingly via the web interface. Then you can connect the ESP32 via the FTDI to the computer and open the GCS. Within the GCS connect to the FTDI-Serial adapter to receive the telemetry stream.

For reference see:

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.

Using the onboard USB-C connector

Officially supported boards and boards with an USB connector connected to the USB-JTAG interface of the ESP32 only.

Flash the special version 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!

Known Issues: When the connection is closed by the GCS then the ground-ESP32 has to be rebooted so the GCS can open another connection to the ESP32. The reason for that is that the DTS & RTS lane of the USB is set to low when disconnection 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 implemented.

UART Flow Control

UART Hardware flow control wiring

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.

Last updated