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"

see also