Support for Web Serial in Firefox 151 for Desktop
Firefox can now connect directly to microcontrollers, development boards, 3D printers, power meters, and other serial-connected hardware from the web. Starting in Firefox 151 for Desktop, support for the Web Serial API allows web applications to communicate with compatible devices without requiring native software.
Web Serial compatible devices are popular among hobbyists, hardware hackers, educators, makers, and developers with use cases ranging from home automation to hardware prototyping and 3D printing. Web Serial support makes Firefox more useful for these kinds of projects.
One of the organizations that has demonstrated the value of Web Serial is Adafruit, a leader in open-source hardware and STEM education. They’ve made it quick and easy to install CircuitPython on their devices by delivering firmware over Web Serial. Then it’s straightforward to run Python programs on the device. Name your file code.py
and, for most devices, the code can be installed by dragging-and-dropping the file onto the USB device. Your Python programs can interoperate with a web page over Web Serial using simple text-based I/O.
OPEN INSTALLER
method on the CircuitPython site.Here’s an example using an Adafruit ESP32-S2 based board where messages sent from web code can be directly displayed on the device over Web Serial.
code.py
file.We’ve collaborated with Adafruit to test Firefox’s implementation against real hardware workflows commonly used by this community. The result: Firefox is a more practical browser for programming and interacting with hardware directly using web technology.
As an example of how you can combine Web Serial with electronics, Mozilla engineer Alex Franchuk created an amazingly fun and functional device that melds electronics and web editing. Check out the Page Playground.
The list of serial compatible devices includes Espressif ESP-based boards such as the popular ESP32 chips, Raspberry Pi Picos, 3D printers, LEGO devices, and many more. There are many tools for running your own code on these small affordable microcontroller boards, and with Web Serial it’s easier than ever to connect them to a computer and interact through a web-based user interface.
What is Web Serial?
Web Serial is a web API that allows a website to read and write to serial devices using JavaScript. See the MDN documentation for the details. While modern computers don’t typically include serial ports, serial devices connected to a USB port or paired via Bluetooth can advertise themselves as serial-capable devices so they appear as serial ports in the operating system.
The Web Serial API lets developers use the web platform to communicate with these devices. For example, websites can control devices or deliver firmware without requiring native applications or installers.
Mozilla’s own Florian Quèze, who has experimented with many projects to measure power consumption, demonstrated how Web Serial could be used to read power data from an off-the-shelf USB power meter and display it in Firefox. Florian’s code can also export the data into the Firefox Profiler, making it easy to visualize and share power data. Here’s the page and GitHub repo. The screenshots below show the page in action and the data in the Firefox Profiler after recording the power usage of a light with three brightness modes.
Home Assistant is another example. It’s a popular (and growing) open source project for home automation. The ESPHome project offers Home Assistant-compatible firmware for affordable ESP32 and similar devices which can be installed and configured over Web Serial in just a few clicks.
Security and Privacy
There are clear security and privacy concerns with allowing the web platform to read and write to hardware devices. Most importantly, with Web Serial, websites do not have visibility or access to serial ports until the user explicitly allows it.
Ports are allowed on a per-site and per-port basis. The Web Serial API requires websites to call navigator.serial.requestPort()
, which lets the user choose which port to allow access to, or disallow all access entirely. This means websites do not receive a list of connected devices and there is no useful fingerprinting information outside of the port the user selects.
To help users understand when and why a site requests access to a serial port, Firefox uses add-on gating which we introduced with our Web MIDI API implementation. Compared to other web permission prompts, this gives the user a more detailed explanation of what they’re allowing. The add-on gating prompts appear before the port selection prompt the first time a site requests port access.
For organizations using Firefox Enterprise Policies, Web Serial is disabled by default. Administrators can explicitly allow or disallow Web Serial functionality across their organization using the DefaultSerialGuardSetting
policy setting.
Standardization
While Web Serial still resides in the Web Incubator Community Group (WICG), we’re optimistic there’s a path to standardization given its scope and long-running incubation. We are pursuing standardizing the Web Serial API in the WHATWG in a new Workstream proposal and are excited to work with ecosystem partners and standards bodies to help shape access to peripherals on the web.
Feedback
If you already have a Web Serial workflow with a device you can test on, give Firefox a try. We’d love to hear what you’re building and which workflows matter most to you. Mozilla Connect is a great place to share projects, ask questions, and give feedback.
For technical issues, browse to support.mozilla.org or file a bug here.
About Haik Aftandilian
More articles by Haik Aftandilian…
Facts Only
* Firefox 151 for Desktop supports the Web Serial API.
* Web Serial allows web applications to communicate with serial-connected hardware directly.
* Compatible devices include microcontrollers, development boards, 3D printers, and power meters.
* Adafruit demonstrated installing CircuitPython firmware via Web Serial over devices.
* Web Serial enables text-based I/O between web code and hardware.
* The API lets websites read and write to serial devices using JavaScript.
* Devices connected via USB or Bluetooth can advertise themselves as serial ports.
* Mozilla engineer Florian Quèze demonstrated reading power data from a USB power meter via Web Serial.
* Home Assistant utilizes ESPHome, which can be installed over Web Serial.
* The API requires user permission using navigator.serial.requestPort().
* Firefox Enterprise disables Web Serial by default unless explicitly allowed via policy setting.
Executive Summary
Support for Web Serial in Firefox 151 allows web applications to communicate directly with serial-connected hardware, including microcontrollers and development boards, without requiring native software installation. This support enables web applications to interact with compatible devices using the Web Serial API, which permits reading and writing to serial devices via JavaScript. The technology is valuable for hobbyists, hardware hackers, educators, and developers involved in areas like home automation and hardware prototyping.
The Web Serial API allows communication with devices that advertise themselves as serial-capable, often through USB or Bluetooth connections, allowing web platforms to control devices or deliver firmware directly. Examples include using it to install CircuitPython firmware over Web Serial for ESP32 boards, facilitating direct text-based I/O between web code and hardware. Furthermore, the technology has been demonstrated in practical applications, such as using Web Serial to read power data from USB power meters and visualize it in tools like the Firefox Profiler.
Security considerations are addressed by requiring explicit user permission via navigator.serial.requestPort(), allowing users to select which ports a site can access. Mozilla uses add-on gating to provide detailed explanations for port requests. For enterprise settings, Web Serial is disabled by default unless an administrator explicitly configures the DefaultSerialGuardSetting policy. The future direction involves standardization efforts within the WHATWG to establish a unified standard for this web API.
Full Take
The introduction of Web Serial represents a shift in the accessibility model for hardware interaction, moving complex device communication from native application dependencies into the web platform. The pattern emerging is one where specialized hardware and software ecosystems (like Arduino/CircuitPython) are being bridged directly to general-purpose interfaces (the web). This decentralization of control—allowing users to program devices like ESP32s or 3D printers via a browser—challenges traditional desktop-centric workflows by emphasizing direct, low-friction interaction.
The focus on security and privacy mechanisms, specifically explicit user permission and add-on gating, suggests an awareness of the inherent risk when granting web applications access to low-level system resources. The operationalization via Mozilla's testing with hardware communities indicates a deliberate attempt to establish a safe, transparent boundary for this new capability rather than simply enabling unrestricted access.
The standardization efforts within the WHATWG signal an attempt to formalize this emerging paradigm, moving it from experimental browser feature to a standardized web technology. This pursuit implies that the long-term goal is to embed hardware interaction seamlessly into the web standard, which has profound implications for future software development paradigms and user agency regarding physical devices. The gap remains in assessing the scalable security architecture for decentralized hardware access across diverse endpoints.
Sentinel — Human
The article reads as an informative piece written by someone familiar with both the technical details of Web Serial and the maker community, providing balanced coverage of utility, implementation, and risk.
