Serial Port Debugger

Connect to any serial device (Arduino, ESP32, RS232) directly from your browser. No drivers, no installation — just pure web technology. Supports ASCII/HEX, configurable baud rates, and real‑time logging.

9600 19200 115200 921600
Disconnected
[Ready] Click "Connect", select your serial device, and start debugging.
ASCII
AT Hello LED_ON LED_OFF GET_ID
Privacy first: Web Serial API works locally. All data stays in your browser. We never see your serial traffic.

What is Web Serial API?

The Web Serial API bridges the web and physical world. It provides a way for websites to read and write from serial devices (like microcontrollers, 3D printers, GPS modules) using JavaScript. This tool is a pure implementation of that API — no plugins, no native software.

"The Web Serial API is one of the capabilities that brings hardware closer to the web, enabling a new generation of hybrid applications."

How to Use This Debugger

  1. Connect your device via USB (or Bluetooth if it emulates a serial port).
  2. Click "Connect" — your browser will show a list of available serial ports. Select your device.
  3. Adjust baud rate, data bits, parity, stop bits to match your device settings.
  4. Once connected, you'll see incoming data in the terminal window. Use the input box to send commands.
  5. HEX mode allows sending/receiving raw hexadecimal bytes (e.g., FF 01 02).

Configuration Parameters Explained

ParameterDescriptionCommon values
Baud rateSymbols per second. Must match the device's firmware setting.9600, 115200 (for ESP32/Arduino)
Data bitsNumber of bits per character.8 (most common), 7 (legacy)
ParityError detection bit. None for modern devices.none, even, odd
Stop bitsEnd of frame signal.1, 2
CR+LFAppends carriage return and line feed to each message.Often needed for AT commands

Real‑World Use Cases

  • Arduino / ESP32 debugging — Monitor serial output and send commands wirelessly.
  • RS232 industrial equipment — Communicate with legacy machines via USB‑to‑serial adapters.
  • 3D printers (G‑code) — Send G‑code commands directly from the browser.
  • GPS modules — Read NMEA sentences and test configurations.
  • STEM education — Students can interact with hardware without installing drivers.
Case Study: Flashing ESP32 via Web Serial

An IoT hobbyist used this debugger to troubleshoot an ESP32 board that wasn't responding to AT commands. After connecting at 115200 baud, they observed garbage data — the baud rate was mismatched. Switching to 74880 (ESP32 bootloader default) revealed the correct boot logs. Using the HEX mode, they sent AT+RST (with CR+LF) and the module rebooted properly. The entire debugging session was done from a Chromebook with no serial driver hassles.

Web Serial API Fundamentals

The API is built around navigator.serial. To request a port, call requestPort() which returns a Promise<SerialPort>. After user selects a device, open it with port.open(options) where options include baudRate, dataBits, parity, stopBits, and flowControl.

Reading uses ReadableStream from port.readable.getReader(). Writing uses WritableStream via port.writable.getWriter(). Both operate on Uint8Array buffers. The API is asynchronous, ensuring the UI remains responsive.

Supported Browsers (Desktop)

  • Google Chrome 89+
  • Microsoft Edge 89+
  • Opera 75+
  • ChromeOS (excellent for embedded work)

Firefox and Safari do not currently implement Web Serial API. The tool will warn you if unsupported.

Troubleshooting Common Issues

  • No ports shown: Ensure device is connected, drivers installed (if needed), and you're using HTTPS (or localhost).
  • Garbled output: Baud rate mismatch — check your device's firmware settings.
  • Cannot send: Did you click "Connect"? Is the port already open by another app?
  • HEX mode error: Enter pairs of hex digits separated by spaces, e.g., FF 01 0A.
  • Connection drops: Check USB cable, try a different port, or disable power saving.

Frequently Asked Questions

Yes. Web Serial API requires HTTPS (or localhost) and explicit user permission for each port. The tool runs entirely client‑side; no data is sent to any server.

Currently you can copy the terminal content manually. A future version may include export buttons.

If the Bluetooth module presents itself as a standard serial port (e.g., via SPP), it should appear in the port list after pairing. However, this depends on OS and driver support.

The port may be already opened by another application (Arduino IDE, Cura, etc.). Close the other program and retry.

Built on standards – This debugger implements the Web Serial API specification (WICG). The code is inspired by open‑source examples and the MDN documentation. Reviewed by GetZenQuery's hardware team, last updated March 2026. For deeper technical insights, refer to the Web Serial API explainer.