ESP32 MICROPHONE FIRMWARE
Install BirdNETMic
ESP32 microphone firmware for BirdNET-Go and BirdNET-Pi. Install it from your browser or update an existing device over Wi-Fi.
Chrome or Edge on desktop · USB data connection
Updating? Choose the option that keeps existing data.
AtomS3U and Sense use the S3 firmware. After Wi-Fi setup, open Audio → S3 board, select your board and click Apply board. AtomS3U has a built-in microphone; Sense support has not been tested on physical hardware.

Connect
Connect via USB. AtomS3U plugs directly into USB-A. For XIAO, use a USB-C data cable.
Flash
Select the USB serial device. The browser picks the firmware for your ESP32 chip.
Go wireless
Connect to ESP32-RTSP-Mic-AP and enter your Wi-Fi details.
First boot & Wi-Fi setup
The device starts an open access point named ESP32-RTSP-Mic-AP. Connect to it and enter your Wi-Fi SSID and password in the captive portal. The board saves your settings and rejoins your network.
If the portal does not open, visit http://192.168.4.1. Then reconnect to your normal network. Find the board’s IP in your router, or use its unique mDNS name, such as esp32mic-a1b2c3.local, shown in its Web UI.
Connect to BirdNET
After Wi-Fi setup, add the device’s RTSP stream to BirdNET-Go or BirdNET-Pi.
rtsp://<device-ip>:8554/audio1rtsp://<device-ip>:8554/audio2
These paths also work with the device’s unique mDNS hostname when mDNS is available.
ALREADY CONNECTED?
Update over Wi-Fi
Open your device’s update page for an automatic update or a manual firmware upload.
Download statistics
Firmware downloads across this website, device OTA updates, and GitHub.
Fetching download totals…
How are downloads counted?
One complete firmware file transfer counts as one download. USB flashing counts only the app image; bootloaders and partition files are excluded. Device OTA and direct downloads are counted separately. Retries and repeat downloads can count again; these numbers do not measure unique devices or successful installations.
Website history is limited to retained server logs. GitHub totals cover published firmware assets.
Website checks by our release scripts, HEAD requests, failed and incomplete transfers are excluded. GitHub provides raw asset download counts, including historical tests and automation that cannot be separated. A release’s total adds its four boards and all download types. Historical transfers whose version cannot be verified are listed as “Unassigned”.