Passive Wi-Fi signal analysis for locating active WLAN-capable devices. An ESP32-C5 captures 802.11 frames in monitor mode (2.4/5 GHz) and streams source MAC, destination MAC and RSSI over BLE to a mobile app.
firmware/ Rust no_std firmware for the ESP32-C5 (sniffing, BLE GATT server)
mobile/ Flutter app (BLE client, RSSI graph, haptic feedback, OUI lookup)
paper/ Bachelor thesis source (Typst)
defense/ Defense presentation source (Typst)
cd firmware
cargo build --releaseFlash and monitor:
cargo run --releaseRequires the espflash runner (see .cargo/config.toml) and a toolchain with the riscv32imac-unknown-none-elf target, as pinned in rust-toolchain.toml.
cd mobile
flutter runThe app targets iOS and Android. It connects to the sensor via BLE, displays the RSSI history, provides haptic guidance, and resolves MAC addresses to vendors from the bundled OUI database.
GNU AGPL v3. See LICENSE.
See CITATION.bib.