Skip to content

Commit a4376c4

Browse files
author
Ravi Singh
committed
docs: README + roadmap reflect v6.0.0 release and post-merge state
README: - Branch table now shows main = v6.0.0 (post-merge state) with v5 archived on legacy/v5-arduino. Includes a one-liner for users pulling onto an old local main. - Quickstart split into "easiest path" (flash prebuilt binary from the v6.0.0 release page) and "build from source" — the previous copy still described the PR #1 skeleton ("waiting for Wi-Fi setup in PR #2") which is wrong now that 6.0 is live. - IDF version bumped from v5.3 LTS to v5.5.2 to match what was actually used to build 6.0.0. - Reference wiring + first-boot AP setup added so a fresh user can go from clone to running without bouncing through HARDWARE.md. - "v5 (Arduino) docs" disclaimer rewritten — v5 is frozen, not "until v6 takes over". Points at legacy/v5-arduino branch. V6-ROADMAP.md: - Top banner: v6.0.0 RELEASED, links to release page. - New "v6.x roadmap (post-6.0.0)" section at the bottom captures encrypted ESP-NOW, signed OTA, persistent sessions, auto-topology learning, S3 dual-core pinning, sim-driver replay, and the few smaller follow-ups documented in the v6.0 release notes.
1 parent 563ee29 commit a4376c4

2 files changed

Lines changed: 100 additions & 19 deletions

File tree

README.md

Lines changed: 52 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,60 @@
2424
> [docs/HARDWARE.md](docs/HARDWARE.md) for the full board recommendation
2525
> table and known issues.
2626
>
27-
> | Branch | Purpose |
27+
> | Branch / tag | Purpose |
2828
> |---|---|
29-
> | `main` | v5.1.1 Arduino release — stable |
30-
> | `v6-idf-rewrite` | v6 development branch (current) |
31-
> | `legacy/v5-arduino` | frozen archive of the v5.x Arduino line |
32-
> | tag `v6.0.0` | v6 release |
29+
> | `main` | v6.0.0 — current canonical firmware (this branch) |
30+
> | `v6-idf-rewrite` | active dev branch for v6.x work (encrypted ESP-NOW, S3 dual-core, auto-topology) |
31+
> | `legacy/v5-arduino` | frozen archive of the v5.x Arduino line — reference only |
32+
> | tag `v6.0.0` | shipped release with prebuilt C3 binaries on the release page |
3333
> | tag `v5.1.1` | last Arduino-era release |
3434
35-
## v6 quickstart (ESP-IDF, requires `v5.3` LTS)
35+
If you cloned this repo before v6.0.0 landed and your local `main` still
36+
reflects the old Arduino tree, run `git fetch && git reset --hard origin/main`
37+
once after the merge to come up to speed. The Arduino code is preserved on
38+
`legacy/v5-arduino` and under `legacy/AmbiSense/` if you want to keep
39+
running v5.
40+
41+
## v6 quickstart (ESP-IDF v5.5.2)
42+
43+
**Easiest path** — flash the pre-built C3 binary from the
44+
[v6.0.0 release page](https://github.com/Techposts/AmbiSense/releases/tag/v6.0.0):
45+
46+
```sh
47+
pip install esptool
48+
python -m esptool --chip esp32c3 -p /dev/ttyUSB0 -b 460800 \
49+
--before default_reset --after hard_reset write_flash \
50+
--flash_mode dio --flash_size 4MB --flash_freq 80m \
51+
0x0 bootloader-c3-v6.0.0.bin \
52+
0x8000 partition-table-c3-v6.0.0.bin \
53+
0x10000 ambisense-c3-v6.0.0.bin
54+
```
55+
56+
**Build from source** — you need ESP-IDF v5.5.2 installed (`~/esp/esp-idf-v5.5.2/`):
3657

3758
```sh
38-
# One-time
3959
git clone https://github.com/Techposts/AmbiSense.git
4060
cd AmbiSense/firmware
41-
. $IDF_PATH/export.sh
61+
. ~/esp/esp-idf-v5.5.2/export.sh
4262

43-
# Build & flash for your board
44-
idf.py set-target esp32c3 # or: esp32, esp32s3, esp32c6
63+
idf.py set-target esp32c3 # or: esp32, esp32s3, esp32c6
4564
idf.py build flash monitor
4665
```
4766

48-
The skeleton boots, initialises NVS, resolves the board profile, and drives
49-
the onboard status LED into AP-mode blink (waiting-for-Wi-Fi). Wi-Fi setup
50-
lands in PR #2.
67+
After flash the device starts a Wi-Fi AP `AmbiSense-XXXX`. Connect from
68+
your phone — the captive portal pops at `http://192.168.4.1/`. Enter
69+
home Wi-Fi creds; the device joins and is reachable as
70+
`http://ambisense-XXXX.local/`.
5171

52-
VSCode users: install Espressif's ESP-IDF extension to get IntelliSense for
53-
IDF headers — without it, clangd will report `'esp_err.h' file not found`
54-
and similar; the code still builds correctly via `idf.py`.
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
75+
issues.
76+
77+
VSCode users: install Espressif's ESP-IDF extension to get IntelliSense
78+
for IDF headers — without it, clangd will report
79+
`'esp_err.h' file not found` and similar; the code still builds
80+
correctly via `idf.py`.
5581

5682
## v6 documentation
5783

@@ -72,10 +98,17 @@ Assets/, STL Files/ — design assets, enclosures (unchanged)
7298

7399
---
74100

75-
## v5 (Arduino) docs
101+
## v5 (Arduino) docs — reference only
102+
103+
The text below is the original v5.1.1 Arduino README, kept here for
104+
people running v5 hardware. v5 is **frozen** — no further bug fixes or
105+
features will be backported. Running v5? Track the
106+
[`legacy/v5-arduino`](https://github.com/Techposts/AmbiSense/tree/legacy/v5-arduino)
107+
branch instead of `main`, and the source is at `legacy/AmbiSense/`
108+
in this tree.
76109

77-
The legacy v5 documentation below applies to `main` until v6 takes over.
78-
For new development, target the `v6-idf-rewrite` branch.
110+
For new installs we strongly recommend going to v6.0.0 — see the
111+
quickstart above.
79112

80113
---
81114

docs/V6-ROADMAP.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# AmbiSense v6 — PR-by-PR roadmap
22

3+
> **Status (2026-05-05): v6.0.0 RELEASED.** All five planned PRs landed
4+
> plus a post-PR-5 polish pass (Kalman motion, asymmetric pairing,
5+
> debounced UI saves, mobile CSS, board MCU-mismatch boot guard). See
6+
> the [v6.0.0 release page](https://github.com/Techposts/AmbiSense/releases/tag/v6.0.0)
7+
> for the user-facing summary.
8+
>
9+
> v6.x roadmap (post-6.0.0 work) is at the bottom of this file.
10+
311
Five PRs. Each is independently flashable and validated on real C3
412
hardware before the next starts. Releases tagged `v6.0.0-alpha.N` from
513
PR #2 onwards; final `v6.0.0` ships with PR #5.
@@ -185,3 +193,43 @@ Move v5 README content fully behind a "v5 legacy" link.
185193
| `v6.0.0` | PR #5 merge | feature complete |
186194

187195
CI auto-attaches per-board firmware artifacts to tag pushes.
196+
197+
---
198+
199+
## v6.x roadmap (post-6.0.0)
200+
201+
These are tracked but did NOT ship in 6.0.0. See the v6.0.0 release
202+
notes for the user-facing version of the same list.
203+
204+
### Hardening
205+
- **Encrypted ESP-NOW** — derive a PMK from a user mesh password,
206+
enable per-peer LMK, store in NVS namespace `mesh.pmk`. Targets are
207+
defined in `mesh.h` (the `mesh_event_cb_t` plumbing is already in
208+
place); the actual `esp_now_set_pmk` call and UI password field are
209+
v6.1 work.
210+
- **Signed OTA**`esp_secure_boot` + signed `.bin` with rollback. The
211+
bootloader rollback path is already armed; signing keys + UI
212+
workflow are pending.
213+
- **Persistent sessions** — auth tokens currently live in RAM, lost on
214+
reboot. Move to NVS with explicit revocation list.
215+
216+
### UX / scale
217+
- **Auto-topology learning** — "walk through your stairs" mode where
218+
the device records distance histograms over a 60 s window and
219+
proposes segment boundaries automatically.
220+
- **Dual-core pinning (S3 / classic)**`xTaskCreatePinnedToCore` for
221+
Wi-Fi/HTTP on core 0 and radar+LED+motion on core 1. Lifts the
222+
HTTP-saturates-render limitation we currently work around with the
223+
client-side debounce.
224+
- **LED count beyond 300** — verified; lift the documented soft cap to
225+
the theoretical 1500-pixel limit per device.
226+
- **Realistic `sim` radar** — replay captured LD2410 frame logs
227+
instead of emitting a slow sine.
228+
229+
### Misc
230+
- **OTA preserves paired peers** — currently a factory reset wipes the
231+
topology blob too; needs a "keep mesh config" toggle.
232+
- **`esp32s3-zero` profile validation** — pinmap is correct in the
233+
profile; needs a hardware bring-up + photo for HARDWARE.md once an
234+
S3-Zero arrives on bench.
235+
- **Factory reset preserves Wi-Fi** option.

0 commit comments

Comments
 (0)