Hotdry.

Article

Firefox 151 集成 Web Serial API:浏览器直连微控制器实现零安装固件烧录

Firefox 151 正式支持 Web Serial API,通过与 Adafruit 合作实现浏览器直连 ESP32、Raspberry Pi Pico 等微控制器,无需本地软件即可完成 CircuitPython 固件烧录与硬件调试。

2026-05-24web-hardware-integration

浏览器与硬件的边界正在模糊。Firefox 151 桌面版正式发布,带来了一项对开发者、创客和教育工作者意义重大的功能 —— 原生支持 Web Serial API。这意味着用户可以直接在浏览器中与微控制器、开发板、3D 打印机和其他串口设备进行双向通信,无需安装驱动程序或本地软件。

Mozilla 选择与开源硬件社区 Adafruit 深度合作,验证这一技术在实际硬件工作流中的可行性。Adafruit 作为 CircuitPython 生态的推动者,其浏览器 - based 固件烧录方案现已完整支持 Firefox,用户可以通过网页直接为 ESP32-S2、Raspberry Pi Pico 等设备刷入固件。

Web Serial 与 WebUSB 的技术分野

在讨论浏览器硬件交互时,WebUSB 往往是最先被提及的 API。然而,Firefox 并未实现 WebUSB,而是选择了 Web Serial 作为替代路径。这一决策背后有着清晰的技术考量:Web Serial 专注于串行通信抽象,而大多数现代微控制器通过 USB 转串口芯片(如 CP2102、CH340)与主机通信时,在操作系统层面呈现为串口设备而非原始 USB 设备。

Web Serial API 允许 JavaScript 代码通过 navigator.serial 接口请求串口访问权限,建立连接后进行读写操作。这种设计降低了对硬件的侵入性要求 —— 设备只需实现标准的 USB CDC(Communication Device Class)协议即可被浏览器识别,无需额外的 WebUSB 描述符或特定固件支持。

对于 CircuitPython 生态而言,这一特性尤为关键。CircuitPython 设备在连接 PC 时通常表现为 USB 大容量存储设备(MSC)和串口设备的复合体。用户可以直接拖放 code.py 文件到设备磁盘,同时通过串口进行 REPL 交互和调试。Web Serial 的支持让 Firefox 用户能够完整参与这一工作流。

实战:在 Firefox 中烧录 CircuitPython 固件

Adafruit 提供的 Web Serial ESPTool 是体验这一功能的理想入口。该工具专为 ESP 系列芯片设计,支持 ESP32、ESP32-S2、ESP32-S3 等常见开发板。使用流程如下:

首先,将设备进入下载模式。对于 ESP32-S2/S3 开发板,通常需要按住 BOOT 按钮的同时短按 RESET 按钮。随后访问 Adafruit 的在线工具页面,点击连接按钮触发权限请求。

Firefox 采用双层权限模型。首次访问时,浏览器会显示 addon gating 提示,解释站点请求访问串口设备的原因。用户确认后,系统弹出串口选择对话框,列出当前可用的串口设备。这一设计确保用户始终掌控设备访问权,防止恶意网站未经授权扫描硬件信息。

选择正确的串口后,工具即可与设备的 bootloader 通信,完成固件擦除、写入和验证操作。整个过程在浏览器内完成,无需安装 Python、esptool.py 或任何驱动程序。对于教育场景和快速原型开发,这显著降低了环境配置的门槛。

安全架构与企业策略

浏览器直接访问硬件必然引发安全担忧。Mozilla 在此采用了保守但实用的策略:

显式授权机制:网站无法枚举或探测串口设备,必须通过 navigator.serial.requestPort() 触发用户交互。权限按站点和端口粒度授予,不存在全局硬件访问权。

Addon Gating 设计:相比 Chrome 的简单权限提示,Firefox 在 Web Serial 和 Web MIDI 等敏感 API 上引入了扩展门控机制。首次请求时,用户会看到详细的解释页面,说明该权限的用途和潜在风险。

企业策略支持:对于组织环境,Firefox 提供了 DefaultSerialGuardSetting 策略选项。管理员可以在企业策略中显式启用或禁用 Web Serial 功能,或将其限制在特定域名范围内。默认情况下,企业版 Firefox 禁用此功能,需管理员手动开启。

兼容设备与应用场景

Web Serial 的兼容范围远超微控制器领域。目前已验证支持的设备类型包括:

  • ESP 系列开发板:ESP32、ESP32-S2、ESP32-S3、ESP32-C3,覆盖 WiFi 和蓝牙物联网项目
  • Raspberry Pi Pico:RP2040 双核微控制器,支持 MicroPython 和 C/C++ SDK
  • 3D 打印机:通过串口进行 G-code 传输和打印控制
  • USB 功率计:如 AVHzY C3 USB、Joy-IT TC66C,可用于功耗分析和可视化
  • LEGO 设备:教育机器人和自动化项目
  • Home Assistant ESPHome:智能家居固件的浏览器端烧录和配置

Mozilla 工程师 Alex Franchuk 开发的 Page Playground 项目展示了 Web Serial 与前端技术的创意结合 —— 通过网页直接控制硬件,实现所见即所得的交互式电子原型。

标准化进程与未来展望

Web Serial API 目前由 Web Incubator Community Group (WICG) 维护,处于孵化阶段。Mozilla 正积极推动其进入 WHATWG 标准化流程,已提交新的工作流提案。这表明浏览器与硬件的深度集成正从实验性特性向 Web 平台标准演进。

值得注意的是,Firefox 的 Web Serial 实现目前仅限桌面版本。移动端的支持面临更多挑战,包括 USB OTG 的权限模型和移动浏览器的沙箱限制。对于需要移动硬件调试的场景,开发者仍需依赖原生应用或桌面浏览器。

对于硬件开发者和教育者而言,Firefox 151 的发布意味着更多的浏览器选择自由。此前,Web Serial 工作流主要依赖 Chrome 和 Edge 等 Chromium 内核浏览器。Mozilla 的独立实现验证了该 API 的跨浏览器可行性,也为开源硬件社区提供了不依赖单一浏览器生态的保障。

资料来源

web-hardware-integration

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com