demo ยท v138
Wireless Arduino REPL
A field workflow that was impossible until 138: an Android tablet, sat next to an Arduino UNO with an HC-05 Bluetooth module, talking to it from the browser. No cable, no OTG dongle, no native shim. The same navigator.serial.requestPort() call — it just lists Bluetooth RFCOMM endpoints alongside USB ones.
Android-only, Chrome 138+. Desktop and iOS still need wired serial. This page opens a real Web Serial port; connect an HC-05/HC-06 style RFCOMM serial module from the browser picker before sending commands.
checking navigator.serial…
devices to look for in the browser picker
- HC-05-Arduino RFCOMM (NEW 138)
- FTDI-USB-Serial USB
- BT-Receipt-Printer RFCOMM (NEW 138)
the API surface (unchanged shape)
// Same shape on Android Chrome 138 — Bluetooth RFCOMM endpoints
// now appear in the picker alongside any USB ports.
const port = await navigator.serial.requestPort({
// optional filters — you can require BT or USB explicitly:
// filters: [{ bluetoothServiceClassId: 0x1101 }], // Serial Port Profile (SPP)
});
await port.open({ baudRate: 9600 });
const writer = port.writable.getWriter();
await writer.write(new TextEncoder().encode("ANALOG_READ 0\n"));
writer.releaseLock();
const reader = port.readable.getReader();
const { value } = await reader.read();
console.log(new TextDecoder().decode(value)); // "453\n"