Build an Aliro lock for iPhone and Apple Watch.
Hands-free over BLE + UWB · Express Mode over NFC · No app
Start · Build · Features · Hardware · Documentation ↗

Real hardware · Real Wallet key · Real approach unlock
Try web twin → Flash ESP32 → Latest release → Documentation →
Lock-side Aliro firmware · BLE auth · UWB ranging · proximity/NFC unlock
- Twin: press Walk up to inspect every BLE/UWB step.
- Browser flash: Chrome/Edge · connect S3/C5 · Install.
- Release: follow the target
FLASH.md. - Local test:
make testneeds a C compiler, not an SDK or hardware. - Home Assistant:
make ha-setup HA=1wires the broker, agent, and config in one step.
git clone https://github.com/asxeem/openaliro.git
cd openaliroPrefer a guided path? Install Bun, then run make openaliro for a
walkthrough of bootstrap, build, flash, pairing, and diagnostics with a live serial
console. Details in tools/tui/.
Primary hardware: nRF5340 DK + DWM3000EVB/DW3110 + X-NUCLEO-NFC12A1/ST25R300.
make bootstrap # once; host tools + pinned NCS + workspace (~8.5 GB)
make build # build/merged.hex
make flash-erase # first flash
make term # serial consoleThe in-tree Aliro stack is the default. Use ALIRO_SOURCE=0 only for
legacy Nordic-binary comparison. Then use make flash.
Requires ESP-IDF, esp-matter, and a DWM3000EVB/DW3110.
cd ports/esp32/apps/matter-lock
make set-target TARGET=esp32s3 # or esp32c5; once per checkout
make go # build + flash + monitorS3 is validated; C5 is build/release-tested.
- Boot; copy the Matter QR URL or pairing code. ESP32:
codes. - Add it in Apple Home; accept the test-certificate warning.
- Wait for Home Key; walk up or tap NFC.
- Unlock: Home Key, BLE/UWB approach/relock, and NFC Express Mode.
- Security: credential-bound DS-TWR plus a consistency gate.
- Validated: released nRF Nordic-binary and ESP32-S3 approach paths; nRF NFC with ST25R300.
- Speed: credential reuse, PHY prewarm, 15 ms BLE, and fast auth.
- Step-up: Access Document verification and live advertisement tags.
- Home controls: single-antenna cosmetic direction; Matter user attribution.
- Resilience: state persistence, repair, envelope coalescing, and safe relock.
- Bare UWB: DW3110 runs CCC/FiRa, STS, DS-TWR, M1-M4; no coprocessor.
- Power: UWB sleeps out of range; ESP32 uses RSSI gating or predictive ETA.
- Ports: nRF5340, ESP32-S3, and ESP32-C5 share one engine.
- Home Assistant: UWB distance and access events over MQTT, lock control over Matter; no firmware change.

Home Key · Approach Direction · provisioning · NFC tap · live lock state
- nRF5340: DK + DW3110 + ST25R300; released Nordic-binary path has NFC + approach validation; source-stack default is CI/host-tested pending the phone checklist.
- ESP32-S3: DW3110; release/source/browser image, approach validated.
- ESP32-C5: DW3110; release/source/browser image, build-tested.
Thanks: @br101 · @kormax · @rednblkx · @scottjg.
License: ISC project code · mixed vendor terms · LICENSE · Privacy
Independent project · No affiliation · No warranty · Do not secure valuables with it