Overview
asxeem/openaliro
Developer documentation

openaliro

openaliro implements the lock side of an Aliro digital key. The phone authenticates over Bluetooth LE and measures its distance over ultra-wideband: the door unlocks as the phone approaches and relocks as it leaves.

$nrfutil sdk-manager toolchain install --ncs-version v3.3.0
154subsystems
67%documented
737symbols
openaliro · zsh
$nrfutil sdk-manager toolchain install --ncs-version v3.3.0 # once per machine
$make bootstrap # fetch NCS v3.3.0 + the Nordic add-on (~6.5 GB) into ./workspace
$make build # → ./build/merged.hex
$make flash-erase # first flash of a net-core image
$make flash # every flash after that
$
Eight iPhone screenshots of the Aliro lock in use: Tap to Unlock and Home Key setup, approach and lock settings in the Home app, tap-to-unlock at the reader, and lock-state notifications on the Lock Screen Eight iPhone screenshots of the Aliro lock in use: Tap to Unlock and Home Key setup, approach and lock settings in the Home app, tap-to-unlock at the reader, and lock-state notifications on the Lock Screen
The lock in Apple Home: Home Key setup, approach-direction tuning, tap to unlock, and Lock Screen state changes, all against live hardware.

Get running

No toolchain handy?Flash the ESP32-S3 or ESP32-C5 build straight from the browser — this site writes the firmware over WebSerial (Chrome, Edge, or Firefox), then pick up at commissioning.Open the flasher →
  1. 1
    Clone the repository
    $git clone https://github.com/asxeem/openaliro.git
  2. 2
    Install the toolchain once per machine
    $nrfutil sdk-manager toolchain install --ncs-version v3.3.0
  3. 3
    Fetch the SDK workspace NCS v3.3.0 + the Nordic add-on (~6.5 GB) into ./workspace
    $make bootstrap
  4. 4
    Build the firmware the merged image lands in ./build/merged.hex
    $make build
  5. 5
    Flash the board the first flash of a net-core image needs the erase; plain make flash after that
    $make flash-erase

No toolchain? make test runs as-is. On ESP32-S3, start at the bring-up checklist.

🚪 Interactive digital twinWalk a phone up to the door and watch the reader's real unlock logic react — BLE, UWB ranging, the trust gate, the bolt. Open the twin →

Guides

Set up
Hardware
Deep dives
Porting
Project

Reference

integration/homeassistant
modules/woz_aliro/include
modules/woz_aliro/src
modules/woz_aliro_ecp/src
modules/woz_aliro_stack/src
modules/woz_aliro_stack/src/protocol
modules/woz_port/include
modules/woz_uwb/src/aliro
modules/woz_uwb/src/aliro/include/aliro_uwb_adapter
modules/woz_uwb/src/aliro/include/cherry
modules/woz_uwb/src/ccc
modules/woz_uwb/src/driver
modules/woz_uwb/src/facade
modules/woz_uwb/src/fira
modules/woz_uwb/src/shell
ports/esp32/apps/matter-lock/main
ports/esp32/apps/matter-lock/main/lock
ports/esp32/apps/reader/main
ports/esp32/components/aliro_ble
ports/esp32/components/aliro_reader
ports/esp32/components/woz_uwb/port
release/esp32-matter-lock
release/nrf5340dk
scripts
tools
web-twin