Hardware & Wiring
List of supported Hardware and the wiring instructions
Last updated
List of supported Hardware and the wiring instructions
Last updated
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.
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.
Official board for DroneBridge for ESP32 (DE) Official board for DroneBridgefor ESP32 (International) The second 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. Please consider supporting the project and doing yourself a favour by buying ready-to-use hardware!
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
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
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:
Seeed Studio XIAO ESP32C3
You can connect your flight controller using any available pins except for the TX & RX labelled pins and GPIO9 (D6, D7, D8 & D9). The image below shows an example of connecting to the PX4 standard telemetry port.
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
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!
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:
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:
MissionPlanner fully supports USBSerial mode since it was fixed. The fix will be part of the upcoming releases of MissionPlanner. Until then you can download & use the nightly build for that fix here. 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.
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.
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:
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.