Brewser Docs
Switch Runtime

Hardware APIs

Talking to real hardware from web apps

This is where Brewser shines for tinkerers. The Switch's USB port (and Bluetooth radio) become gateways to microcontrollers, MIDI gear and more — through the same APIs Chromium exposes.

Supported APIs

APIStatusTypical use
WebSerial✅ Verified on hardwareESP32/Arduino over USB CDC
WebBluetooth✅ Verified on hardwareBLE sensors & peripherals
Web MIDIMIDI controllers (e.g. AKAI pads)
Web NFCReading NFC tags
WebUSBSee support matrixDirect USB device access

Permission model

Apps must declare required hardware in their manifest. At runtime, the user picks the device from a system picker — modeled on Chrome's WebUSB/WebSerial flow. There is no auto-connect: nothing talks to your hardware without an explicit user choice.

Example: ESP32 over WebSerial

Hotplug, connect, and exchange data with an ESP32 over USB CDC exactly as you would in Chrome — navigator.serial.requestPort(), open, read/write streams.

On this page