Retest PC

Serial Monitor Online

Plug in your board or adapter, press Choose port and pick it. Output appears with timestamps, you can send text or hex, and the loopback test checks a serial port end to end.

Arduino, ESP32, Pico and USB serial adaptersChrome and Edge on Windows, Mac, Linux, ChromeOS
No port open
Data bits
Parity
Stop bits
Flow control
Output lines
DTR
RTS
Input lines
CTSDSRDCDRI
Board reset
RXTX
Press Choose port, pick your board or USB serial adapter, and its output appears here. Set the baud rate to match the device first: 9600 or 115200 for most Arduino and ESP32 sketches.
Join TX to RX with a jumper first, with no board attached. The test sends 1,024 bytes and checks they come back.
Received
0
bytes
Sent
0
bytes
Receive rate
0
bytes per second
Lines
0
received
Line errors
0
framing, parity, overrun
Data passes only between this tab and the port you choose. Nothing is uploaded, and the log is cleared when you close the page.

This serial monitor online lets you read and send data on any serial port your computer can see: an Arduino, ESP32, ESP8266 or Raspberry Pi Pico, a USB to serial adapter with a CH340, CP2102, FTDI or PL2303 chip, a 3D printer, a GPS module or an old RS-232 device. Pick the port, set the baud rate, data bits, parity, stop bits and flow control, and the output appears with optional timestamps and a hex view. You can switch the DTR and RTS lines, watch CTS, DSR, DCD and RI, reset a board and run a loopback test that checks a port or adapter end to end. It works in Chrome, Edge and Opera on computers, in Firefox 151 and later, and with some limits in Chrome on Android.

How to use the serial monitor

  1. Connect the board or adapter with a USB cable that carries data, not a charge-only cable.
  2. Set the baud rate to match the device. For an Arduino sketch, use the number in Serial.begin().
  3. Press Choose port, select the device in the list and press Connect. Output starts appearing.
  4. Type a command in the box and press Enter. Choose the line ending the device expects: most Arduino sketches that read lines want New line.
  5. Turn on Hex view to see every byte, including ones that do not print. Save log downloads everything as a text file.

Serial settings explained

Setting What it means Usual value
Baud rate Bits per second on the wire. Both ends must match 9600 or 115200
Data bits Bits in each character 8
Parity An extra check bit after each character None
Stop bits Idle bits that end each character 1
Flow control RTS and CTS lines that pause sending when a buffer fills None
Line ending Characters added when you press Send New line (LF)

The usual combination is written 8N1: 8 data bits, no parity, 1 stop bit. Change these only when a device's manual says so, as some industrial and older equipment uses 7E1.

Baud rate Commonly used by
9600 Arduino examples, GPS modules, many sensors
57600 Older Arduino bootloaders, some radios
74880 ESP8266 boot messages
115200 ESP32, ESP8266 sketches, Pico, most modern boards, GRBL
250000 Marlin 3D printer firmware in many builds

The serial monitor is not showing anything

Work through these from the most common:

  • The baud rate is wrong. A mismatch usually shows garbage, but very far off rates show nothing at all.
  • The sketch never prints. Check that Serial.begin() runs before your first print.
  • The board printed before you connected. Opening the port resets an Uno, Nano or Mega through the DTR line, which restarts the sketch so you catch setup(). Boards with native USB do not reset this way. Press Reset Arduino or Reset ESP32, or the board's reset button.
  • Native USB boards need a setting. On an ESP32-S3 or C3 in the Arduino IDE, set USB CDC On Boot to Enabled. On a Leonardo or Micro, add while (!Serial); after Serial.begin().
  • TX and RX are not crossed. With a USB to serial adapter, the adapter's TX goes to the device's RX and RX to TX, and the grounds must be joined.
  • The device expects a different line ending. If it answers commands only sometimes, try Both CR and LF.

Garbled characters or line errors

Random symbols almost always mean a baud rate mismatch. If the Line errors count climbs, the port is reporting framing or parity errors, which also point to mismatched settings or electrical noise on long wires. Garbage only during startup is normal on ESP8266 boards. A 3.3 V device on a 5 V adapter, or a long unshielded cable, can also corrupt data. Check the voltage jumper on the adapter.

The port does not appear

If the board is missing from the list, the computer has not created a serial port for it:

  • Drivers. Boards with a CH340 or CH9102 chip may need WCH's driver on older Windows or Mac versions, CP210x boards need Silicon Labs' driver if Windows Update does not supply it, and FTDI chips work out of the box on Windows, macOS and Linux. The tester names the chip once the port opens.
  • Prolific PL2303 adapters. Windows rejects many old or copied PL2303 chips with a "phased out" message in Device Manager. Replace the adapter with a CP2102, CH340 or FTDI one.
  • Linux permissions. Add yourself to the dialout group with sudo usermod -aG dialout $USER, then log out and back in. On Ubuntu, a CH340 port that vanishes a second after plugging in is grabbed by the brltty package. Remove it with sudo apt remove brltty.
  • The cable or port. Try another cable and a port on the computer itself. If Windows shows an unknown USB device, follow the usb device not recognized guide.
  • Another program holds the port. Close the Arduino IDE's Serial Monitor, PuTTY, a slicer such as Cura or another browser tab. Only one program can use a port at a time.

Arduino and ESP32 reset and boot mode

Classic Arduino boards wire DTR to the reset pin through a capacitor, so DTR going on resets the board. Reset Arduino turns DTR off and on again. Most ESP32 boards use DTR and RTS together through two transistors: RTS pulls the EN (reset) pin low and DTR pulls GPIO0 low. Reset ESP32 pulses EN with GPIO0 high, so the board restarts and runs its program. ESP32 boot mode holds GPIO0 low while EN is released, and the board waits for a firmware upload, which shows up at 115200 baud as "waiting for download". If an upload tool reports a wrong boot mode, hold the board's BOOT button while it connects.

Test a serial port with a loopback

A loopback test proves a port or adapter works without any other device. Join TX to RX with a jumper wire, open the port and press Loopback test. The tester sends 1,024 bytes and checks every one comes back, measures the round trip and the throughput, and checks the control lines. On a 9 pin RS-232 connector, the loopback links pins 2 and 3 for data, 7 and 8 for RTS and CTS, and 4 to 6 and 1 for DTR, DSR and DCD.

Result Meaning
Pass, all bytes back Transmit, receive and the adapter's chip work
Nothing came back TX or RX dead, or the jumper is on the wrong pins
Some bytes missing Overruns: lower the baud rate or change the cable
Bytes changed Loose wiring, noise, or a failing adapter

RS-232 ports use up to 15 V and swing below zero. Never connect one directly to an Arduino, ESP32 or Pico pin, which expect 3.3 V or 5 V logic. Use a level shifter such as a MAX3232 board.

Other ports and devices

For music gear on USB or 5 pin DIN, the midi tester reads notes and controls. Wireless modules that use Bluetooth Low Energy instead of a serial profile show up in the bluetooth tester. 3D printers often accept G-code over serial at 115200 or 250000 baud. On Marlin firmware, send M503 to list the stored settings before you work through the 3d printer calibration steps, and the 3d printer test prints page has models to check the result. GPS modules print NMEA sentences, usually at 9600 baud. To check the GPS in a phone instead, use the gps test.

What this serial monitor cannot do

The browser only opens ports you pick, one tab at a time, so it cannot watch the traffic between another program and a device the way a port sniffer does. It cannot open a port another program is using, and virtual ports made by some emulators and remote desktop tools may not appear. For terminal work on a computer without a supported browser, use the Arduino IDE's Serial Monitor, PuTTY on Windows, or screen /dev/ttyUSB0 115200 on Mac and Linux.

Serial monitor questions

Is there an online Arduino serial monitor?

Yes, this page. It works like the Serial Monitor in the Arduino IDE: pick the port, set the same baud rate as Serial.begin() in your sketch, and the output appears. It adds timestamps, a hex view, saving the log and control of the DTR and RTS lines.

Why does my serial monitor show strange characters?

The baud rate does not match the device. Set it to the value in your code, usually 9600 or 115200. ESP8266 boards print their first boot messages at 74,880 baud, so a few garbled characters before your own output are normal on those.

Which browsers can open serial ports?

Chrome, Edge and Opera on Windows, macOS, Linux and ChromeOS, and Firefox 151 and later on computers, which asks you to allow serial access the first time a site requests a port. Chrome on Android opens Bluetooth serial modules from version 138 and wired USB ports from version 148, but only on phones whose Android system makes those ports available, so many phones list none. Safari and every browser on iPhone and iPad cannot open serial ports.

How do I find my board's COM port?

Unplug the board, press Choose port and look at the list, then plug it in and look again: the new entry is your board. On Windows, Device Manager lists it under Ports (COM & LPT). On a Mac it appears as /dev/cu.usbserial or /dev/cu.usbmodem, and on Linux as /dev/ttyUSB0 or /dev/ttyACM0.

Can I use this serial port tester with an ESP32?

Yes. Set 115200 baud for most ESP32 sketches and ESP-IDF projects. Colored ESP-IDF log lines keep their colors, Reset ESP32 restarts the board through the EN line, and ESP32 boot mode puts it into download mode.

Is my data sent anywhere?

No. The page talks to the port directly from your browser. Nothing is uploaded, and the log only exists in this tab until you save it or close the page.