Choose your detection profile
ESPectre includes two built-in production motion detectors: Lightweight Detection and High-Accuracy Detection. Both analyze the same Wi-Fi CSI stream and expose the same motion state. Lightweight is the published default and leaves more CPU and working memory available; High Accuracy uses a compact pretrained model to improve detection quality and generalization on the maintained corpus.
Two built-in detectors
Lightweight Detection
Leaves more CPU time and working memory for the rest of the firmware. It adapts its threshold to the installed room during a quiet startup calibration.
lightweight
High-Accuracy Detection
Uses additional feature state and a compact neural network for higher measured accuracy and better cross-environment transfer in the maintained corpus. It starts without quiet-room threshold calibration.
high_accuracy
Choose in thirty seconds
- Choose Lightweight when sensing shares a smaller chip with displays, connectivity, Matter, OTA, or other application services.
- Choose High Accuracy when false-positive control, transfer across rooms, and detection quality are the priority.
- Keep the Lightweight default when you are unsure, then compare High Accuracy in the same installed position if your frontend supports runtime switching.
What changes
Runtime cost
Lower CPU and working-memory use.
More feature state and neural-inference work.
Detection quality
A production baseline with lower measured accuracy and weaker transfer across environments.
Higher measured accuracy and better cross-environment transfer in the maintained corpus.
Startup
Adapts its threshold using about ten seconds of clean, ready quiet-room coverage.
Skips threshold calibration, then starts after CSI and its feature window are ready.
Training required from you
None.
None; the pretrained model is included in the firmware.
Best fit
Constrained devices or products reserving resources for other services.
Products that prioritize detection quality and can afford the additional runtime cost.
These are detector choices, not power modes. ESPectre benchmarks detector CPU and memory separately and makes no whole-device energy-saving claim for either profile.
How to select it
Choose the frontend or integration you use. Native and ESPHome persist a runtime selection; Matter makes the choice at build time.
Native MQTT shell
Connect to the broker and select the discovered device. The accepted profile is applied immediately and persists across reboots:
./espectre mqtt --broker 192.168.1.20
espectre> set_detector high_accuracy
espectre> info
Use set_detector lightweight to switch back.
Home Assistant exposes the persisted runtime detector selector. In YAML, detection_algorithm sets the initial profile when no saved selection exists:
espectre:
detection_algorithm: lightweight # or high_accuracy
Matter supports both detectors as build-time choices. Published images use Lightweight, and the frontend does not currently expose a runtime profile control. Select High Accuracy through the shared ESP-IDF sensing configuration when building a local image.
Set the detector in the runtime configuration before starting an embedded integration:
espectre::RuntimeConfig config;
config.detection_algorithm = espectre::DetectionAlgorithm::HIGH_ACCURACY;
Evidence and deeper reference
The SDK detector reference follows CSI through temporal admission, subcarrier processing, feature extraction, and on-device inference. It also covers the performance evidence available for both profiles.