github ruvnet/RuView v0.6.9-esp32
ESP32 firmware v0.6.9 — sync-packet emission (ADR-110 §A0.12)

latest release: v0.7.0-esp32
4 hours ago

ESP32 CSI Node firmware v0.6.9

Tag: v0.6.9-esp32
Date: 2026-05-23
Branch: adr-110-esp32c6 (PR #764)
ADR: ADR-110 §A0.11 + §A0.12 — sync-packet wired

What's new vs v0.6.8

Sync packet now emits from every CSI node. New 32-byte UDP packet
(magic 0xC511A110) carries the mesh-aligned epoch + sequence
high-water for the host aggregator to pair against incoming CSI
frames. Closes the §A0.11 wiring gap so downstream ADR-029/030
multistatic CSI fusion can recover mesh time for every frame.

Field layout (LE little-endian, total 32 bytes):

Offset Field
[0..3] magic 0xC511A110 (distinct from CSI frame magic 0xC5110001)
[4] node_id
[5] proto_ver 0x01
[6] flags (bit 0 = leader, bit 1 = sync valid, bit 2 = smoothed_used)
[7] reserved
[8..15] local esp_timer_get_time() (u64)
[16..23] mesh-aligned epoch = local + EMA-smoothed offset (u64)
[24..27] high-water CSI sequence (u32) — pairing key
[28..31] reserved

Live verified in WITNESS-LOG-110 §A0.12: both C6 boards on the
bench emit at the design cadence, follower's local − epoch matches
the §A0.10 measured offset within 285 µs.

New operator knob

CONFIG_C6_SYNC_EVERY_N_FRAMES (default 20). At the bench's observed
10 fps CSI rate that's ~2 s between sync packets. Raise to 50 for
~5 s (less wire overhead, slower convergence); lower to 5 for ~0.5 s
(heavier wire, tighter multistatic alignment window).

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: old aggregators that don't know about magic 0xC511A110 drop
the new packets on the magic-mismatch path that already exists for
the CSI parser.

What's still on the table

  • Host-side parser for the new sync packet in
    wifi-densepose-sensing-server — pairs (node_id, sequence)
    across the two UDP streams to recover mesh-aligned timestamps per
    CSI frame. Outside the firmware tree, future release.
  • IDF v5.4 soft-AP HE/TWT-Responder advertise (WITNESS-LOG-110 §A0.6) —
    no public API on C6 in this IDF release. Blocked on upstream.
  • 5 µA LP-core hibernation measurement (§B4) — code path complete,
    needs INA226/Joulescope on the bench.

Don't miss a new RuView release

NewReleases is sending notifications on new releases.