ruview @ v0.8.0-esp32
integrity
- size
- 61.3 MiB
- downloaded
- last checked
release notes
Headline: the C6 becomes the precision instrument of the fleet
All binaries in this release are built with ESP-IDF v5.5.2 — the first release where the ESP32-C6 delivers true HE-LTF CSI: 256 bins / 242 active HE20 tones per frame at 78.125 kHz tone spacing (4× the spectral density of any HT capture). Discovered and first measured by @stuinfla in #1005: the IDF v5.4 driver blob silently downconverted HE links to 64-subcarrier HT; v5.5.2 delivers the real thing. Independently replicated on a second rig before this release (84% of frames at 532 B / PPDU 0x01 HE-SU; WITNESS-LOG-110 §B1 now RESOLVED WITH MEASUREMENT from two rigs).
What's in the binaries
- esp32-csi-node-c6.bin + bootloader-c6 + partition-table-c6 — C6 4MB, HE-LTF capable out of the box on any 11ax 2.4 GHz AP (no toolchain or rebuild needed)
- esp32-csi-node.bin (S3 8MB) + bootloader + partition-table + ota_data_initial — hardware-validated on ESP32-S3 (HT format unchanged; S3 silicon is HT-only)
- esp32-csi-node-4mb.bin + partition-table-4mb — S3 4MB variant
SHA256SUMS.txtfor all artifacts
Firmware changes
- #1005 fix:
c6_sync_espnow.cESP-NOW send-callback guard nowESP_IDF_VERSION >= VAL(5,5,0)(Espressif backported the v6 signature to v5.5) — building from source with IDF 5.5.x works again - ADR-061 fuzz-harness stubs for the #954 self-ping includes (un-breaks the fuzz CI broken since #985)
Host-side changes (required for HE frames — update your host before flashing C6 nodes!)
- sensing-server + CLI calibrate/room-watch parsers:
n_subcarriersnow read as u16 (256-bin frames previously decoded as zero subcarriers), corrected rssi/seq offsets (RSSI was always 0), PPDU type (byte 18) surfaced as a typed field - Per-node grid gate: interleaved HT minority frames never mix into an HE baseline window
- HE-aware bandwidth classification; verbatim live HE/HT frames embedded as regression fixtures
- ADR-135 calibration:
wifi-densepose calibrate --tier he20consumes 242-tone baselines today
Validation
- C6: live bench capture, 84%/1,525 frames at 532 B HE-SU into an ADR-135 He20 baseline (600/600 windows)
- S3: v5.5.2 build flashed and streaming real CSI (148 B HT, correct PPDU)
- 765 host tests green; full CI green including the repaired fuzz layer
Credit: @stuinfla (#1005) for the discovery, measurement, and the build fix.
🤖 Generated with claude-flow
download
unix · zip
curl -fL -o v0.8.0-esp32.zip https://ratatoskr.space/pkg/ruview/v0.8.0-esp32.zip
printf '%s %s\n' '7fd8997714fd0b1fe80587aaf997b9297b5756a29cd2cb00c2a9922790249de8' 'v0.8.0-esp32.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v0.8.0-esp32.zip"
$out = "v0.8.0-esp32.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7fd8997714fd0b1fe80587aaf997b9297b5756a29cd2cb00c2a9922790249de8") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.8.0-esp32.tar.gz https://ratatoskr.space/pkg/ruview/v0.8.0-esp32.tar.gz
printf '%s %s\n' 'e2ac8f194034c0392a4d52a11a559f6b97d623e038ba53fc10b0730bfde96c06' 'v0.8.0-esp32.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v0.8.0-esp32.tar.gz"
$out = "v0.8.0-esp32.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e2ac8f194034c0392a4d52a11a559f6b97d623e038ba53fc10b0730bfde96c06") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v0.8.0-esp32.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.8.0-esp32.zip
printf '%s %s\n' '7fd8997714fd0b1fe80587aaf997b9297b5756a29cd2cb00c2a9922790249de8' 'v0.8.0-esp32.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.8.0-esp32.zip"
$out = "v0.8.0-esp32.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7fd8997714fd0b1fe80587aaf997b9297b5756a29cd2cb00c2a9922790249de8") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.8.0-esp32.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.8.0-esp32.tar.gz
printf '%s %s\n' 'e2ac8f194034c0392a4d52a11a559f6b97d623e038ba53fc10b0730bfde96c06' 'v0.8.0-esp32.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.8.0-esp32.tar.gz"
$out = "v0.8.0-esp32.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e2ac8f194034c0392a4d52a11a559f6b97d623e038ba53fc10b0730bfde96c06") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v0.8.0-esp32.zip | zip | 61.2 MiB |
blake3-24 2e90fa3450d60433a3633d6ff1a1c942288fe17570b532f9
sha256 7fd8997714fd0b1fe80587aaf997b9297b5756a29cd2cb00c2a9922790249de8
sha1 74fdfd5f561fd2cc0dfc7b00bd995e27db0567f7
|
| v0.8.0-esp32.tar.gz | tar.gz | 59.4 MiB |
blake3-24 faf323a4a49e3ac951699af58ec85811834e083e0767a75d
sha256 e2ac8f194034c0392a4d52a11a559f6b97d623e038ba53fc10b0730bfde96c06
sha1 1d5281ab857ff157a097d35e09251745bef12985
|
install
bazel
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v0.8.0-esp32.tar.gz"],
integrity = "sha256-4qyPGUA0wDkqTVKhGlWfa5fWI+A4ulP8ELBzC/3pbAY=",
strip_prefix = "ruview-v0.8.0-esp32",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v0.8.0-esp32.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.8.0-esp32.tar.gz"],
integrity = "sha256-4qyPGUA0wDkqTVKhGlWfa5fWI+A4ulP8ELBzC/3pbAY=",
strip_prefix = "ruview-v0.8.0-esp32",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.8.0-esp32.tar.gz",