Home › Developer Tools › Online Serial Monitor

Online Serial Monitor

Connect an Arduino, ESP32, Raspberry Pi Pico or any USB-to-serial adapter straight from your browser. Read timestamped output, send text or hex commands, graph numbers in the plotter and save the log, with nothing to install.

Last updated:

Not connected
Port settings (data bits, parity, stop bits, flow control, DTR/RTS)
Control lines

Settings apply on the next connect. 8 data bits, no parity, 1 stop bit (8N1) is right for Arduino, ESP32, Raspberry Pi Pico and almost every USB-serial adapter.

RX 0 B · TX 0 B · 0 lines
Advertisement
Advertisement

How to use the Online Serial Monitor

  1. Plug in your board with a data-capable USB cable and close any other program that is using the port, such as the Arduino IDE Serial Monitor.
  2. Choose the baud rate that matches Serial.begin() in your sketch (9600 and 115200 are the most common).
  3. Click Connect port, select your device in the browser's port picker and click Connect. Output appears in the log with timestamps.
  4. Send commands in the box under the log. Pick the line ending your code expects, or switch to Hex bytes to send raw binary.
  5. Open the Plotter tab to graph numeric lines live, then download the data as CSV or the chart as PNG.
  6. Save the log as a text file when you are done, and click Disconnect to release the port.

How a browser serial monitor works

A serial monitor shows the bytes a microcontroller sends over its UART, the same stream you print with Serial.println() in an Arduino sketch or print() in MicroPython. Your board's USB chip (an ATmega16U2, CH340, CP2102, FTDI or the microcontroller's own USB) appears to the computer as a virtual COM port. The Web Serial API lets a web page open that port after you pick it in a browser dialog, so the page can read and write bytes just like the Arduino IDE, PuTTY or screen would.

Serial links have no clock wire, so both sides must agree on the timing in advance. The baud rate is the number of signal changes per second. With the common 8N1 framing each byte is sent as 10 bits (1 start bit, 8 data bits, no parity, 1 stop bit), so the maximum throughput is roughly baud rate ÷ 10 bytes per second: 960 bytes/s at 9600 baud and 11,520 bytes/s at 115200 baud.

Common baud rates and where they are used

Baud rateMax bytes/s (8N1)Typical use
9600960Arduino examples, GPS modules (NMEA), HC-05/HC-06 Bluetooth in data mode, many sensors
384003,840HC-05 AT command mode, some older modems and industrial devices
576005,760Arduino bootloaders on older boards, telemetry radios
748807,488ESP8266 ROM boot messages (the garbage you see at reset at other rates)
11520011,520ESP32, ESP8266 sketches, Raspberry Pi console, Pico, most modern boards
25000025,000Marlin 3D-printer firmware
92160092,160Fast data logging and firmware upload on ESP32 and USB-serial adapters

Boards with native USB, such as the Arduino Leonardo, Raspberry Pi Pico or ESP32-S3 in USB CDC mode, ignore the baud rate entirely and always run at full USB speed, so almost any value works for them. The exception is 1200 baud: opening and closing the port at 1200 is the "touch" signal that makes many of these boards restart into their bootloader.

Troubleshooting tips

  • "Failed to open" or "port is busy": only one program can hold a serial port. Close the Arduino IDE Serial Monitor or Plotter, Cura, OctoPrint, PuTTY or another tab, then connect again. Uploading a sketch also needs the port, so disconnect here before you upload.
  • No output at all: check that the sketch calls Serial.begin(), that TX and RX are crossed (TX to RX) when you use a separate USB-serial adapter, and that both sides share a ground wire.
  • Missing first lines: on boards with native USB, add while (!Serial) {} after Serial.begin() so the sketch waits for the monitor to connect.
  • Debugging binary protocols: switch the display to Hex or Text + hex to see every byte, including invisible carriage returns (0D) and line feeds (0A). Unprintable bytes are shown as a middle dot in text view.
  • Parity, framing or break errors in the log mean the electrical timing does not match: check the baud rate, data bits, parity and stop bits in Port settings.

Frequently asked questions

Which browsers support this online serial monitor?

It uses the Web Serial API, which is available in desktop Chrome, Microsoft Edge and Opera version 89 and newer on Windows, macOS, Linux and ChromeOS. Firefox and Safari do not support Web Serial, and mobile browsers cannot open serial ports. The demo device works in any browser.

Why can't I see my Arduino in the port list?

Use a USB cable that carries data, not a charge-only cable, and install the USB-serial driver if your board uses a CH340 or CP210x chip. On Linux your user must be allowed to access the port (usually by joining the dialout group). Ports that are open in another program can appear but will fail to open.

Why is the output garbled or full of strange characters?

Garbled text almost always means the baud rate does not match the one set in Serial.begin() on the device. ESP8266 and ESP32 boards also print a boot message at 74880 or 115200 baud, which looks like noise at other rates. Disconnect, pick the correct rate and connect again.

Which line ending should I choose?

Pick what your sketch reads up to. Code that uses Serial.readStringUntil('\n') needs Newline (LF). Many AT-command modules such as HC-05, ESP-01 and SIM800 expect Both CR + LF. Choose No line ending when you send single-character commands.

What data format does the plotter understand?

Each line that contains numbers becomes one sample. Separate values with spaces, commas, semicolons or tabs, for example 21.5,40.2, or label them as name:value pairs like temp:21.5 hum:40.2, which is the same format as the Arduino IDE Serial Plotter. A line of words alone sets the names of the following unlabelled columns.

Does my board reset when I connect?

Many Arduino boards, including the Uno and Nano, reset when the DTR line goes active, so the sketch restarts and setup() runs again when you connect. Untick DTR in Port settings before connecting to avoid that, or use the Reset board button to restart it on purpose.

Is any of my serial data sent to a server?

No. The browser talks to the port directly and everything is shown and stored only on this page. The log is held in memory until you clear it or close the tab, and only the baud rate, line ending and command history are remembered in this browser.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Hex to Text ConverterConvert hex to text and text to hex with UTF-8 support and space, 0x, \x or comma formats.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.Binary TranslatorConvert text to binary, hex, octal and back.JSON to Excel ConverterTurn JSON into a styled .xlsx spreadsheet; nested arrays become their own linked sheets.JSON to CSVConvert JSON data to CSV for spreadsheets.CSV to JSONConvert CSV data to JSON with live preview.Excel to CSVConvert XLSX spreadsheets to CSV.CSV ViewerOpen a CSV or TSV file as a sortable, filterable table.Excel Viewer (XLSX / XLS)Open XLSX, XLS and ODS spreadsheets in your browser without Excel.Line Ending ConverterConvert text and files between CRLF, LF and CR line endings.Markdown to HTMLConvert Markdown to clean HTML with a live editor.XML to JSONConvert XML to JSON with validation.Text Encoding ConverterDetect and convert text file encodings like UTF-8, UTF-16 and Latin-1.JSON ViewerExplore JSON as a collapsible tree, search keys and values and copy any node's path.TTF to WOFF2 ConverterConvert TTF and OTF fonts to WOFF2 or WOFF and get a ready @font-face CSS snippet.Chmod CalculatorConvert Linux file permissions between checkboxes, octal (755) and symbolic (rwxr-xr-x) notation.JSON to TypeScriptGenerate TypeScript interfaces or types from JSON, with nested types and optional fields.Morse Code TranslatorTranslate text to Morse code and back, then play it as sound or a blinking light, or save a WAV.HTML Table GeneratorBuild HTML tables in an editable grid with styles, header rows, CSV import and live preview.JSON to XML ConverterConvert JSON to well-formed XML with attributes, arrays and pretty print.JSON to YAML ConverterConvert JSON to clean YAML as you type, with indent, quoting and sort options.YAML to JSON ConverterConvert YAML to pretty or minified JSON, with errors pinned to the exact line.HTML to Markdown ConverterTurn HTML or pasted rich text into clean Markdown with tables and live preview.Markdown Table GeneratorBuild Markdown tables in a grid or paste from Excel/CSV, with alignment and preview.JSON ValidatorCheck JSON with the exact line and column of each error, fix tips and one-click auto-fix.Image to Base64Convert images to Base64 data URIs, CSS backgrounds and HTML img tags in your browser.Base64 to ImagePaste a Base64 string or data URI to preview, identify and download the image.JSON CompareCompare two JSON documents and see every added, removed and changed path.Hex to DecimalConvert hex to decimal instantly with steps and signed mode.Decimal to HexConvert decimal to hex instantly with steps and signed mode.Binary to DecimalConvert binary to decimal instantly with steps and signed mode.Decimal to BinaryConvert decimal to binary instantly with steps and signed mode.Two's Complement CalculatorDecimal to two's complement binary and back for 4-64 bits, with invert-and-add-1 steps.XML to CSV ConverterConvert XML to CSV: detects repeating records, flattens nested data, pick your columns.CSV to XML ConverterConvert CSV to well-formed XML with custom root and row names, escaping and pretty print.TOML to JSON ConverterConvert TOML to JSON and JSON to TOML with a full v1.0 parser and clear error lines.JSON to Go StructTurn JSON into Go structs with inferred types, nested structs and json tags.Merge Excel FilesCombine XLSX, XLS and CSV files into one workbook or append all rows into a single sheet.Parquet File ViewerOpen Apache Parquet files in your browser: schema, rows, filters and CSV or JSON export.Query CSV with SQLRun SQL on CSV, Excel, JSON and Parquet files in your browser with DuckDB. Join and export.Split Excel FileSplit an Excel sheet into several files by row count or by each value in a column, as ZIP.SQL Create Table GeneratorDefine columns, keys, defaults and indexes; get CREATE TABLE SQL for MySQL, Postgres and more.SQL IN Clause GeneratorTurn a pasted list into a SQL IN ('a','b') clause with quoting, dedupe and 1,000-item chunks.SQL Online CompilerRun SQL queries online on SQLite with sample databases, a result grid, CSV export and .db save.SQL to ER DiagramPaste CREATE TABLE statements and get an entity-relationship diagram with keys and links.XML to XSD GeneratorGenerate an XML Schema (XSD) from sample XML: types, occurrences, attributes and namespaces.XML ValidatorCheck if XML is well-formed, see the exact line and column of each error and pretty-print it.Wildcard Mask CalculatorConvert a subnet mask or CIDR to a wildcard mask for ACLs and OSPF, with range and binary.CSV to VCF ConverterConvert a contacts CSV into a vCard (.vcf) file, mapping columns to name, phone, email and more.CSV to YAML ConverterConvert CSV rows to a YAML list of mappings with type inference and delimiter detection.Endianness ConverterSwap byte order of 16, 32 and 64-bit hex values and see big- and little-endian integers and floats.Excel to SQL ConverterTurn an Excel sheet into CREATE TABLE and INSERT statements for MySQL, PostgreSQL, SQLite or SQL Server.Excel to VCF ConverterTurn an Excel contact list into a vCard .vcf file for iPhone, Android, Google or Outlook.File to C ArrayConvert any file into a C or C++ byte array header, like xxd -i, with const and PROGMEM options.Image to C ArrayConvert images to monochrome, RGB565 or RGB888 C arrays for OLED, LCD and TFT displays.JSON Merge ToolDeep-merge two or more JSON objects with array concat, replace or union and a conflict rule.JSONL to CSV ConverterConvert JSON Lines / NDJSON to CSV with flattened columns; streams large files locally.PHP Unserialize OnlineDecode PHP serialize() strings to JSON, a tree or print_r, and serialize JSON back to PHP.SQL Dialect ConverterTranslate SQL between MySQL, PostgreSQL, SQLite, SQL Server, Oracle, BigQuery and more.TSV to JSON ConverterTurn tab-separated data pasted from Excel or Sheets into a JSON array or keyed object.XLS to XLSX ConverterConvert old Excel 97-2003 .xls workbooks to modern .xlsx files in your browser, several at once.XML to Excel ConverterTurn repeating XML elements into an .xlsx spreadsheet with attributes and nested data as columns.XSD to XML Sample GeneratorGenerate a sample XML document from an XSD schema, with types, attributes and namespaces.YAML to CSV ConverterTurn a YAML list of objects into CSV with dot-notation columns, custom column order and download.DOCX to Markdown ConverterConvert Word .docx to clean Markdown with headings, lists, tables, links and images in a ZIP.ES6 to ES5 ConverterTranspile modern JavaScript (ES2015+) to ES5 with Babel: targets, module format and loose mode.JavaScript Object to JSONTurn JS object literals and Python dicts into valid JSON: quotes keys, fixes commas and values.
See all 129 Data & File Format Converters →