# Cheatsheet ## Environment Setup ```bash source ~/esp/esp-idf/export.sh # Activate ESP-IDF (every shell) ``` ## Build & Flash ```bash cd ~/git/esp32-hacking/get-started/csi_recv_router idf.py set-target esp32 # Set chip target idf.py menuconfig # Configure WiFi/UDP settings idf.py build # Compile firmware idf.py -p /dev/ttyUSB0 flash # Flash to device idf.py -p /dev/ttyUSB0 monitor # Serial monitor (Ctrl+] to exit) idf.py -p /dev/ttyUSB0 flash monitor # Flash + monitor combined idf.py fullclean # Clean build directory idf.py reconfigure # Re-fetch managed components ``` ## Deployed Sensors | Name | IP | Location | |------|-----|----------| | muddy-storm | 192.168.129.29 | Living Room | | amber-maple | 192.168.129.30 | Office | | hollow-acorn | 192.168.129.31 | Kitchen | **Target:** `192.168.129.11:5500` (Pi) ## Test CSI Reception ```bash nc -lu 5500 # Listen for CSI packets socat UDP-RECV:5500 STDOUT # Alternative listener nc -lu 5500 | head -1 # See one packet nc -lu 5500 | wc -l # Count packets/sec (Ctrl+C) ``` ## Firmware Variants | Firmware | Dir | Output | Needs | |----------|-----|--------|-------| | csi_recv_router | `get-started/csi_recv_router/` | UDP | WiFi router | | csi_recv | `get-started/csi_recv/` | Serial | csi_send device | | csi_send | `get-started/csi_send/` | N/A | csi_recv device | ## Key Config (menuconfig) | Path | Setting | |------|---------| | Example Connection Configuration → SSID | WiFi network name | | Example Connection Configuration → Password | WiFi password | | CSI UDP Configuration → IP | `192.168.129.11` | | CSI UDP Configuration → Port | `5500` | ## CSI Data Format ``` CSI_DATA,seq,mac,rssi,rate,sig_mode,mcs,cwb,smoothing,not_sounding, aggregation,stbc,fec_coding,sgi,noise_floor,ampdu_cnt,channel, secondary_channel,timestamp,ant,sig_len,rx_state,len,first_word,"[I,Q,...]" ``` ## Source Paths | File | Purpose | |------|---------| | `get-started/csi_recv_router/main/app_main.c` | Main firmware source | | `get-started/csi_recv_router/main/Kconfig.projbuild` | UDP target config | | `get-started/csi_recv_router/sdkconfig.defaults` | SDK defaults | | `get-started/csi_recv_router/main/idf_component.yml` | Dependencies | | `get-started/csi_recv_router/CMakeLists.txt` | Build config | ## ESP-IDF Paths | Path | Contents | |------|----------| | `~/esp/esp-idf/` | ESP-IDF v5.5.2 | | `~/esp/esp-csi/` | Original esp-csi examples | | `~/.espressif/tools/` | Xtensa toolchain | ## USB Serial ```bash ls /dev/ttyUSB* /dev/ttyACM* # Find connected devices dmesg | tail # Check USB detection sudo usermod -aG dialout $USER # Fix permissions (re-login) ```