github ruvnet/RuView v0.5.4-esp32
ESP32-S3 CSI Firmware v0.5.4 — Cognitum Seed Integration

7 hours ago

ESP32-S3 CSI Firmware v0.5.4 — Cognitum Seed Integration

TL;DR

Your ESP32 can now remember what it senses. By connecting to a Cognitum Seed every presence detection, breathing measurement, and motion event gets stored as a searchable vector with cryptographic proof it happened.

What Changed (v0.5.3 → v0.5.4)

Feature v0.5.3 v0.5.4
CSI sensing ✅ Real-time only Real-time + persistent storage
Data retention ❌ Lost on reboot RVF vector store on Cognitum Seed
Similarity search ❌ None kNN queries ("find states like this one")
Data integrity ❌ None SHA-256 witness chain + Ed25519 signing
AI integration ❌ None 114-tool MCP proxy (Claude, GPT can query sensors)
Environmental sensors ❌ CSI only + BME280, PIR, vibration, ADC (via Seed)
Feature vectors ❌ Raw only 8-dim normalized @ 1 Hz (new packet 0xC5110003)
Security Basic Bearer tokens, TLS, source filtering, NaN rejection

New: 8-Dimension Feature Vector

Every second, the ESP32 sends a compact 48-byte packet summarizing what it sees:

Dim What it measures Example
0 Is someone there? (presence) 0.45 = maybe, 0.95 = definitely
1 Are they moving? (motion) 0.0 = still, 0.87 = active
2 Breathing rate 0.69 = 20.8 BPM (normal)
3 Heart rate 0.75 = 90 BPM (normal)
4 Signal quality (phase variance) Higher = more activity
5 How many people? 0.25 = 1 person, 0.50 = 2
6 Fall detected? 0.0 = no, 1.0 = yes
7 Signal strength (RSSI) 0.54 = -46 dBm (good)

These vectors are stored on the Cognitum Seed and can be searched: "Find the 10 most similar states to right now" — useful for anomaly detection, pattern recognition, and environment fingerprinting.

Architecture

ESP32-S3 ($9)  ──UDP──>  Your laptop  ──HTTPS──>  Cognitum Seed ($15)
  WiFi CSI capture          Bridge script            Stores vectors forever
  28 Hz raw frames          Batches & validates      kNN similarity search
  1 Hz feature vectors      NaN rejection            Witness chain (proof)
  1 Hz vital signs          Source filtering          114-tool AI proxy

How to Use

# 1. Flash firmware to ESP32-S3
python -m esptool --chip esp32s3 --port COM9 --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

# 2. Set WiFi + target (your laptop IP)
python firmware/esp32-csi-node/provision.py --port COM9 \
  --ssid "YourWiFi" --password "secret" \
  --target-ip 192.168.1.20 --target-port 5006

# 3. Pair with Cognitum Seed (plug in via USB first)
curl -sk -X POST https://169.254.42.1:8443/api/v1/pair/window
curl -sk -X POST https://169.254.42.1:8443/api/v1/pair \
  -H 'Content-Type: application/json' -d '{"client_name":"my-laptop"}'

# 4. Run the bridge
export SEED_TOKEN="<token-from-step-3>"
python scripts/seed_csi_bridge.py \
  --seed-url https://169.254.42.1:8443 --token "$SEED_TOKEN" --validate

# 5. Check what's stored
python scripts/seed_csi_bridge.py --token "$SEED_TOKEN" --stats

No Cognitum Seed? The ESP32 firmware works exactly as before — all existing features (CSI streaming, vitals, presence, fall detection, mesh TDM) are unchanged. The Seed integration is additive.

Learn more: Cognitum.one · ADR-069 · User Guide

Validation Results

Test Result
Rust workspace 1,463 passed, 0 failed
Python proof VERDICT: PASS
Firmware size 844 KB (55% flash free)
Feature vectors 1 Hz, 8-dim, all in [0.0, 1.0]
Vitals ↔ Features HR delta=0.0, BR delta=0.0
Seed ingest 941 vectors, 100% kNN match
Witness chain SHA-256 verified (1,325 entries)
Regression 6/6 PASSED — NO REGRESSIONS

Binary Hashes (SHA-256)

cf05de2b  esp32-csi-node.bin   (844 KB)
cbb8e3ba  bootloader.bin       (19 KB)
4c2cc4ff  partition-table.bin  (3 KB)
7d2c7ac4  ota_data_initial.bin (8 KB)

Full Changelog: v0.5.3-esp32...v0.5.4-esp32

Don't miss a new RuView release

NewReleases is sending notifications on new releases.