Complete end-to-end WiFi CSI capture pipeline verified on real hardware: - ESP32-S3 firmware: WiFi STA + promiscuous mode CSI collection, ADR-018 binary serialization, UDP streaming at ~20 Hz - Rust aggregator CLI binary (clap): receives UDP frames, parses with Esp32CsiParser, prints per-frame summary (node, seq, rssi, amp) - UDP aggregator module with per-node sequence tracking and drop detection - CsiFrame bridge to detection pipeline (amplitude/phase/SNR conversion) - Python ESP32 binary parser with UDP reader - Presence detection confirmed: motion score 10/10 from live CSI variance Hardware verified: ESP32-S3-DevKitC-1 (CP2102, MAC 3C:0F:02:EC:C2:28), Docker ESP-IDF v5.2 build, esptool 5.1.0 flash, 20 Rust + 6 Python tests pass. Co-Authored-By: claude-flow <ruv@ruv.net>
36 lines
928 B
TOML
36 lines
928 B
TOML
[package]
|
|
name = "wifi-densepose-hardware"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
description = "Hardware interface abstractions for WiFi CSI sensors (ESP32, Intel 5300, Atheros)"
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/ruvnet/wifi-densepose"
|
|
|
|
[features]
|
|
default = ["std"]
|
|
std = []
|
|
# Enable ESP32 serial parsing (no actual ESP-IDF dependency; parses streamed bytes)
|
|
esp32 = []
|
|
# Enable Intel 5300 CSI Tool log parsing
|
|
intel5300 = []
|
|
# Enable Linux WiFi interface for commodity sensing (ADR-013)
|
|
linux-wifi = []
|
|
|
|
[dependencies]
|
|
# CLI argument parsing (for bin/aggregator)
|
|
clap = { version = "4.4", features = ["derive"] }
|
|
# Byte parsing
|
|
byteorder = "1.5"
|
|
# Time
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
# Error handling
|
|
thiserror = "1.0"
|
|
# Logging
|
|
tracing = "0.1"
|
|
# Serialization
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
|
|
[dev-dependencies]
|
|
approx = "0.5"
|