github ruvnet/RuView v0.7.0-esp32
ESP32 firmware v0.7.0 — ADR-110 firmware-side substrate closed

latest releases: v1218, v1217, v1216...
4 hours ago

ESP32 CSI Node firmware v0.7.0

Tag: v0.7.0-esp32
Date: 2026-05-23
Branch: adr-110-esp32c6 (PR #764)
Status: ADR-110 firmware-side substrate closed

Why a major bump

This release marks the end of the firmware-side ADR-110 push. Everything the
firmware can deliver toward §B's multistatic alignment story without
hardware-blocked dependencies is shipped, measured, and witnessed:

  • §A0.7 / §A0.8 / §A0.10: ESP-NOW cross-board mesh proven and quantified
    (99.43–99.56 % match, 104.1 µs smoothed offset stdev, 1.4 ppm crystal-skew
    tracking, ≤100 µs alignment target empirically met).
  • §A0.12: 32-byte UDP sync packet (magic 0xC511A110) emits alongside CSI
    frames so downstream multistatic fusion can pair (node_id, sequence) to
    recover mesh time per frame.
  • §A0.13 (new in v0.7.0): ADR-018 byte 19 bit 4 ("cross-node sync valid")
    now sourced from c6_sync_espnow_is_valid() too, not just the
    IDF-v5.4-broken 802.15.4 path. Mixed S3+C6 fleets correctly advertise
    sync via the working transport.

What remains is outside the firmware:

  • Host-side parser (sketched as archive/v1/src/hardware/csi_extractor.py:SyncPacketParser)
  • Multistatic CSI fusion in wifi-densepose-signal
  • 11ax-cooperative AP (or future IDF that exposes AP-side HE config)
  • INA226 / Joulescope for the ≤5 µA LP-core measurement

What's new vs v0.6.9

  • Bit-4 sync-valid wire fix (csi_collector.c:221): bit 4 is set when
    either c6_timesync_is_valid() or c6_sync_espnow_is_valid() returns
    true. Pre-v0.7.0 frames from sync'd ESP-NOW nodes falsely advertised "no
    sync" because the 802.15.4 path is broken and was the only flag source.
  • Python host-side stub (archive/v1/src/hardware/csi_extractor.py):
    SyncPacketParser + SyncPacket dataclass ready for the
    sensing-server to wire in.
  • Doc: ESP32BinaryParser docstring now mentions the sibling sync packet
    • the v0.7.0 bit-4 broadening.

Build artifacts

Target Binary Size Partition slack
esp32s3 (8 MB) esp32-csi-node-s3-8mb.bin 1094 KB 47 %
esp32c6 (4 MB) esp32-csi-node-c6-4mb.bin 1019 KB 45 %

SHA-256 sums in SHA256SUMS.txt. Backwards-compatible at the wire level
with v0.6.6 / v0.6.7 / v0.6.8 / v0.6.9. Mixed-version fleets keep working;
only nodes flashed with v0.7.0+ get the bit-4 fix.

Total scope of the loop sprint (iter 1 → iter 12)

10 firmware features shipped, 13 witness entries (§A0.1 → §A0.13),
3 GitHub releases (v0.6.7 / v0.6.8 / v0.6.9 / this v0.7.0), 11 commits
on the branch. The firmware now ships a complete, measured, and
quantitatively documented two-node mesh substrate for multistatic CSI
fusion.

Don't miss a new RuView release

NewReleases is sending notifications on new releases.