DETECTION · 3 MIN READ

Choose your detection profile

ESPectre has two motion detectors. Both read the same Wi-Fi CSI and report the same motion state. Lightweight is the default and uses less CPU and memory. High Accuracy uses a small neural network and gives fewer false alarms and missed detections in our tests.

An ESP32 branching one Wi-Fi signal into short and deep processing paths
One CSI stream, two detectors. You can switch between them while the device runs.
Sections

How the two profiles differ

Comparison of the Lightweight and High Accuracy detection profiles
LightweightHigh Accuracy
How it decidesCombines two signal features with fixed weights, then compares the result with a threshold learned in your room.Feeds eight signal features to a small neural network built into the firmware. It starts from a default threshold instead of learning one.
StartupCalibrates on about ten seconds of quiet data. Movement in that window extends it, up to about thirty seconds.No calibration. It starts once it has a full window of CSI, a few seconds after boot.
CostLess CPU and memory.More CPU and memory for the extra features and the network.
Choose it whenThe chip is small or also runs a display, Matter, or other services.Fewer false alarms and missed movement matter more than CPU.

If unsure, start with Lightweight, then try High Accuracy in the same spot with the same traffic source, and keep the one that works better in your room. Neither profile needs training from you, and neither is a power-saving mode: power use has not been measured.

Keep the room still while Lightweight calibrates. After moving the sensor, restart it so Lightweight calibrates in the new position.

How to select it

Pick your firmware type. You can change the profile while the device runs, and the choice is saved. On Matter, this setting is available over Direct HTTP, not through the standard Matter controls.

Native MQTT shell

Connect to the broker and select the device. The change applies at once and survives reboots:

./espectre mqtt --broker 192.168.1.20
espectre> update_sensing detector=high_accuracy

Check that the shell reports an accepted result, then open Live motion on the same device and verify Detection mode. MQTT clients can also read detector from the retained sensing topic. Use update_sensing detector=lightweight to switch back.

Choose a traffic source

The traffic source determines how the sensor gets its CSI measurements. The detection profile determines how it interprets them. You choose these settings separately, and both profiles need a regular stream of usable CSI.

Traffic sourceWhen to use it
Ping (ICMP)The default. Sends ping requests and measures CSI from the replies. Keep it when CSI arrives regularly.
DNS (UDP) / DNS (TCP)Alternatives when the router blocks or limits ping. The destination must answer DNS queries over the selected protocol.
Wi-Fi rawSends Wi-Fi frames directly and measures CSI from their acknowledgments. Unavailable on ESP32-C6.
External deviceReceives traffic from another device, such as the Home Assistant traffic generator app. The external sender must stay running for sensing to continue.

In Live motion, open Advanced sensing settings and choose Wi-Fi traffic source. The device saves your choice and never switches sources on its own. Changing the source restarts Lightweight calibration.

Check CSI occupancy in Diagnostics: it shows how much of the detector window contains usable measurements. A high packet count alone does not guarantee regular CSI, and High Accuracy also needs enough input before it can detect motion. For missing or irregular input, follow the traffic troubleshooting steps.

Measured results

The SDK detector reference lists recall, false-positive rate, detection time, and CPU load for both profiles on the same recordings, and explains how each detector works step by step.

Guides