If your Dragon Link transmitter was made JULY 2019 or later, and has the BLACK PCB part as shown in the picture to the left, you transmitter has the ESP32 WiFi Module already built in. This gives you amazing capabilities to transmit telemetry information to any computer, tablet, or phone and display it on programs such as Misson Planner, QGroundControl, and more.
The latest version of the DragonLink TX firmware includes a menu-option (from version 3.3 sub
version 10), that will allow the USB-connection to be used for updating firmware on ESP32.
To update firmware
– Hold down the menu-button while powering the module
– Enter menu-option 6
– Plug in the USB-connection
The ESP32 module will now be in bootloader-mode, allowing the firmware to be updated through
Arduino or the ESP32 flash-tool. Note, that the baudrate for upload should be 115200. When in ESP32
update mode, the menu button on the DragonLink TX will reset the ESP32. It should however be
noted, that the module will always start up in bootloader-mode, until the transmitter has been powercycled.
The basic connections on the ESP32 is as seen below:
Data for serial passthrough on the radio-modem:
UART Baudrate: 115200
ESP32 TX-pin: GPIO17
ESP32 RX-pin: GPIO16
The 2 leds underneath the ESP32 module:
BT led (blue led): GPIO18
Wi-Fi LED (green led): GPIO19
Also, the below pins are connected to the MCU, but currenlty only used for firmware-update:
Note; on latest TX firmware, the ESP32 GPIO 1 (TXD0) can be passed on to the UEXP port, to allow
the ESP32 to be used for MavLink decoding and FrSky output or whatever signal might be needed as
output to the UEXP-port
If using Arduino, below settings has been tested to be working
// Arduino settings:
// Board "ESP32 dev module"
// Upload speed: 115200
// CPU speed: 240MHz (WiFi/BT)
// Flash freq: 80MHz
// Flash mode: QIO
// Flash size: 4 MB
// Partition Scheme: Minimal SPIFFS with (Large Apps with OTA)
// Core debug level: None
// PSRAM: Disabled
It's also possible to program the ESP32 directly through the test-pads with the pin-out as shown below.
It should however be noted that the pins are controlled directly by the MCU and it's necessary to put
the transmitter in “firmware update mode” to tri-state the pins. Also, the reset-pin is not actively pulled
high on all revisions, so it might be needed with something like 1K pull-up (1K resistor between the
reset-pin and 3V3). Using the USBP-port for programming is highly recommended, as a less invasive
and easier solution. However, the pins are available.