yggvault ratatoskr-space connected via regular web
Color theme
also available via yggdrasil mesh http://[203:b338:2a84:a18f:986:47ae:1a4:d8d3]/pkg/ruview/v0.6.8-esp32
vault / ruview / v0.6.8-esp32

ruview @ v0.6.8-esp32

integrity

size
59.4 MiB
downloaded
last checked
source https://github.com/ruvnet/RuView · available · github

release notes

ESP32 CSI Node firmware v0.6.8

Tag: v0.6.8-esp32 Date: 2026-05-23 Branch: adr-110-esp32c6 (PR #764) ADR: ADR-110 P9 + Wave 4 — ESP-NOW mesh offset smoothing landed in firmware

What's new vs v0.6.7

ESP-NOW cross-board sync offset is now EMA-smoothed inside the firmware (c6_sync_espnow.c). Every consumer of c6_sync_espnow_get_epoch_us() — including future ADR-029/030 multistatic CSI fusion — gets bounded-jitter timestamps without re-implementing the filter host-side.

New API surface:

Raw offset getter c6_sync_espnow_get_offset_us() stays unchanged for diagnostics. v0.6.6/v0.6.7 fleets see identical wire behavior — the smoothing only affects what get_epoch_us() returns to in-firmware consumers.

Binary cost: +32 bytes (one int64 + one bool + the getter). C6 build still 45 % partition slack on 4 MB single-OTA.

Full empirical evidence in WITNESS-LOG-110 §A0.10.

Known gap (tracked in WITNESS §A0.11)

CSI frames don't yet carry the synced timestamp in the wire bytes — the ADR-018 frame format has no timestamp field. Mesh substrate is shipped and quantified; surfacing the synced clock into per-frame timestamps needs either an ADR-018 v2 (breaking) or a separate UDP sync packet (backwards-compatible). Likely path: separate sync packet, ships in a future release once ADR-029/030 multistatic fusion lights up.

Build artifacts

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

SHA-256 sums in SHA256SUMS.txt.

Flash

Same flash command as v0.6.7 — only the app slot changed.

# ESP32-S3 on COM9 (8 MB)
python -m esptool --chip esp32s3 -p COM9 -b 460800 write_flash \
  0x0     bootloader-s3.bin \
  0x8000  partition-table-s3.bin \
  0xf000  ota_data_initial-s3.bin \
  0x20000 esp32-csi-node-s3-8mb.bin

# ESP32-C6 on COM12 (4 MB)
python -m esptool --chip esp32c6 -p COM12 -b 460800 write_flash \
  0x0     bootloader-c6.bin \
  0x8000  partition-table-c6.bin \
  0xf000  ota_data_initial-c6.bin \
  0x20000 esp32-csi-node-c6-4mb.bin

Validation

Verified live on COM9 + COM12 ESP32-C6 boards during the loop:

download

unix · zip
curl -fL -o v0.6.8-esp32.zip https://ratatoskr.space/pkg/ruview/v0.6.8-esp32.zip
                    printf '%s  %s\n' 'f17b9229358c042dfd8506af8955d62f4a4f4f9da20a9a259b1bed67860fd1a9' 'v0.6.8-esp32.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v0.6.8-esp32.zip"
$out = "v0.6.8-esp32.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f17b9229358c042dfd8506af8955d62f4a4f4f9da20a9a259b1bed67860fd1a9") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.6.8-esp32.tar.gz https://ratatoskr.space/pkg/ruview/v0.6.8-esp32.tar.gz
                    printf '%s  %s\n' '72892953f945c2b30436aa3559b6f9c5a21fe00920588f8047c49e4afab4ce4e' 'v0.6.8-esp32.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v0.6.8-esp32.tar.gz"
$out = "v0.6.8-esp32.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "72892953f945c2b30436aa3559b6f9c5a21fe00920588f8047c49e4afab4ce4e") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v0.6.8-esp32.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.6.8-esp32.zip
                    printf '%s  %s\n' 'f17b9229358c042dfd8506af8955d62f4a4f4f9da20a9a259b1bed67860fd1a9' 'v0.6.8-esp32.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.6.8-esp32.zip"
$out = "v0.6.8-esp32.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f17b9229358c042dfd8506af8955d62f4a4f4f9da20a9a259b1bed67860fd1a9") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.6.8-esp32.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.6.8-esp32.tar.gz
                    printf '%s  %s\n' '72892953f945c2b30436aa3559b6f9c5a21fe00920588f8047c49e4afab4ce4e' 'v0.6.8-esp32.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.6.8-esp32.tar.gz"
$out = "v0.6.8-esp32.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "72892953f945c2b30436aa3559b6f9c5a21fe00920588f8047c49e4afab4ce4e") { throw "sha256 mismatch" }
artifact format size hashes
v0.6.8-esp32.zip zip 59.4 MiB
blake3-24 8d9fb5ffcdd8dd748bbb19935aa9db9da85573c6d917d77a
sha256 f17b9229358c042dfd8506af8955d62f4a4f4f9da20a9a259b1bed67860fd1a9
sha1 1538583840835938f85b1bbafed7654baacaa93d
v0.6.8-esp32.tar.gz tar.gz 57.9 MiB
blake3-24 861ce0c1e0513b4897d7ca3b51e53ea583af09de17d6a1f5
sha256 72892953f945c2b30436aa3559b6f9c5a21fe00920588f8047c49e4afab4ce4e
sha1 17cbc10ab5a558c1f55021d2f1cdfe193e340f49

install

bazel
http_archive(
    name = "ruview",
    urls = ["https://ratatoskr.space/pkg/ruview/v0.6.8-esp32.tar.gz"],
    integrity = "sha256-cokpU/lFwrMENqo1Wbb5xaIf4AkgWI+AR8SeSvq0zk4=",
    strip_prefix = "ruview-v0.6.8-esp32",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v0.6.8-esp32.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "ruview",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.6.8-esp32.tar.gz"],
    integrity = "sha256-cokpU/lFwrMENqo1Wbb5xaIf4AkgWI+AR8SeSvq0zk4=",
    strip_prefix = "ruview-v0.6.8-esp32",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.6.8-esp32.tar.gz",
← v0.6.9-esp32v0.6.7-esp32 →