For three years the "Simple" option in ESPHome's LD2420 operating mode select did not do what it said. Change #21651 by J. Nick Koston (bdraco), merged into the development branch on 26 October 2026, makes it actually switch the HLK-LD2420 mmWave presence radar into simple reporting. The fix is expected in ESPHome 2026.11, unless it is backported to a 2026.10.x patch release first.
What was wrong
The LD2420 component has offered Normal, Calibrate and Simple modes since it was added in ESPHome 2023.11.0 (change #4847). Choosing Simple only changed ESPHome's own state: the select showed Simple, but the component never sent the new reporting mode to the module. On module firmware 1.5.4 and newer, the radar kept sending energy frames as before.
Applying the configuration made it worse. It always forced the select back to Normal, so a module set to Simple by other means would not stay there.
The change description says later rewrites of the select kept that behaviour, so this is not a regression in 2026.10. It simply never worked.
Why Simple mode is worth having
The bug was reported earlier the same day, in issue #21643 against ESPHome 2026.10.0. The reporter, who checked the radar's UART output with a separate USB adapter, explains the appeal. In Simple mode the module reports only on/off and distance, decided by its gate trigger and still thresholds, and the OT2 pin follows that state. In their experience it reacts at least about half a second faster than presence detection in Normal (energy) mode. Until now, the only way to get it was to copy the component into a custom folder and change a firmware version constant, which broke with 2026.10.
What the fix does
- Simple writes the module's simple system mode; Normal and Calibrate write energy mode back.
- Nothing is sent when the module already reports in the requested way, so modules with firmware older than 1.5.4, which only support simple reporting, behave as before.
- If the module refuses the change, the select returns to the mode the module actually reports, instead of showing a state that is not true.
- Applying the configuration no longer resets the select to Normal. It only ends calibration, so a module in Simple stays in Simple.
The change adds an integration test with a mocked UART that drives the select through the API. According to the description it fails on the old code at the Simple write and passes with the fix.