Browser-based firmware installer for the dino tester peripheral used by the Web Bluetooth MTU samplers.
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.
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
writes.htmlmtu command returning peripheral-side peerMTU for mtu.htmllets go / get <seq> progressive JPEG streaming for dino.htmlCompiled 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
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.
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.
/dev/ttyACM* or /dev/ttyUSB* port.ls -l /dev/ttyACM* /dev/ttyUSB*. For a quick one-time test: sudo chmod a+rw /dev/ttyACM0. Permanent fix: sudo usermod -a -G dialout $USER, then log out and back in.sudo systemctl stop ModemManager.dino tester.