ByteScope

Serial Monitor & Plotter

Talk to a dev board over USB serial — terminal, HEX dump and live plots, right in the browser.

Talks to your device locally over Web Serial — nothing is uploaded.

Checking browser support…

About this tool

This serial monitor connects straight to a board over the Web Serial API — the same permission model Chrome and Edge use for any site that asks to talk to a USB or Bluetooth serial device. Pick a baud rate (or type a custom one), choose data bits, stop bits, parity and flow control, and the port opens in a couple of clicks. Nothing is installed and no background service runs; close the tab and the connection closes with it.

The terminal is two-way: type a line and press enter (or click Send) to write it back to the board, with a configurable line ending (newline, carriage return, both or neither) and an optional local echo so you can see what you typed even if the board doesn't echo it itself. Turn on per-line timestamps when you're chasing a timing bug, and switch the display between plain text, a HEX dump (byte-for-byte the same layout as /hex-editor) or a mixed view when a binary protocol is interleaved with readable log lines.

What the plotter understands

Stream numeric data and the plotter auto-detects the shape: plain CSV (12,34,56), labeled pairs in the Arduino Serial Plotter style (temp:25.3 hum:60), or bare whitespace-separated numbers. Each recognized channel gets its own color, a live min/max/average readout and a one-click toggle to hide or rename it — and unlike the IDE's built-in plotter, the whole windowed dataset exports as a CSV file, and the chart itself saves as a PNG.

Send macros, session capture and search

Save commands you send often as named macro buttons — an AT command set, a debug menu, a reset sequence — and they persist in this browser for next time. Every session records and downloads as a .txt/.log file, and the terminal's search/filter box takes a plain substring or a full regular expression, so a long capture stays easy to comb through afterward.

Browser support

Web Serial is a Chromium-only API: Chrome, Edge and Opera on the desktop, plus Chrome on Android from version 148 onward. Safari and Firefox don't implement it and have no announced plans to, so this tool shows a clear explanation instead of a broken button on those browsers — the support table above lists exactly what's detected in the browser you're using right now.

Frequently asked questions

Which browsers can open a serial port?

Chrome, Edge and Opera on desktop, and Chrome 148+ on Android. Safari and Firefox do not implement the Web Serial API and have no announced timeline to add it, so this page shows an honest support matrix and a plain-language explanation instead of a non-working connect button on those browsers.

Does any of my serial data get uploaded anywhere?

No. The connection runs entirely through your browser's Web Serial API — bytes flow directly between the page and the device. Nothing you send or receive is transmitted to a server; the site's own analytics only record that you used the tool, never the data itself.

What does the plotter do with lines that aren't numeric?

It skips them for plotting, but they still show up in the terminal — a board that mixes debug text with sensor readings on the same serial line doesn't need a special mode. Only lines that parse as CSV, labeled pairs or whitespace-separated numbers turn into plotted samples.

Can I reconnect to the same board without picking it again?

Yes. Once a site is granted permission to a port, the browser remembers it, and this page lists your previously-authorized devices for one-click reconnect via the Web Serial API's `getPorts()` — no picker dialog needed unless you want a different device.

What are the DTR and RTS toggles for?

They're the two hardware control lines most USB-serial adapters expose. Many Arduino-compatible boards wire DTR to the reset pin, so toggling it low then high resets the board into its bootloader the same way the Arduino IDE does before uploading — useful here for watching a board reboot without touching the USB cable.

Can I send a file to the device from here?

Yes — the tool includes XMODEM and YMODEM senders for boards and bootloaders old enough to expect one of those protocols over a plain serial link. Pick the protocol, choose a file, and the transfer progress (blocks sent, retries) shows live in the panel.

Can it decode a specific protocol, not just show raw bytes?

Yes — beyond the default raw-line view, there's a built-in NMEA 0183 decoder (GPS/GNSS sentences) and a user-defined delimiter template where you name each field yourself, echoing the header-template idea from `/hex-editor` but applied to text lines instead of a binary header.