Anniversary Sale · up to 80% off all librariesEnds Nov 9Shop now
SOFTTDocs

Introduction

WebSerial is a remote terminal library that lets you log, monitor and debug firmware on wireless microcontrollers from a web browser.

WebSerial is a remote terminal that lives on your wireless microcontroller. It serves a terminal page from the device and streams your log output to every connected browser over a WebSocket, so you can log, monitor and debug firmware without a wired serial connection.

GitHubayushsharma82/WebSerial

648124
WebSerial terminal

Key capabilities

  • Remote terminal in the browser: the terminal page is generated and served by the library at /webserial. You do not need to write HTML, CSS or JavaScript.
  • Familiar printing API: the WebSerial object derives from the Arduino Print class, so print(), println(), printf() and write() work as they do with Serial.
  • Two-way communication: commands typed into the terminal are delivered to your firmware through the onMessage() callback.
  • Built on ESPAsyncWebServer: WebSerial attaches to an existing AsyncWebServer instance and coexists with your own routes.
  • Buffered and high-performance modes: the default mode batches output to reduce network overhead; High Performance Mode sends messages immediately for high-throughput logging.
  • Authentication: protect the terminal with HTTP Basic Authentication.

Supported boards

BoardWebSerial LiteWebSerial Pro
ESP8266YesYes
ESP32YesYes
RP2040 (Raspberry Pi Pico W)YesNo
RP2350 (Raspberry Pi Pico 2 W)YesNo

See Installation for the dependencies required on each platform.

WebSerial Lite and WebSerial Pro

This documentation covers both editions of WebSerial. WebSerial Lite is open source and licensed under AGPL-3.0. WebSerial Pro is a commercial edition that includes everything in WebSerial Lite plus the following:

Pages for features that are available only in WebSerial Pro are marked accordingly. See Commercial License for a comparison, or visit store.softt.io.

WebSerial Lite terminal
WebSerial Pro terminal

Explore the documentation

On this page