Flash ESP32-C3 BLE tester

Browser-based firmware installer for the dino tester peripheral used by the Web Bluetooth MTU samplers.

Web flasher

ESP32-C3 All BLE Tester built 2026-06-24

Connect the ESP32-C3 over USB, hold BOOT if your board needs manual download mode, then click Install.

Requires Chrome or Edge on desktop with Web Serial, served over HTTPS or localhost.

What this flashes

The firmware advertises as dino tester and exposes the sampler service:

Service:        0000ffe0-0000-1000-8000-00805f9b34fb
Characteristic: 0000ffe1-0000-1000-8000-00805f9b34fb
Device name:    dino tester

Build details

Compiled from ESP32C3_All_BLE_Tester using Arduino CLI, Espressif Arduino core esp32:esp32@3.3.10, and NimBLE-Arduino@2.5.0.

FQBN: esp32:esp32:esp32c3:CDCOnBoot=cdc,FlashSize=4M,CPUFreq=160,UploadSpeed=921600
Flash mode: dio
Flash freq: 80m
Flash size: 4MB

merged sha256
0b5a7080dfb6566e4093d3c1bd00f277f98eeb230ce8f86c23a35f7ceb59fbb0

Manual fallback

If Web Serial keeps failing at open(), flash the same binaries with esptool.py:

python3 -m pip install --user esptool
python3 -m esptool --chip esp32c3 --port /dev/ttyACM0 --baud 460800 write_flash \
  0x0 firmware/esp32c3-all-ble-tester-bootloader.bin \
  0x8000 firmware/esp32c3-all-ble-tester-partitions.bin \
  0xe000 firmware/esp32c3-all-ble-tester-boot-app0.bin \
  0x10000 firmware/esp32c3-all-ble-tester-app.bin

Use the port shown by ls /dev/ttyACM* /dev/ttyUSB*. Hold BOOT and tap RESET before running the command if the board does not enter download mode automatically.

Troubleshooting

"Failed to open serial port"

Seeing USB JTAG/serial debug unit is expected for ESP32-C3. If it pairs but then fails to open, the operating system is refusing Chrome's serial open.

Other issues

Back to sampler index Open MTU conformance test Open write-size probe Open streamer