> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waveyhq.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Still-Person Presence Detection via WiFi Micro-Doppler

> Detect stationary occupants through breathing micro-Doppler on WiFi CSI phase when PIR and cameras fail. Requires clean phase, sufficient SNR, and a quiet environment.

The hardest sensing case for conventional sensors is a person who is not moving. PIR reports empty. Cameras work but raise privacy concerns. Wavey can detect micro-presence — a still body whose chest rises and falls with respiration — through micro-Doppler analysis of WiFi CSI phase.

## Micro-Doppler physics

Breathing displaces the chest wall by a few millimeters at 0.1–0.5 Hz (6–30 breaths per minute). This creates a **micro-Doppler** modulation on the CSI phase: a narrowband periodic signal far weaker than footstep energy but structurally distinct from an empty room.

## Detection requirements

<Steps>
  <Step title="Clean phase">
    CFO/SFO removed via sanitization; raw phase is unusable at this scale.
  </Step>

  <Step title="Sufficient SNR">
    The subject should be within a few meters of a link, not at the edge of coverage.
  </Step>

  <Step title="Quiet environment">
    Another person walking nearby masks the periodic component.
  </Step>
</Steps>

Bandpass filtering in the respiration band (0.1–0.5 Hz) followed by periodicity detection (autocorrelation or peak finding in the spectrum) confirms presence even when macro-motion variance is near zero.

A complementary approach treats the breathing spectrogram as an **image**: in-car child-presence detection uses CSI power autocorrelation for macro motion and spectrogram enhancement plus CNN for breathing classification — 99% detection at 5 GHz with 58 subcarriers sampled at 30 Hz. The image-classification path on spectrograms is increasingly common when packet rate and SNR are sufficient; ESP32 deployments need careful placement and consistent traffic to reach comparable confidence.

## Still person vs empty room

The decision is SNR-dependent. An empty room has no periodic component in the respiration band. A still person adds one. The signal-to-noise ratio depends on distance, body orientation relative to the link, and how much multipath the torso perturbs.

This is why presence is rung 5 on the [detection ladder](/concepts/detection-ladder) — achievable with good setup, not guaranteed everywhere. Wavey treats it as **awareness**, not a medical vitals measurement.

## Why PIR fails here

PIR detects changes in infrared radiation within a narrow cone. A motionless person emits steady IR — no change, no trigger. The sensor reports empty after its timeout.

CSI does not measure heat. It measures how the radio channel changes. Periodic chest displacement modulates phase even when the person is otherwise still. This is a fundamental sensing mechanism difference, not a software improvement on the same hardware.

## Where presence matters

* Occupancy that does not time out on a still reader, sleeper, or worker
* [Elder-care monitoring](/use-cases/elder-care-monitoring) — confirming someone is in the room
* [Smart-home automation](/use-cases/smart-home-automation) — lights and climate that hold while you are present

## Further Reading

<CardGroup cols={2}>
  <Card title="Sensing Pipeline" icon="layers" href="/concepts/sensing-pipeline">
    Phase sanitization before micro-motion inference
  </Card>

  <Card title="How It Works" icon="zap" href="/concepts/how-it-works">
    Macro vs micro-Doppler bands
  </Card>

  <Card title="Elder Care Monitoring" icon="heart" href="/use-cases/elder-care-monitoring">
    Ambient awareness for aging in place
  </Card>

  <Card title="Getting Started" icon="rocket" href="/getting-started">
    Set up your first Wavey deployment
  </Card>
</CardGroup>
