chore: Downgrade ESP-IDF from v6.1.0 to v5.5.2

Matches the version deployed on ESP32 sensors. Removes v6.1
workaround, updates all docs to reflect v5.5.2, regenerates
sdkconfig for the correct IDF version.
This commit is contained in:
user
2026-02-04 15:02:54 +01:00
parent 628b84f4f3
commit 2d52ac6026
7 changed files with 371 additions and 5212 deletions

View File

@@ -25,7 +25,7 @@ Firmware customization and experimentation for ESP32 CSI (Channel State Informat
## Software Stack
| Component | Version | Purpose |
|-----------|---------|---------|
| ESP-IDF | v5.x | Development framework |
| ESP-IDF | v5.5.2 | Development framework (`~/esp/esp-idf/`) |
| esp-csi | latest | CSI extraction library |
| FreeRTOS | (bundled) | RTOS kernel |

View File

@@ -1,12 +1,12 @@
# ESP32 Hacking Roadmap
## v0.1 - Documentation & Setup [CURRENT]
## v0.1 - Documentation & Setup [DONE]
- [x] Copy firmware sources from esp-csi
- [x] Document current firmware behavior
- [x] Document CSI data format
- [x] Document build & flash process
- [x] List firmware modification ideas with priorities
- [ ] Create development workflow (build, flash, test cycle)
- [x] Verify build from repo (ESP-IDF v5.5.2, aarch64)
## v0.2 - Remote Management
- [ ] Add UDP command listener on ESP32

View File

@@ -23,7 +23,7 @@
## Notes
- Build confirmed working on ESP-IDF v6.1.0 (aarch64/Pi 5)
- Workaround needed: symlink `6.0``6.1` in `esp_csi_gain_ctrl` managed component
- Build confirmed working on ESP-IDF v5.5.2 (aarch64/Pi 5)
- Downgraded from IDF v6.1.0 to v5.5.2 for compatibility with deployed devices
- Branch renamed from `master` to `main`
- Docs created: `docs/INSTALL.md`, `docs/USAGE.md`, `docs/CHEATSHEET.md`

View File

@@ -19,9 +19,6 @@ idf.py -p /dev/ttyUSB0 monitor # Serial monitor (Ctrl+] to exit)
idf.py -p /dev/ttyUSB0 flash monitor # Flash + monitor combined
idf.py fullclean # Clean build directory
idf.py reconfigure # Re-fetch managed components
# IDF v6.1 workaround (after clean/reconfigure)
ln -s 6.0 managed_components/espressif__esp_csi_gain_ctrl/6.1
```
## Deployed Sensors
@@ -82,7 +79,7 @@ secondary_channel,timestamp,ant,sig_len,rx_state,len,first_word,"[I,Q,...]"
| Path | Contents |
|------|----------|
| `~/esp/esp-idf/` | ESP-IDF v6.1.0 |
| `~/esp/esp-idf/` | ESP-IDF v5.5.2 |
| `~/esp/esp-csi/` | Original esp-csi examples |
| `~/.espressif/tools/` | Xtensa toolchain |

View File

@@ -4,12 +4,12 @@
| Component | Version | Location |
|-----------|---------|----------|
| ESP-IDF | v6.1.0 | `~/esp/esp-idf/` |
| ESP-IDF | v5.5.2 | `~/esp/esp-idf/` |
| esp-csi | latest | `~/esp/esp-csi/` (reference only) |
| Xtensa toolchain | GCC 15.2.0 | `~/.espressif/tools/` |
| Xtensa toolchain | (bundled) | `~/.espressif/tools/` |
| Python | 3.13+ | ESP-IDF venv |
**Note:** No RISC-V toolchain installed. Only ESP32 (Xtensa) targets are supported. For ESP32-C3/C5/C6, run `~/esp/esp-idf/install.sh` with the appropriate target first.
**Note:** Only ESP32 (Xtensa) target is installed. For ESP32-C3/C5/C6, run `~/esp/esp-idf/install.sh` with the appropriate target first.
## Setup
@@ -54,17 +54,6 @@ idf.py build
Build output goes to `build/` (excluded by `.gitignore`). External component `esp_csi_gain_ctrl` is fetched automatically to `managed_components/`.
### ESP-IDF v6.1 Workaround
The `esp_csi_gain_ctrl` component (v0.1.4) only ships prebuilt libraries up to ESP-IDF v6.0. On ESP-IDF v6.1+, the build fails with a missing `.a` file. Fix by symlinking:
```bash
cd managed_components/espressif__esp_csi_gain_ctrl
ln -s 6.0 6.1
```
This is needed after every `idf.py fullclean` or component re-fetch. The v6.0 library is ABI-compatible with v6.1.
## Flash
### Connect ESP32

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff