1What to flash
2Connect and flash
Plug the board in over USB, choose what to flash, then click Connect and pick the serial port.
If the chip isn't detected, hold BOOT while connecting.
Flashed. Now give the board a job.
Gateway flashed. Now claim it.
The same browser tab can turn this ESP32 into a Synacl gateway: Modbus and RS485 meters, GPIO, I²C and 1-Wire sensors straight to live dashboards and alerts, with over-the-air updates that keep your settings, remote configuration, and live logs from anywhere.
It's running the Synacl gateway firmware and waiting for Wi-Fi and an account. Keep it plugged in: Claim this gateway opens the app's Add gateway with the flash step already done, where you register it and send it Wi-Fi over this same USB cable. New here? You'll create a free account on the way.
Already have an account? Sign in and claim it
Chrome will ask you to pick the serial port again on app.synacl.com: port permissions belong to each site, so the one you gave this page doesn't carry over.
- OTA updates with settings kept. One click updates a gateway over the air; Wi-Fi and MQTT stay put.
- Remote config and live logs. Change sensors, intervals and pins from your desk, watch the boot log from your phone.
- Program it in plain English. Connect an AI assistant over MCP, describe the automation, and it authors the macro that runs on this board. See it done →
- 21 protocols to dashboards. Modbus RTU/TCP, MQTT, I²C, SPI, 1-Wire, UART, GPIO, CAN, M-Bus, SNMP and more.
- Free for five devices. No card, no sales call. Rules, alerts and 60 days of history included.
How it works, and what to do when it doesn't
Everything below is the same advice we give people flashing Synacl gateways, because the mechanism is identical: a browser, a USB cable and Espressif's own flashing code.
Where do my firmware files go?
Nowhere. The page reads the .bin from your disk and writes it to the chip over Web Serial using Espressif's esptool-js, entirely inside your browser. There is no upload and no server in the loop. The only download is the optional Synacl gateway firmware, which comes from api.synacl.com. The page also sends an anonymous ping (a GET to /tools/_/…, no cookies, no identifiers) once each when a chip is detected, when a flash finishes or fails, and when you click through to the app, so we know the flasher is used. Your firmware never leaves your machine, and your board's details stay in this tab unless you click Claim this gateway, which hands the board's MAC address to the app so Add gateway can fill in its chip ID.
Which boards does the ESP32 web flasher support?
The ESP32, ESP32-S2, S3, C2, C3 and C6, plus the ESP8266, are detected automatically when you connect, and the chip's name, MAC address and flash size are shown before anything is written. The flashing library, Espressif's esptool-js 0.7.0, also recognises the newest chips, the ESP32-C5, C61, H2 and P4, but we haven't tested those on hardware yet. If Connect reports an unknown chip, or a flash on one of them fails, use Espressif's esptool instead.
Which flash offset should I use?
- Merged / factory image (Arduino's
.merged.bin,esptool merge_binoutput):0x0. - Application only (PlatformIO
firmware.bin, Arduino.ino.bin):0x10000. This works when the board already has a bootloader and partition table, which any board that has run once does. - Full set: bootloader at
0x1000on the classic ESP32 and the ESP32-S2,0x0on S3, C3, C6, C61, C2 and H2,0x2000on the C5 and P4 (pick Custom); partition table at0x8000;boot_app0at0xE000; the app at0x10000.
The browser flashing guide walks through offsets by chip, drivers, the BOOT button and what each error means.
Chrome says “No compatible devices found”, or my port is not listed. What now?
Chrome's port picker lists every serial port your computer can see, so this message means the board is not showing up as one. Use a data cable rather than a charge-only one (the most common cause), plug straight into the computer instead of a hub, and install the USB-UART driver for your board's bridge chip (Silicon Labs CP210x or WCH CH340 cover almost every dev board). Boards with native USB (S2, S3, C3, C6) show up without a driver but may need the BOOT button held while you plug them in. On Linux, add yourself to the dialout group. If the port is listed but will not open, close anything else holding it, such as the Arduino Serial Monitor or a PlatformIO monitor: only one program can open a serial port at a time.
It says failed to connect or timed out.
Hold the BOOT button on the board while you click Connect, and release it once the chip is detected. Some boards also need a tap of EN or RST while BOOT is held. If the flash itself fails partway through, lower the baud rate to 115 200 and try again; long or thin USB cables and some CH340 clones don't cope with 921 600.
Does it work in Firefox or Safari?
No. Web Serial is only available in Chromium browsers on desktop: Chrome, Edge, Opera and similar. Mobile browsers don't expose it. There is nothing to install in those browsers; the API is simply built in.
Can I flash the Synacl gateway firmware without an account?
Yes. The board does nothing until it is provisioned with Wi-Fi and account credentials, which you do afterwards in the app. When the flash finishes, Claim this gateway opens the app's Add gateway with the flash step already done, through a free signup or your sign-in: you register the gateway there and provision it over the same USB cable. The gateway firmware runs on the classic ESP32. The gateway setup guide walks through it.
When should I tick Erase entire flash?
Only when switching from a firmware with a different partition layout, or when the settings partition is corrupted and the board boot-loops. It wipes everything on the chip, including saved Wi-Fi credentials. A normal flash writes only the regions your files cover and leaves the NVS settings partition alone, which is why re-flashing a Synacl gateway keeps its provisioning.