Joverse Logo
Background
v1.0 STABLE // RUST EDITION

esp-csi-tui-rs

A terminal-based interface for visualizing Wi-Fi Channel State Information using rust and esp32.

The Concept

Traditional Wi-Fi signal metrics (RSSI) only give you "loudness." Channel State Information (CSI) gives you the "texture" of the room. It breaks the signal down into 64 subcarriers, allowing us to "see" how waves bounce off objects and people.

History & Goal

Created during the "Connected Motion" hackathon, this tool was born from a frustration with heavy, Python/C++ frameworks that were unsafe or lacked support for modern ESP32 families.

The Goal: Build a zero-latency, memory-safe monitor that runs directly in the terminal, capable of processing high-frequency CSI packets on embedded systems without crashing.

System Architecture

ESP32 CSI Collector (Sniffer/Station/AP)
⬇ USB Serial / WiFi UDP
RUST Async Runtime & Math Engine
TUI
Ratatui
VIZ
Rerun.io
ESP32 Board
ESP-32
ESP32 Camera
ESP32-CAM

Hardware Versatility

The system leverages the ESP32 to capture CSI packets. Depending on your mission profile, the device can be configured in one of three modes:

Sniffer

Passive Intercept. Monitors all traffic on a specific channel.

Station

Network Uplink. Connects to a router and injects ping traffic.

AP Mode

Broadcast Beacon. Acts as an access point to solicit connections.

Powered By

Rust

Rust

Memory-safe systems programming for the core logic and serial communication.

Ratatui

Ratatui

The underlying framework for building the rich Terminal User Interface.

ESP32

ESP32

Hardware target. Supports Sniffer, Station, and AP modes.

Rerun.io

Rerun.io

High-performance visualizer for streaming 3D waterfall data and complex histograms.

Visual Intelligence

Live streaming to multiple outputs.

TERMINAL_VIEW
RERUN_3D_VIEW

Interface Deep Dive

Interactive walkthrough of the terminal capabilities.

Configuration Settings
1 / 8

Configuration Settings

Set operation protocols, target specific SSIDs, configure packet injection rates, and toggle hardware flags before initialization.