Free tool · nothing leaves your machine

ESP32 Serial Monitor

Open your board's serial port from Chrome or Edge and watch it boot — with the reset reason, boot mode, panics, brownouts and watchdogs explained as they scroll past. No drivers to install beyond the USB-UART one, nothing uploaded, and a plain-English summary of what went wrong at the bottom.

1Connect the board

Change this while connected and the port is closed and reopened for you — Web Serial fixes the rate when the port opens, so there is no other way.

2How it reads

Plain text, case-insensitive. Filtering only changes what you see — every line is still kept, still summarised and still in the download.

3Send to the board

Most ESP32 sketches read a line with Serial.readStringUntil('\n'), so CR+LF is the safe default. If the board answers nothing, try LF.

4Boot log

Not connected

How to read an ESP32 boot log

Every ESP32 boot starts with two numbers from the ROM, printed on one line before your code runs at all: why the chip restarted and how it decided to boot. Almost every "it just reboots" problem is answered by those two numbers plus the first annotated line under them, which is why this monitor labels them instead of leaving you to search for the code.

LineWhat it meansWhat to do
rst:0x1 (POWERON_RESET)Cold start — power applied or EN pulled low.Nothing. This is the good one.
rst:0x3 (SW_RESET)The firmware restarted itself.Expected after an OTA. If you did not ask for it, find what did.
rst:0x5 (DEEPSLEEP_RESET)Woke from deep sleep.Keep anything that must survive in RTC_DATA_ATTR.
rst:0x7 / 0x8 (TG0/TG1WDT)A timer-group watchdog fired.Something held the CPU. Yield inside that loop.
rst:0x9 (RTCWDT_SYS_RESET)The RTC watchdog reset the system early.Suspect flash mode/frequency, or a supply that cannot carry the boot current.
rst:0xc (SW_CPU_RESET)Reset by the panic handler.Scroll up: the Guru Meditation line above is the real fault.
rst:0xf (RTCWDT_BROWN_OUT)The 3V3 rail sagged.Powered port, shorter data cable, bulk capacitor near the module.
boot:0x13 (SPI_FAST_FLASH_BOOT)Normal boot from flash.Nothing. If nothing sensible follows, the fault is in your image.
boot:0x3 / boot:0x0GPIO0 was low: the ROM download mode.Release BOOT and tap EN. If it repeats, something is pulling IO0 down.

After that the second-stage bootloader prints the partition table and the app starts logging. From then on, a line beginning E ( is an error and W ( a warning, and the name before the colon is the component to go and read about. Guru Meditation Error is a crash: the cause is in the parentheses, and the Backtrace: line under it becomes file names and line numbers when you run it through addr2line:

Two boards, two cables and the same sketch behaving differently is nearly always power or the USB-UART bridge, not the code — start with Web Serial troubleshooting, and use the web flasher if you need to put a known-good image on the chip before you trust the log at all.

You read the boot log once. Now read it from anywhere.

A USB cable tells you what happened while you were standing next to the board. Synacl gateways stream their logs, their status and their readings to an account you can open from your desk — and tell you when one of them stops.

ESP32 serial monitor questions

The ones people ask after the first log scrolls past.

Which browsers can open a serial port?

Chromium ones on desktop: Chrome, Edge, Opera, Brave and Arc. Web Serial does not exist in Firefox or Safari, and no mobile browser exposes it, so this page tells you so instead of failing silently. Everything else on the page — the explanations, the reset-code table — still reads fine anywhere.

Does anything I type or read leave my browser?

Nothing you type or read leaves your browser. The only network request the tool makes is one anonymous ping (a GET to /tools/_/…, no cookies, no identifiers) when a decode or read succeeds, so we know the tool is used. The serial bytes go from the USB port into this page and nowhere else; the log is only ever saved when you click Download.

Why is the log full of garbage characters?

The baud rate is wrong. ESP-IDF and Arduino default to 115200, but the ESP32 ROM prints its very first lines at a rate derived from the crystal, and the ESP8266 ROM prints its boot banner at 74880 — which is why that odd number is in the list. Pick the right rate and reset the board; the monitor reopens the port for you.

What do rst:0x1 and boot:0x13 mean?

The ROM prints why the chip restarted and how it decided to boot. rst:0x1 is a clean power-on, 0x3 a software restart, 0x5 a deep-sleep wake, 0x7/0x8/0x9 watchdogs, 0xc a reset after a panic and 0xf a brownout. boot:0x13 is a normal boot from SPI flash; boot:0x3 or boot:0x0 means GPIO0 was low and the chip is in the ROM download mode instead of running your code. The monitor labels each one as it scrolls past.

Why does my ESP32 keep rebooting?

Read the first annotated line of each boot. A brownout means the supply sagged — a better USB port, a shorter data cable and a bulk capacitor fix most of them. A Guru Meditation line is a crash, and the backtrace under it turns into file and line numbers with addr2line. A task or interrupt watchdog means something is blocking; add a yield. An invalid header means there is no valid app at the offset you flashed.

It says the port is busy, or no port is listed.

Only one program can hold a serial port at a time, so close the Arduino Serial Monitor, a PlatformIO monitor or any other terminal first. If no port appears at all, install the USB-UART driver for your board (CP210x for most ESP32 dev boards, CH340 for the cheaper clones) and check you are using a data cable rather than a charge-only one.