BATEAR Web Flasher
ESP32-S3 • Acoustic Drone Detection

Flash firmware in 60 seconds

No toolchain. No drivers. Connect your Heltec WiFi LoRa 32 V3 via USB and flash directly from the browser.

Requires Chrome 89+ or Edge 89+ on desktop — Web Serial API is not supported in Firefox or Safari.
Your browser does not support Web Serial. Please use Chrome or Edge on desktop.
loading...
// Network Key
Same key must be used on both Detector and Gateway.
Unique per detector — the gateway shows which device triggered an alarm.
No key entered — firmware will use the default shared key.
// Gateway — MQTT / Home Assistant
Use mqtt:// or mqtts:// — e.g. mqtt://homeassistant.local:1883
Short identifier for MQTT topics — e.g. batear/nodes/gw01/status
Detector

Acoustic Detector

Captures audio via ICS-43434 MEMS microphone, runs FFT-based harmonic analysis, and transmits drone alerts over encrypted LoRa.

I2S Mic + DSP LoRa TX (SX1262) AES-128-GCM
Gateway

Alert Gateway

Receives encrypted LoRa alerts from detectors, displays status on OLED, and forwards events to Home Assistant via MQTT.

LoRa RX (SX1262) SSD1306 OLED MQTT + HA Discovery
// Connection Guide
01

Connect via USB-C

Plug your Heltec WiFi LoRa 32 V3 into your computer using a USB-C data cable (not charge-only).

02

Select Firmware

Choose Detector for mic nodes or Gateway for the OLED alert receiver. Click the Install button.

03

Pick Serial Port

A dialog will appear — select the serial port for your ESP32-S3 (usually CP2102 or USB JTAG).

04

Wait & Done

Flashing takes about 30–60 seconds. The device reboots automatically when complete.

// Sample Detection

Harmonic frequency analysis — real drone spectrograms available at
batear-io/batear-datasets

// Troubleshooting
No serial port appears in the dialog
Ensure you are using a data-capable USB-C cable (charge-only cables lack data lines). On Linux, your user may need to be in the dialout group: sudo usermod -aG dialout $USER, then log out and back in.
Flashing fails or times out
Hold the BOOT button on the board, press RST, then release BOOT to enter download mode. Try flashing again. If the issue persists, lower your baud rate or try a different USB port.
How do I configure the network key and device ID?
Enter a 32-character hex key in the Network Key field above before flashing. The same key must be used on both the Detector and Gateway. Click Generate to create a random key, then flash both devices. For detectors, assign a unique Device ID (0–255) so the gateway can identify which detector triggered an alarm. Both values are stored in NVS (non-volatile storage) at offset 0x9000. To change LoRa frequency or sync word, build from source using idf.py menuconfig.
How do I connect the gateway to Home Assistant?
Enable the Gateway — MQTT / Home Assistant section above and fill in your Wi-Fi credentials and MQTT broker URL (e.g. mqtt://192.168.1.100:1883). These are written to NVS and the gateway will connect to Wi-Fi & MQTT on boot. Home Assistant discovers the gateway automatically via MQTT Discovery — no manual YAML needed. The gateway publishes to batear/nodes/<id>/status.
Which boards are supported?
Currently only the Heltec WiFi LoRa 32 V3 (ESP32-S3 + SX1262) is supported. The firmware is compiled for this specific board's GPIO mapping and peripherals.