-
-
Notifications
You must be signed in to change notification settings - Fork 12
Version History
A short history of how AmbiSense got from a hobby Arduino sketch to a kit-ready ESP-IDF firmware.
🚨 The big architectural pivot. v6.0.0 shipped with dual-device ESP-NOW master/slave. v6.x drops it entirely. One device, one LD2450 sensor, one LED strip.
See Migration from v6.0 and the FAQ for the why.
- Removed:
mesh+topologycomponents, peer broadcast, coordinator election, pairing window, fusion modes, LD2410-family drivers, the Mesh tab in the UI, all/api/mesh*and/api/topology*endpoints, themeshandtopoNVS namespaces,STATUS_LED_PAIRING/IDENTIFYpatterns. - Locked:
ld2450andsimonly in radar registry. - Net: −1569 lines, +340 lines across 28 files.
- C3 PCB rev preparation: documented discrete LDO power-rail recommendation for the upcoming kit PCB.
- 6-screen Web UI (Live · LEDs · Motion · Hardware · Network · System).
- Build:
ambisense.bin1158 KB (20% partition free), UI bundle 25 KB gzipped. - Release page
Bench testing v6.0 on real U-shape and L-shape stair installs surfaced ESP-NOW round-trip jitter (5–100 ms with retries) that added visible LED lag, and the LD2450's (x, y, speed) target stream from one sensor at the inside-corner mounting position covered both arms of an L or U inside its 60° cone — making the second sensor redundant for the geometries users actually install.
The trade-off accepted: single-sensor mode requires the LD2450 to have line-of-sight to both arms of the LED run (mount at inside corner of L or centre-back of U). For arms longer than 5 m, range-test at the far end before locking the kit configuration.
For the full reasoning see FAQ → Why was the mesh dropped.
The full ground-up rewrite from Arduino to ESP-IDF + FreeRTOS. Shipped as a 5-PR plan over March–May 2026.
- ESP-IDF v5.5.2 + FreeRTOS, custom 4 MB partition layout.
- Independent FreeRTOS tasks for radar / motion / LED render / web — no more cooperative
loop()starving the LEDs under HTTP load. - LD2450 multi-target tracking + LD2410-family drivers in a runtime-selectable registry.
- Board picker with editable pin map (C3 SuperMini, classic ESP32, S3-Zero, C6).
- ESP-NOW peer mesh: every device broadcasts its reading at 5 Hz, runs identical fusion locally, lowest-MAC peer hosts the canonical web UI.
- Asymmetric pairing (3-second BOOT-button hold; either device opens the window, both auto-connect).
- Kalman motion filter (v3) — 3 user knobs replacing v5's 5 cryptic gain values; advanced PI gains kept as overrides.
- 20 Hz
/api/liveWebSocket telemetry. - OTA with rollback, captive portal, PBKDF2-SHA256 admin auth, MCU-mismatch boot guard.
- Modern Preact web UI (7 screens including Mesh tab) on phone + desktop.
- 300 ms client-side debounced settings save (slider drag won't saturate httpd).
- Release page
| Area | v6.0 | v6.x |
|---|---|---|
| Architecture | Dual-device peer mesh | Single device, single sensor |
| Sensors | LD2410 / 2412 / 2420 / 2450 / sim | LD2450 / sim |
| Pairing flow | 3-s BOOT hold + 30-s window | Removed |
| Fusion modes | Most recent / Slave first / Master first / Zone | Removed |
| Topology blob | NVS topo blob with segment ranges |
Removed |
| Mesh tab in UI | Present | Removed |
/api/mesh* endpoints |
3 routes | Removed |
| Recommended board | ESP32-S3 | ESP32-C3 SuperMini |
| Motion | Kalman v3 | Kalman v3 (unchanged) |
| OTA / auth / captive portal | All present | All present |
| Web UI screens | 7 | 6 |
The last Arduino-era line. Mature and shipped to dozens of users.
- Final patch release on the Arduino line.
- Bug fixes for the cooperative
loop()priority issues that v6 architecturally fixes. - Release page
- Multi-device master/slave fully working with EEPROM-saved peer list.
- Asymmetric stair topology support.
- Web UI rewrite (still plain HTML, no SPA framework).
- LED-mode framework with 11 modes.
- ESP-NOW peer discovery on AP-only mode.
- Distance-window-based LED rendering (replaces continuous mapping).
- Trail / direction-light / background modes.
- Release page
- Color modes added (single color / breathing / rainbow).
- LD2410 baud auto-detect.
- First public release with web UI.
- Single device + LD2410 only.
- Release page
Never released publicly. Single-mode "lights follow distance" demos.
| Branch / tag | Status | Purpose |
|---|---|---|
main |
stable | v6.0.0 (dual-device) — current canonical firmware |
v6-idf-rewrite |
active | v6.x development — single-sensor architecture |
legacy/v5-arduino |
frozen | v5.x Arduino source preserved |
tag v6.1.0-alpha.1
|
pre-release | First v6.x cut |
tag v6.0.0
|
release | Last dual-device build |
tag v5.1.1
|
release | Last Arduino release |
tag v5.1
|
release | Multi-device stable |
tag v4.1
|
release | Color modes added |
tag v3.1
|
release | First public release |
v6.x is in alpha through bench validation and PCB design. Once the prototype PCB is built, range-tested, and validated, v6.1.0 stable will tag from v6-idf-rewrite and merge to main.
See docs/V6-ROADMAP.md for the full v6.x roadmap.
Get started
Use it
Help
Upgrading
Reference