You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: v6.x single-sensor pivot — drop mesh + topology + LD2410 family
PCB-lock prep. v6.0 shipped a dual-device ESP-NOW master/slave
architecture; bench testing on real U-shape and L-shape installs
showed ESP-NOW jitter (5-100 ms with retries) added visible LED lag,
and the LD2450's (x, y, speed) target stream from a single sensor at
the inside corner of the LED run already covers both arms inside its
60° cone — making the second sensor redundant for the geometries
users actually install.
Removed:
- firmware/components/mesh, firmware/components/topology
- radar_ld2410.c (and ld2410/ld2412/ld2420 registry entries)
- /api/mesh, /api/mesh/identify, /api/topology endpoints
- ScreenMesh + TopologyDiagram + Mesh tab + peer fields in UI
- mesh + topo NVS namespaces (orphan keys on upgraded units are ignored)
- STATUS_LED_PAIRING / STATUS_LED_IDENTIFY patterns
- Button long-press → mesh_open_pairing wiring (now no-op, reserved
for v6.1 factory reset)
Locked: ld2450 + sim only in radar registry.
Builds:
- firmware: ambisense.bin 0x11aa70 / 0x160000 partition (20% free)
- frontend: dist/index.html 85.4 kB / 25.2 kB gzipped
Docs (V6-ARCHITECTURE, V6-ROADMAP, HARDWARE, README) rewritten to
reflect single-sensor architecture and PCB-rev power-rail
recommendations (discrete AP2112K-3.3 / MIC5219 LDO feeding both C3
3V3 and LD2450, star-grounded LED return).
> sections further down this README describe v5 + v6.0 behaviour and are
43
+
> retained as historical reference. They no longer apply to v6.x.
34
44
35
45
If you cloned this repo before v6.0.0 landed and your local `main` still
36
46
reflects the old Arduino tree, run `git fetch && git reset --hard origin/main`
@@ -69,9 +79,10 @@ your phone — the captive portal pops at `http://192.168.4.1/`. Enter
69
79
home Wi-Fi creds; the device joins and is reachable as
70
80
`http://ambisense-XXXX.local/`.
71
81
72
-
**Recommended hardware**: ESP32-S3 DevKitC-1 or S3-Zero (dual-core,
73
-
native USB). **Supported**: ESP32-C3 SuperMini for single-strip installs.
74
-
See [docs/HARDWARE.md](docs/HARDWARE.md) for the full table and known
82
+
**Hardware**: v6.x ships on the ESP32-C3 SuperMini + LD2450. The C3 is
83
+
single-core but with no peer broadcast / no second sensor it has plenty
84
+
of headroom for radar UART + Kalman + WS + LED render. See
85
+
[docs/HARDWARE.md](docs/HARDWARE.md) for the PCB-rev wiring and known
75
86
issues.
76
87
77
88
VSCode users: install Espressif's ESP-IDF extension to get IntelliSense
@@ -83,7 +94,7 @@ correctly via `idf.py`.
83
94
84
95
| Document | Read when |
85
96
|---|---|
86
-
|[docs/V6-ARCHITECTURE.md](docs/V6-ARCHITECTURE.md)| Picking up the v6 rewrite cold — this captures the locked architectural decisions (peer mesh, modular radar drivers, NVS schema, board profiles). Read first before proposing any structural change. |
97
+
|[docs/V6-ARCHITECTURE.md](docs/V6-ARCHITECTURE.md)| Picking up the v6 rewrite cold — captures the locked architectural decisions (single-sensor LD2450, NVS schema, board profiles). Read first before proposing any structural change. |
87
98
|[docs/V6-ROADMAP.md](docs/V6-ROADMAP.md)| Planning what to build next — the 5-PR plan with status per PR and the tag/release cadence. |
88
99
|[docs/HARDWARE.md](docs/HARDWARE.md)| Building or debugging hardware — reference wiring for C3 SuperMini, board profiles, sensor pinouts, and a flash-fails-to-connect troubleshooting ladder. |
Copy file name to clipboardExpand all lines: docs/HARDWARE.md
+50-20Lines changed: 50 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,16 +4,20 @@ For locked architectural decisions about which boards/sensors are
4
4
supported, see [`V6-ARCHITECTURE.md`](V6-ARCHITECTURE.md). This file
5
5
covers the practical "I have hardware in front of me" stuff.
6
6
7
-
## Board recommendation (read this first)
7
+
## Board recommendation (v6.x)
8
8
9
9
| Tier | Board | Why |
10
10
| ---- | ----- | --- |
11
-
|**Recommended**|**ESP32-S3 DevKitC-1***or***ESP32-S3-Zero**|Dual-core LX7 @ 240 MHz, native USB-OTG (no CH340 driver fights), 512 KB SRAM. Wi-Fi/HTTP can be pinned to core 0 and radar+LED+motion to core 1 — slider floods can't starve the render loop. Headroom for v6.1 features (auto-topology, encrypted ESP-NOW, larger strips). Best choice for a stairwell with mesh peers.|
12
-
|**Supported**|**ESP32-C3 SuperMini**| Single-core RISC-V @ 160 MHz. The validated v6.0 reference build. Fine for **single-strip, single-device** installs. The 300 ms client-side debounced-save shipped with v6.0 prevents HTTP saturation under slider drag. Stops being the right choice the moment you want >2 mesh peers or >300 LEDs. |
13
-
|**Deprecated**| ESP32 classic (WROOM-32) | Older silicon, no native USB, no advantage over S3. Profile still builds; not recommended for new installs. |
11
+
|**Recommended (v6.x PCB target)**|**ESP32-C3 SuperMini**|Single-core RISC-V @ 160 MHz. With v6.x's single-sensor architecture (no peer broadcast, no second sensor to fuse) the C3 has plenty of headroom for radar UART + Kalman + LED render + Wi-Fi/HTTP on one core. The 300 ms client-side debounced-save handles slider-drag flood without saturating httpd. **This is the target board for the v6.x kit PCB.**|
12
+
|**Supported**| ESP32-S3 DevKitC-1 / S3-Zero | Dual-core LX7 @ 240 MHz, native USB-OTG. Overkill for a single-sensor install but profile still builds and validates. Use if you already own one or if you want to drive >300 LEDs from a single device. |
13
+
|**Deprecated**| ESP32 classic (WROOM-32) | Older silicon, no native USB, no advantage. Profile still builds. |
14
14
|**Avoid**| ESP32-C6 | Single-core, *less* SRAM than C3, and Wi-Fi 6 / Thread don't help AmbiSense. |
15
15
16
-
If you're starting from scratch and asked us "which board do I buy" → **S3-Zero**. If you already have a C3 SuperMini on the bench → it works.
16
+
**v6.0 vs v6.x recommendation:** v6.0 recommended S3 because dual-device
17
+
peer mesh + per-peer fusion + ESP-NOW broadcast on a single C3 core ran
18
+
hot under load. v6.x removes all of that, so the C3 — with its smaller
19
+
package, native USB-Serial-JTAG, and ~$3 BOM cost — becomes the right
0 commit comments