openaliro / Flash from the browser
asxeem/openaliro
Get started

Flash openaliro from your browser

The complete Aliro Matter lock on a single ESP32-S3 or ESP32-C5: it commissions into Apple Home over Wi-Fi, your iPhone carries the key in Wallet, and the lock opens as you walk up (BLE + UWB approach unlock). This page detects which chip you plugged in and flashes the right firmware over WebSerial. Nothing to install, no ESP-IDF.

What you need

Apple side: an iPhone with a UWB chip (iOS 26 is the validated floor), a Home hub (HomePod or Apple TV), and a 2.4 GHz Wi-Fi network.

1. Wire the UWB radio

Check the DWM3000EVB's power-select jumper first. Wrong source and the radio fails silently (no device ID, a deaf responder), looking exactly like a software fault. It cost days on the bench once.

Power the EVB from 3V3, not 5 V (the DW3000 is a 3.3 V part), share ground, and wire:

DWM3000EVB (Arduino pin)SignalESP32-S3ESP32-C5
D13SCLKGPIO12GPIO8
D11MOSIGPIO11GPIO9
D12MISOGPIO13GPIO23
D10CSGPIO10GPIO10
D8IRQGPIO5GPIO5
D7RSTnGPIO4GPIO4
D9WAKEUPGPIO6GPIO6
3V3power3V33V3
GNDgroundGNDGND
D1SPI-POLGND (mode-0 strap)same
D0SPI-PHAGND (mode-0 strap)same

The C5 data pins differ because the S3's GPIO11/12 are the C5's UART0 console and GPIO13 is its USB-Serial-JTAG.

The two straps hold the DW3000 in SPI mode 0; skip them if your EVB revision already fixes the mode (check its manual).

2. Flash

Plug the board in over USB, click Install, and pick its serial port. One merged image (bootloader, partition table, app) is written at offset 0x0. Reflashing wipes any previous commissioning either way; "erase device" also clears everything beyond the image, which is the safe pick on a used board.

This browser can't flash over WebSerial. Use Chrome, Edge, or Firefox on a computer — Safari and mobile browsers don't support it. WebSerial needs a secure page: open this page over https (or localhost) and retry.

No port in the list? Use a data cable, or hold the board's BOOT button while plugging it in, then retry. After a BOOT-button flash, replug before first boot.

3. First boot

  1. Open a serial console at 115200 baud: the installer's "Logs & Console" option works, or screen /dev/cu.usbmodem… 115200 (macOS), screen /dev/ttyACM0 115200 (Linux), PuTTY (Windows).
  2. The boot log prints the Matter onboarding QR code URL and the 11-digit manual pairing code, then a matter> prompt; codes reprints both. There is no Improv Wi-Fi step: the network join happens during commissioning.
  3. Home app: add accessory, scan the QR code (open its URL on another screen) or type the code. Keep the phone next to the board; commissioning starts over BLE, then joins your 2.4 GHz Wi-Fi. Expect a minute or two.
  4. Home warns about an uncertified accessory (test certificates); add anyway.
  5. Home then provisions the key into Wallet on its own. Walk up: the Wallet animation plays, the lock opens, and it relocks as you leave.

The matter> console also has status, range, lock/unlock, and factoryreset.

Troubleshooting

SymptomLikely cause and fix
Install button finds no portCharge-only cable, or hold BOOT while plugging in, then retry
No boot logWrong port, or still in download mode: replug
No valid UWB device IDPower-select jumper (see Wire it), 5 V instead of 3V3, or a wrong SPI line
range shows nothing with the phone nearUWB wiring, or no key yet: finish commissioning, check Wallet
Home cannot find the accessoryNo hub, Bluetooth off, or already commissioned (reflash or factoryreset)
Commissioning fails near the endWi-Fi join: 2.4 GHz required; remove the half-added accessory and retry

More depth: the bring-up checklist and the known traps.

Evaluation firmware with Matter test certificates; do not put it in charge of a door you care about. Reflashing wipes commissioning; remove the stale accessory from Home before re-adding. The nRF5340 DK target is out of scope here: it programs over a SEGGER J-Link probe, not WebSerial. Use its release bundle instead. Source and docs: github.com/asxeem/openaliro.