Open-source WiFi sensing platform that uses ESP32 CSI signals to detect presence, breathing, heart rate and movement without cameras.
francescopace/espectre
Turns an ESP32 into a private, local Wi-Fi motion sensor that detects movement from changes in Wi-Fi signals, with no camera or microphone.
- Stars
- 9,665
- Forks
- 733
- Open issues
- 14
- Last commit
- 2 days ago
What is it?
ESPectre runs on supported ESP32 boards and reads channel state information (CSI) from the Wi-Fi signals already present in a room. When someone moves, the signal paths change, and the device reports motion and a movement score in real time. Processing happens on the device, so no cloud service is needed, and no camera, microphone, wearable, or radar hardware is required.
The project provides several firmware paths: a Native frontend with MQTT and Home Assistant MQTT Discovery, an ESPHome frontend, a Matter occupancy-sensor frontend, and a MicroPython implementation called Micro-ESPectre. It also includes an embeddable C++ SDK, a local HTTP API, browser flashing and monitoring tools, and a host CLI for managing devices.
The repository publishes a CSI dataset, trained model weights, a feature ledger of tested and rejected experiments, and performance reports. ESPectre detects changes in the radio environment only; it does not identify or count people. The code is GPLv3, with a commercial license available for eligible parts.
Key features
- 01Detects motion from Wi-Fi CSI on ESP32-C6, C5, C3, S3, S2, and classic ESP32 boards.
- 02Runs entirely on the device, with no cloud connection required.
- 03Integrates with Home Assistant through ESPHome or MQTT, and appears as a Matter occupancy sensor.
- 04Provides a local HTTP API and an embeddable C++ SDK for custom firmware.
- 05Includes browser-based flashing, device settings, and a live monitor.
Use cases
- Turning on lights or a display when someone enters a room.
- Adjusting heating based on whether a room is in use.
- Sending an alert when movement is detected in an area that should be empty.
- Adding presence-style sensing to a Home Assistant setup without cameras.
Quick start
- 1
Open the Flash tool in desktop Chrome or Edge
- 2
Connect a supported ESP32 over USB, choose firmware, and complete Wi-Fi provisioning
- 3
Open Monitor to watch motion and tune detection
Things to know
- Requires a supported ESP32 board and a 2.4 GHz Wi-Fi 4 network; plan one board per room.
- Matter controller compatibility is still limited and not fully tested.
- GPLv3 copyleft applies, so closed-source firmware needs a separate commercial license.
Topics
FAQ
- What is espectre?
- Turns an ESP32 into a private, local Wi-Fi motion sensor that detects movement from changes in Wi-Fi signals, with no camera or microphone. ESPectre runs on supported ESP32 boards and reads channel state information (CSI) from the Wi-Fi signals already present in a room. When someone moves, the signal paths change, and the device reports motion and a movement score in real time. Processing happens on the device, so no cloud service is needed, and no camera, microphone, wearable, or radar hardware is required.
- Is espectre free to use? What license does it have?
- espectre is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is espectre still maintained?
- Actively maintained. The last commit to espectre was on Oct 19, 2026.
- What can I use espectre for?
- Turning on lights or a display when someone enters a room. Adjusting heating based on whether a room is in use. Sending an alert when movement is detected in an area that should be empty. Adding presence-style sensing to a Home Assistant setup without cameras.
- How do I install espectre?
- Open the Flash tool in desktop Chrome or Edge Connect a supported ESP32 over USB, choose firmware, and complete Wi-Fi provisioning Open Monitor to watch motion and tune detection
- Where can I get espectre?
- The source code and installation instructions are on GitHub: https://github.com/francescopace/espectre
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An open-source, 3D-printable mini quadruped robot built on the ESP32 with an OLED face and servo-driven walking.
Open source SDKs and firmware for building your own Muse gadgets on ESP32 boards and Linux devices like Raspberry Pi.
An ESP32 desk display that shows your Claude Code usage limits, with an animated mascot that reacts to prompts and alerts you when a session needs input.
An open-source ESP32 emulator in Rust that runs real firmware on your computer or in a browser, without hardware.
A lean Python 3 implementation that runs on microcontrollers and other resource-constrained devices, with hardware access modules.