Skip to content
MCU Atlas
ESP32ESP32-S3

Wi-Fi Sensing Kit: three ESP32-S3 boards that tell what you're doing from Wi-Fi

Three ESP32-S3 boards learn to recognise sitting, walking, squatting and more from Wi-Fi signals alone, with your webcam as the teacher.

Difficulty:IntermediateSource available

What it is

A kit that turns three ESP32-S3 boards into Wi-Fi motion sensors. After a webcam-supervised training session they recognise what you're doing (sitting, walking, squatting, jumping, or nobody home) from Wi-Fi alone.

What you need

How hard

Intermediate. No soldering, but you build and flash ESP-IDF firmware through the kit's Python scripts, edit a YAML config and spend about an hour on setup and training (including roughly 10 minutes of squats).

Key Facts

  • Boards: 3 × ESP32-S3 with at least 8 MB flash, e.g. ESP32-S3-DevKitC-1 (N16R8)
  • Firmware: RuView esp32-csi-node v0.8.8 plus this kit's patch, built with ESP-IDF 5.4 or 5.5
  • Network: 2.4 GHz Wi-Fi only (the boards can't join 5 GHz)
  • Author's result: 79.5% correct over 8 movements (guessing: 12.5%)
  • Training: webcam + in-browser MediaPipe pose model, about 9 minutes of prompts
  • Host: macOS or Linux (Windows works for the dashboards)

About This Project

Wi-Fi Sensing Kit teaches three ESP32-S3 boards to recognise what you're doing in a room (sitting, squatting, spinning, walking, jumping, standing, or nobody home) from Wi-Fi channel state information alone. It is built on RuView's open-source CSI firmware with two changes: each board lights up in its own colour, and the boards measure each other as well as the router, so the sensing links cross the room instead of all fanning out from the router. While you train, your webcam is the teacher: a MediaPipe pose model runs in the browser and labels your movements, then you cover the camera and the Wi-Fi keeps guessing. In the author's test (one person, one living room, a separate test session) it got 79.5% right across 8 movements, against 12.5% for guessing; router links alone scored 76.3%. It does not draw a skeleton, track your exact position or carry over to another room, another person or boards that have moved; you retrain. Three local dashboards show live CSI heatmaps, a room map where each link lights up as you cross it, and the movement model. Wi-Fi sensing works through walls, so only point it at people who know about it.

Source & Attribution

Source: GitHub
License: MIT
Last verified: 10/19/2026
Wi-Fi Sensing Kit: three ESP32-S3 boards that tell what you're doing from Wi-Fi

Illustration

How to Build It
Three ESP32-S3 boards running patched RuView CSI firmware learn your movements from Wi-Fi signals. A webcam labels the training data in the browser, then the Wi-Fi works on its own.

Parts Needed

Steps

  1. 1

    Install

    Clone the repo, create a Python virtual environment and run install.py. It installs the Python packages and downloads the pose model (about 28 MB). Copy config.example.yaml to config.yaml.

  2. 2

    Wi-Fi details

    Save your Wi-Fi password alone in a text file (default ~/.wifi-sensing-pass) and chmod 600 it. Put the network name in config.yaml.

  3. 3

    Find, build and flash

    Plug all three boards in over their native USB port and run firmware/discover.py, then paste the boards list into config.yaml. firmware/build.py downloads RuView v0.8.8, applies the patch and builds; firmware/flash.py flashes each board, which joins your Wi-Fi and lights up in its colour.

  4. 4

    Router address

    Run firmware/discover.py --router, set router_bssid in config.yaml, then rebuild and flash once more with --app-only.

  5. 5

    Place the boards

    Put the boards around the room at chest height on chargers, with nothing metal in between.

  6. 6

    Train and test

    Run kit/server.py and open http://127.0.0.1:8932. On the Movement page, frame yourself head to feet, record three training rounds (about 9 minutes), then a test round. Cover the camera to see Wi-Fi alone, and run kit/evaluate.py for your accuracy.

Bill of Materials

Parts list

3 parts · 2 linked

Heads up: some Buy links are affiliate links. If you buy through one, MCU Atlas may earn a small commission at no extra cost to you. It never changes which parts we list. How this works

Not included: 2.4 GHz Wi-Fi router, Computer with a webcam (macOS or Linux)

Download CSV

Related Projects

Watchy: open-source ESP32 e-ink smartwatch
Illustration
ESP32
An open-source smartwatch with a 1.54in e-paper screen and ESP32, hackable watch faces in Arduino.
Beginner·Code
2 parts listed
Low-power ESP32 e-paper weather display (7.5in)
Illustration
ESP32
A wall-mounted 7.5in e-paper weather display on an ESP32 that runs for months on one battery charge.
Intermediate·Code
5 parts listed
OpenEPaperLink: reuse e-ink shelf labels with an ESP32 access point
Illustration
ESP32ESP32-S3
Turns cheap second-hand electronic shelf labels into a Wi-Fi-managed e-ink display fleet via an ESP32 access point.
Advanced·Code
6 parts listed