ruview @ v0.4.3.1-esp32
integrity
- size
- 25.1 MiB
- downloaded
- last checked
- detected
- raw version: universal archives only
release notes
ESP32-S3 CSI Firmware v0.4.3.1 — Watchdog Fix
Patch release for v0.4.3 that fixes a task watchdog crash on Core 1 (#266).
What's Fixed
Task watchdog starvation on Core 1 — The edge DSP task (biquad filters, Welford stats, BPM estimation, multi-person vitals) was CPU-intensive enough to starve the IDLE1 task, triggering the watchdog timer every 5 seconds. The firmware kept running but spammed error logs and could cause instability.
Fix: The DSP task now yields to IDLE after every processed frame (vTaskDelay(1)). At 20 Hz CSI rate this adds ~1 ms per frame — negligible for vitals extraction.
Verified on real ESP32-S3: 0 watchdog triggers in 60 seconds of live WiFi CSI (was every 5 seconds before).
Includes all v0.4.3 fixes
- Fall detection threshold 2.0 → 15.0 rad/s² (#263)
- 3-frame debounce + 5s cooldown for fall alerts
- 4MB flash support (#265)
Flash Instructions
Same as v0.4.3 — see v0.4.3 release notes for full instructions.
8MB boards:
python -m esptool --chip esp32s3 --port COM7 --baud 460800 \
write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m \
0x0 bootloader.bin 0x8000 partition-table.bin \
0xf000 ota_data_initial.bin 0x20000 esp32-csi-node.bin
4MB boards:
python -m esptool --chip esp32s3 --port COM7 --baud 460800 \
write_flash --flash_mode dio --flash_size 4MB --flash_freq 80m \
0x0 bootloader.bin 0x8000 partition-table-4mb.bin \
0xF000 ota_data_initial.bin 0x20000 esp32-csi-node-4mb.bin
download
unix · zip
curl -fL -o v0.4.3.1-esp32.zip https://ratatoskr.space/pkg/ruview/v0.4.3.1-esp32.zip
printf '%s %s\n' '63d0b2770f5a8dcb8195c8e723cb9d2bb382db34c941a64932ae6a43a0d68573' 'v0.4.3.1-esp32.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v0.4.3.1-esp32.zip"
$out = "v0.4.3.1-esp32.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "63d0b2770f5a8dcb8195c8e723cb9d2bb382db34c941a64932ae6a43a0d68573") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.4.3.1-esp32.tar.gz https://ratatoskr.space/pkg/ruview/v0.4.3.1-esp32.tar.gz
printf '%s %s\n' '6a4912cbd8d3b64cd8b5c36e3b88103e442046263eb8a048f88c58fb378a3d19' 'v0.4.3.1-esp32.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v0.4.3.1-esp32.tar.gz"
$out = "v0.4.3.1-esp32.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "6a4912cbd8d3b64cd8b5c36e3b88103e442046263eb8a048f88c58fb378a3d19") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v0.4.3.1-esp32.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.4.3.1-esp32.zip
printf '%s %s\n' '63d0b2770f5a8dcb8195c8e723cb9d2bb382db34c941a64932ae6a43a0d68573' 'v0.4.3.1-esp32.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.4.3.1-esp32.zip"
$out = "v0.4.3.1-esp32.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "63d0b2770f5a8dcb8195c8e723cb9d2bb382db34c941a64932ae6a43a0d68573") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.4.3.1-esp32.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.4.3.1-esp32.tar.gz
printf '%s %s\n' '6a4912cbd8d3b64cd8b5c36e3b88103e442046263eb8a048f88c58fb378a3d19' 'v0.4.3.1-esp32.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.4.3.1-esp32.tar.gz"
$out = "v0.4.3.1-esp32.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "6a4912cbd8d3b64cd8b5c36e3b88103e442046263eb8a048f88c58fb378a3d19") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v0.4.3.1-esp32.zip | zip | 25.1 MiB |
blake3-24 d1b5e194b7384e1bdd38eb3e4babb828faf9e3025c849d96
sha256 63d0b2770f5a8dcb8195c8e723cb9d2bb382db34c941a64932ae6a43a0d68573
sha1 f93fa8035fd125a31a6fc74d45538bb3a68de715
|
| v0.4.3.1-esp32.tar.gz | tar.gz | 24.1 MiB |
blake3-24 001eaed8b79f6e754fd56b16d0ae2566378e1b6445760941
sha256 6a4912cbd8d3b64cd8b5c36e3b88103e442046263eb8a048f88c58fb378a3d19
sha1 e635cba10e7b5a54824af4ab769b66fcf2080d53
|
install
bazel
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v0.4.3.1-esp32.tar.gz"],
integrity = "sha256-akkSy9jTtkzYtcNuO4gQPkQgRiY+uKBI+IxY+zeKPRk=",
strip_prefix = "ruview-v0.4.3.1-esp32",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v0.4.3.1-esp32.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.4.3.1-esp32.tar.gz"],
integrity = "sha256-akkSy9jTtkzYtcNuO4gQPkQgRiY+uKBI+IxY+zeKPRk=",
strip_prefix = "ruview-v0.4.3.1-esp32",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v0.4.3.1-esp32.tar.gz",