-
-
Notifications
You must be signed in to change notification settings - Fork 15
Migration from v6.0
If you were running v6.0.0 on a paired pair of devices, this page tells you how to move to the v6.x single-sensor architecture without losing your settings or your sanity.
- Pick the device that's at the better mounting position (inside corner of L, centre-back of U).
- Flash the v6.1.0-alpha.1 firmware onto just that one device.
- Remount it if needed so the LD2450 has line-of-sight to both arms of the LED run (v6.x requires LD2450, see LD2450 Mounting Guide).
- The other device is no longer needed. Repurpose, shelve, or use as a spare.
That's it. Old mesh and topo NVS keys are simply ignored by v6.x firmware — no migration tool needed.
v6.0.0 shipped a dual-device ESP-NOW peer mesh: two devices broadcasting their LD2410 readings to each other at 5 Hz, fusing locally, electing a coordinator, owning their LED segment of a virtual address space. We removed all of that in v6.x because:
- ESP-NOW round-trip jitter (5–100 ms with retries) added visible LED lag the motion Kalman filter could not hide.
- The LD2450's (x, y, speed) target stream from a single sensor at the geometric vantage point covers L-shape and U-shape geometries — making the second sensor redundant for the geometries users actually install.
- Install friction — pairing flow, coordinator election, topology editor — was substantial firmware surface for an outcome a single LD2450 achieves passively.
For the full reasoning see FAQ → Why was the mesh dropped.
If your two v6.0 devices were on a stair, the better mounting position for a single LD2450 is the inside corner (for L-shape) or the centre-back (for U-shape). The sensor needs line-of-sight to both arms. Pick the device that's already in or closest to that position; it'll save you from re-running cabling.
If you can't get a single sensor to see both arms (e.g. a complete vertical hairpin between floors with a wall in the middle), v6.x is not the right firmware for that install. Stay on v6.0 or wait for a future release with optional second-sensor support.
v6.0 worked with LD2410 (single-target distance-only, $5). v6.x requires LD2450 ($15) because the (x, y) target data is what lets a single sensor cover L/U shapes.
- Same UART pinout: TX/RX/VCC/GND wires are identical.
- Same baud (256000), same 5 V VCC + 3.3 V logic.
- The LD2450 has an extra OUT pin (digital presence indicator) — leave it unconnected; the firmware reads everything via UART.
If you don't have an LD2450, the firmware will still flash and boot, but the radar driver will fail to parse frames (LD2410 frame format is different) and the live distance will stay at 0.
Pre-built binaries on the v6.1.0-alpha.1 release page. Same flash command as v6.0:
python -m esptool --chip esp32c3 -p <PORT> -b 460800 \
--before default_reset --after hard_reset write_flash \
--flash_mode dio --flash_size 4MB --flash_freq 80m \
0x0 bootloader-c3-v6.1.0-alpha.1.bin \
0x8000 partition-table-c3-v6.1.0-alpha.1.bin \
0xd000 ota-data-initial-c3-v6.1.0-alpha.1.bin \
0x10000 ambisense-c3-v6.1.0-alpha.1.binYou can also use the in-browser OTA from your existing v6.0 UI: System → Firmware → drag-drop ambisense-c3-v6.1.0-alpha.1.bin. The bootloader rollback path is armed, so if the new firmware refuses to boot the device falls back to the previous slot.
| Setting | Carries over? | Notes |
|---|---|---|
| Wi-Fi credentials | ✅ Yes |
wifi.ssid and wifi.pass in NVS, untouched. |
| Hostname | ✅ Yes |
wifi.host. |
| Admin password (PBKDF2 hash) | ✅ Yes |
auth.pw_hash. |
| Board profile + pin overrides | ✅ Yes |
board.id, board.led_pin, board.radar_rx, etc. |
| Radar kind | If you had radar_kind=ld2410 saved, v6.x rejects it (driver gone) and falls back to LD2450. Update via Hardware tab on first boot.
|
|
| LED count, brightness, RGB, mode | ✅ Yes |
led.* namespace untouched. |
| Distance window (min/max) | ✅ Yes |
dist.min, dist.max. |
| Motion smoother gains | ✅ Yes | Kalman knobs + PI gains carried in motion.*. |
| Paired peers list | ❌ N/A |
mesh.* keys are orphaned; never read. |
| Topology blob (segments, kind) | ❌ N/A |
topo.* keys are orphaned; never read. |
| Fusion mode (most_recent / slave_first / etc.) | ❌ N/A | No fusion in v6.x — single sensor. |
You don't need to factory-reset. The orphan keys take ~100 bytes total and are simply never read.
If your v6.0 install had two sensors at the two extremes of the LED run (e.g. one at the top of the stairs, one at the bottom), the surviving single sensor will need to move to the geometric vantage point with line-of-sight to both arms.
For most L-shape stair installs that means moving the sensor to the inside corner of the L. For U-shape it means the centre-back of the U. See LD2450 Mounting Guide for the geometric details and a range-test you should run before locking the position.
After remounting:
- Open the web UI → Live tab.
- Walk the full length of both arms. The distance number should respond at every position.
- Open Hardware → Radar diagnostic. The "last frame age" should stay under 200 ms; the byte / frame counters should climb steadily.
- If the distance reads 0 at the far end of an arm, you're past the LD2450's effective range or off-axis — try a different mounting angle, raise the sensor, or accept that arm is the limit of single-sensor coverage.
Your old slave device is no longer needed. Options:
- Shelve as a spare — flash it with v6.1.0-alpha.1 too so it's ready to swap in if the primary fails.
- Repurpose — it's just an ESP32-C3 + LD2410, nothing AmbiSense-specific in hardware. Use it for a different project.
- Sell — they're cheap but the sensor + wiring still has value.
If you want to keep running v6.0 on both for now, leave the v6.0 devices alone — main branch is unchanged. v6.x lives on v6-idf-rewrite until it's bench-validated and merged.
If your install geometry genuinely can't be covered by a single LD2450 (a long T-junction with three branches, or two flights separated by a structural wall), single-sensor v6.x isn't the right firmware. Options:
-
Stay on v6.0.0 — the dual-device build is on
mainand gets bug-fix support but no new features. -
Run v5.x — Arduino-era multi-device support is preserved on
legacy/v5-arduino. Less polished but works. - Wait for a future v6.x release with optional second-sensor support — currently not on the roadmap, but if multiple users surface this need, a future release could add a "secondary sensor" option that's wired but doesn't require the full mesh layer.
Open an issue describing your install and we'll look at adding an option for that geometry.
Get started
Use it
Help
Upgrading
Reference