All guides
ESP32

Flash an ESP32

Put the MikRouter agent firmware onto a supported ESP32 board over USB — with the desktop flasher or the guided macOS Terminal script.

Before You Start

  • You have read Which ESP32 works with MikRouter? — it lists the four supported chip families and the look-alike boards that can never work.
  • You have a compatible ESP32 device in hand — one of the four families below, with at least 4 MB of flash — plus a USB data cable to connect it to your computer.

Supported ESP32 variants

MikRouter builds agent firmware for four Espressif chip families, and each one gets its own image — they are not interchangeable. You do not have to work out which: both the desktop flasher and the macOS Terminal script detect the chip and download the matching image for you. The code beside each name is that family’s firmware name, so you can confirm the flasher picked the right one.

Classic ESP32

esp32

The original dual-core board — cheapest and most widely sold, and it carries the same connections as the rest.

Connections: 6 at a time

Sold as: DevKit V1 / DevKitC, NodeMCU-32S, MH-ET Live MiniKit, ESP32-CAM, Uno R32, WROOM-32

ESP32-S3

esp32s3

The best all-round choice: dual-core, most memory, optional PSRAM.

Connections: 6 at a time

Sold as: S3-DevKitC-1, S3-DevKitM-1, S3 SuperMini, S3-Zero, WROOM-1

ESP32-C6

esp32c6

The newest supported part (Wi-Fi 6, still on 2.4 GHz).

Connections: 6 at a time

Sold as: C6-DevKitC-1, C6-DevKitM-1, C6 SuperMini, C6-Zero, WROOM-1

ESP32-C3

esp32c3

The smallest supported target — least memory, but the same connections as the rest.

Connections: 6 at a time

Sold as: C3-DevKitM-1, C3 SuperMini, C3-Zero, WROOM-02

Connections is how many pieces of a page the board can carry at once — a browser opens one per file. All four carry the same six, and memory is not what sets it: every connection shares the one small radio and the one encrypted link the board holds open to your agent server, so they divide whatever speed that link has between them. Six is deliberately the same on every family, because none of them is faster than the others. Extras are not lost — they wait their turn. So the count is not a reason to pick one ESP32 over another; if you expect several pages open at once, a Linux, Windows, or Mac agent carries far more.

How fast that link runs is not set by which ESP32 you buy — all four families send at the same rate. What changes it is how far away your agent server is: the board can only keep a small amount of data in flight at a time, so the longer the round trip, the slower every connection gets. On one board tested against an agent server on the other side of the world, a heavy device page was cut off part-way — which can happen on any of the four. The same board and the same page, through an agent server in its own region, loaded many times faster and in full. So picking the agent server closest to the site is what helps. If you move an agent that has already been running, restart the board afterwards before judging it — it may still be holding the old, slower connection until it reconnects. A Linux, Windows, or Mac agent does not have this limit at all.

Whichever you pick, the board needs 4 MB of flash or more (the firmware keeps two update slots so a bad update can roll itself back) and joins 2.4 GHz Wi-Fi only. An ESP8266 is too small to run the agent, and an ESP32-H2 has no Wi-Fi radio at all — neither will ever have firmware. A single-core ESP32-SOLO-1 is not supported either.

Which ESP32 works with MikRouter? →
1

Download the desktop flasher

Grab the build for your operating system and unpack it. There is nothing else to install — no Python and no extra tools — and the one macOS download runs on both Apple Silicon and Intel Macs. The firmware itself is downloaded and verified by the flasher when you press the button.

First launch is blocked — expected, once per computer

The flasher isn't code-signed yet, so:

  • Windows — on the blue warning, click More info Run anyway.
  • macOS — click Done (not Move to Trash), then System Settings → Privacy & Security → scroll down → Open Anyway.
2

Connect the board over USB

Use a data USB cable — some are charge-only. The board shows up as a COM port on Windows, /dev/cu.usbserial-* on macOS.

No port listed? Install the USB-to-serial driver

Find the small chip next to the USB connector (or check the seller's listing) and install its driver:

Then re-plug the board (Windows may need a reboot) and re-open the flasher.

Many ESP32-S3 / C6 / C3 boards use native USB and need no driver — try another cable or port, and use the connector labelled USB, not UART.

3

Flash the firmware

Pick your board's serial port — the flasher detects the chip and preselects the newest firmware. Click ↓ Download and flash and keep the board plugged in until the log reports success.
MikRouter Firmware Flasher v1.0.0
1. DEVICE↻ Refresh ports

Connect your board

Use a USB data cable, then choose the detected port and flash speed.

Serial port

cu.usbmodem1101 - USB JTAG/serial debug unit

Speed

115200

115200 is recommended for the most reliable connection.

✓  ESP32-S3 detected: ESP32-S3

2. FIRMWARE↻ Refresh releases

Choose a release

Published firmware is downloaded and verified immediately before flashing.

Published release

v1.0.0
3. REVIEW

Review installation

Firmwarev1.0.0
Detected chipESP32-S3

Device-reported hardware and stream capacity.

• Reports its chip model to the dashboard
• Board-authoritative connection limit

1.16 MiB  •  Published 2026-07-27  •  SHA-256 4b9c1de07a52…

Factory reset device settings

Off by default. Enabling this permanently removes Wi-Fi, token, and portal settings.

Ready — 3 published releases found

↓  Download and flash

ACTIVITY LOG

ESP32 installer files verified.

ESP32-S3 installer files verified.

ESP32-C6 installer files verified.

Found ESP32-S3 on /dev/cu.usbmodem1101: ESP32-S3

Looking up ESP32-S3 firmware versions.

Found 3 published ESP32-S3 firmware versions.

A flashing status LED means the ESP32 agent needs configuration

The LED starts blinking after a successful flash — that's the board asking for its Wi-Fi and MikRouter settings.

Next step

The board is flashed but not yet connected. Continue with Connect ESP32 agent to join Wi-Fi and enter your tunnel host and token.