
"mmWave room scanning with the ESP32: presence detection without cameras"
mmWave room scanning with the ESP32: presence detection without cameras
Most "smart home presence detection" is one of two things: a PIR sensor that turns the lights off while you're sitting still, or a camera that solves the sitting-still problem by watching you constantly. There's a third option that does the job without either drawback: millimetre-wave radar. Modules like the HLK-LD2410 emit a 24 GHz signal and measure the reflections, detecting a human body by its motion — even the tiny motion of breathing — and reporting presence, moving targets and still targets separately. No image is ever formed, no microphone listens, and nothing leaves the room unless you send it there. Radar sensor modules like the one pictured above are exactly this class of hardware.
Why radar is the privacy-respecting choice
A radar sensor cannot recognise you, cannot record you and cannot be re-purposed into surveillance by a firmware update, because the sensor physically has no capability to capture an image or audio. What it reports is: something human-sized is in this room, moving or still, at roughly which distance. That's all home automation actually needs — occupancy for lighting, heating and alarm logic. For a household with guests, kids or a stated "no cameras indoors" policy, it's the sensor that passes the dinner-table test. The ESPHome LD2410 component documentation describes the protocol: the sensor connects over UART and exposes binary sensors for has_target, has_moving_target and has_still_target, plus per-gate energy readings you can use to tune detection zones.
The build, concretely
You need three things: an LD2410/B/C module (about AU$10–20 from AU electronics suppliers), any ESP32 board, and a USB power point. The wiring is as simple as sensors get — the module runs at 5 V but communicates at 3.3 V over UART, so it wires straight to an ESP32's pins. Two community implementations to start from:
- The amandel/esphome-ld2410 project is a maintained ESPHome external component for the HLK-LD2410 family, with per-gate configuration and tuning documentation.
- The tobsch/ld2410 repo is a working presence-detector configuration built on the ESPHome component, ready to adapt.
ESPHome's native ld2410 platform is now built-in, so the usual path is: flash the ESP32 with ESPHome, add the ld2410 block, and let Home Assistant pick up the entities. Note the doc's wiring constraint: use hardware UART pins at the sensor's default 256000 baud with parity: NONE and stop_bits: 1, or you'll chase phantom dropouts for an evening.
Mapping parts to our shelf
The controller side is our bread and butter:
- ESP32-S3 DevKitC starter kit (A$45.45) — the cleanest controller for a first sensor node, with the sensor pack covering your bench needs.
- StealthDeck Lite (A$104.88) — overkill for a presence sensor, but if you're the sort of person who flashes firmware constantly, it's a CYD with a screen to show live gate energies.
- ESP32-S3 4.3" touch display (A$59.01) — the right board for a wall-mounted node that both senses and displays occupancy.
- For the automation host, an Orange Pi Zero 3 (A$59) running Home Assistant in an OPi case kit keeps the whole stack local — no cloud, which is the entire point of the privacy argument.
Affiliate disclosure: products linked are our own store.
Tuning and placement
LD2410 modules see through plastic and drywall-adjacent materials but not metal or brick, so mount inside the room, not in the corridor. Two tuning realities: fans and curtains produce moving-target false positives (exclude those gates in the config), and detection distance beyond about 5–6 m degrades, so large rooms want two nodes rather than one heroic sensor. Set has_still_target with a generous timeout for desks and couches — still-detection is the whole reason to choose radar over PIR.
The honest limits
Radar doesn't identify. If you need to know who is in the room, that's a different sensor with different ethics, and we'd point you at our threat model for privacy hardware before you choose it. What mmWave gives you is occupancy — reliably, silently, and without a lens pointed at anyone. For most automations that's not a compromise; it's the correct answer.