What's New
v0.4.0-alpha adds AMOLED display support (ADR-045), stability fixes, and the CHCI protocol.
Changes since v0.3.0-alpha
| Change | Description |
|---|---|
| AMOLED Display (ADR-045) | LVGL-based HUD for T-Display-S3 AMOLED boards — real-time CSI metrics on-device |
| CSI Rate Limiting | Backpressure with ENOMEM backoff prevents UDP send crashes under high frame rates |
| TDM Provisioning | `provision.py` now supports `--tdm-slot` and `--tdm-total` flags for multi-node setups |
| CHCI Protocol (ADR-042) | 24 new edge processing modules for advanced on-device classification |
| 8MB Flash Layout | Custom partition table with 2×2MB OTA slots + 1.9MB SPIFFS for larger firmware |
Binary Details
| File | Size | Description |
|---|---|---|
| `esp32-csi-node.bin` | 1.18 MB | Application firmware (44% free in 2MB partition) |
| `bootloader.bin` | 21 KB | ESP-IDF v5.2 bootloader |
| `partition-table.bin` | 3 KB | 8MB flash layout (NVS + 2×OTA + SPIFFS) |
| `provision.py` | 6.7 KB | WiFi + TDM provisioning tool |
Flash Instructions
# Flash via esptool (replace COM7 with your port)
python -m esptool --chip esp32s3 --port COM7 --baud 460800 \
write_flash --flash_mode dio --flash_size 8MB \
0x0 bootloader.bin \
0x8000 partition-table.bin \
0x20000 esp32-csi-node.bin
# Provision WiFi + TDM (no credentials in firmware)
python provision.py --port COM7 \
--ssid "YOUR_SSID" --password "YOUR_PASSWORD" \
--target-ip 192.168.1.100 --target-port 5005 \
--tdm-slot 0 --tdm-total 2Multi-Node Setup
For 2+ ESP32 nodes, assign unique TDM slots:
- Node 1: `--tdm-slot 0 --tdm-total 2`
- Node 2: `--tdm-slot 1 --tdm-total 2`
Known Issues
- Binary requires 8MB flash (most ESP32-S3 dev boards have 8MB+)
- AMOLED display features require T-Display-S3 AMOLED board (CSI works on any ESP32-S3)
Stability Tips
If you experience flickering/jumping skeleton detection, use the Adaptive Classifier (ADR-048) for room-specific calibration — see issue #141 for step-by-step instructions.