LD2411S Human Presence Sensor

The LD2411S is a 24GHz mmWave radar sensor for human presence detection, supporting both motion and micro-motion detection. It includes Bluetooth functionality for configuration and firmware updates. Due to its unique UART communication protocol, it is not widely compatible with standard libraries.

LD2411S Human Presence Sensor image
LD2411S · UART
UART
Interface
5pins
Connections
5V DC
Supply
0.3-6 meter s
Range
-20 to +85 °C
Operating temp
$8
Typical price
On this page

LD2411S pinout

5 pins · UART

The LD2411S is a 5-pin 24GHz mmWave radar with Bluetooth and micro-motion detection:

View:
LD2411S Human Presence Sensor pinout
PinTypeDescriptionNotes
VINPowerPower input5V DC regulated power supply
GNDPowerGround connection
TXDCommunicationUART transmitSends data from sensor (connect to ESP32 RX)
RXDCommunicationUART receiveReceives commands (connect to ESP32 TX)
OUTCommunicationDigital presence output3.3V HIGH when presence detected (optional)
  • Interface: UART (115200 baud)

  • Technology: 24GHz FMCW radar

  • Detection: Motion + micro-motion (breathing detection)

  • Range: Up to 6 meters

  • Field of View: ±45° detection angle

  • Precision: ±5cm positioning accuracy

  • Power: 5V only (OUT signal is 3.3V logic)

  • Bluetooth: Integrated BLE for HLKRadarTool app configuration

  • Protocol: Custom UART protocol (not compatible with standard LD2410 libraries)

  • Custom Component: Use github.com/Chreece/LD2411S-ESPHome

  • OUT Logic: 3.3V compatible, safe for ESP32 GPIO

Wiring the LD2411S to ESP32

5 connections · 1 optional

To interface the LD2411S with an ESP32 for human presence detection via UART:

LD2411S Human Presence Sensor wiring with ESP32
LD2411S pinESP32 pinPurpose
VIN5VPower supply (5V regulated)
GNDGNDGround
TXDGPIO16 (RX2)Sensor transmit to ESP32 receive
RXDGPIO17 (TX2)Sensor receive from ESP32 transmit
OUTGPIO18Digital presence output (optional) · optional
  • UART2: Use UART2 on ESP32 (GPIO16/17 are default UART2 pins)

  • Baud Rate: 115200 bps - must match in firmware configuration

  • Power: Requires 5V regulated supply (OUT signal is 3.3V logic)

  • TX/RX: Connect sensor TXD to ESP32 RX, sensor RXD to ESP32 TX

  • OUT Pin: 3.3V logic level, safe for direct ESP32 GPIO connection

  • Custom Protocol: Requires custom ESPHome component (github.com/Chreece/LD2411S-ESPHome)

  • Bluetooth: Disable BLE in firmware if using UART (may conflict)

  • Configuration: Use HLKRadarTool app for BLE configuration

  • Micro-motion: Capable of detecting breathing and micro-movements

LD2411S code examples

5 platforms
Platform:

LD2411S Arduino example

Copy
#define RADAR_OUT_PIN 18 // LD2411S OUT pin (GPIO18, matches the wiring above)

void setup() {
    Serial.begin(115200);
    pinMode(RADAR_OUT_PIN, INPUT);
    Serial.println("LD2411S Presence Detection");
}

void loop() {
    if (digitalRead(RADAR_OUT_PIN) == HIGH) {
        Serial.println("Presence detected");
    } else {
        Serial.println("No presence");
    }
    delay(500);
}

The most robust way to use the LD2411S is its OUT pin (GPIO18 in the wiring above), which the radar drives HIGH while presence is detected - all the radar processing happens on the module. The UART pins carry the LD2411S's serial protocol for configuration and distance reporting - use HLK's vendor tools to tune it, or parse the frames per the LD2411S protocol manual.

LD2411S ESP-IDF example

Copy
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

#define RADAR_OUT_PIN GPIO_NUM_18 // LD2411S OUT pin, matches the wiring above

void app_main(void)
{
    gpio_set_direction(RADAR_OUT_PIN, GPIO_MODE_INPUT);
    printf("LD2411S Presence Detection\n");

    while (1) {
        if (gpio_get_level(RADAR_OUT_PIN)) {
            printf("Presence detected\n");
        } else {
            printf("No presence\n");
        }
        vTaskDelay(pdMS_TO_TICKS(500));
    }
}

The most robust way to use the LD2411S is its OUT pin (GPIO18 in the wiring above), which the radar drives HIGH while presence is detected - all the radar processing happens on the module. The UART pins carry the LD2411S's serial protocol for configuration and distance reporting - use HLK's vendor tools to tune it, or parse the frames per the LD2411S protocol manual.

LD2411S ESPHome example

Copy
binary_sensor:
  - platform: gpio
    pin: GPIO18  # LD2411S OUT pin, matches the wiring above
    name: "LD2411S Presence"
    device_class: occupancy

ESPHome has no dedicated LD2411S component, but the radar's OUT pin makes that unnecessary for presence detection: a plain GPIO binary_sensor on GPIO18 reports occupancy, with all radar processing done on the module. The UART pins carry the LD2411S's serial protocol for configuration and distance reporting - use HLK's vendor tools to tune it, or parse the frames per the LD2411S protocol manual.

LD2411S PlatformIO example

Copy
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
src/main.cppCopy
#include <Arduino.h>
#define RADAR_OUT_PIN 18 // LD2411S OUT pin (GPIO18, matches the wiring above)

void setup() {
    Serial.begin(115200);
    pinMode(RADAR_OUT_PIN, INPUT);
    Serial.println("LD2411S Presence Detection");
}

void loop() {
    if (digitalRead(RADAR_OUT_PIN) == HIGH) {
        Serial.println("Presence detected");
    } else {
        Serial.println("No presence");
    }
    delay(500);
}

The most robust way to use the LD2411S is its OUT pin (GPIO18 in the wiring above), which the radar drives HIGH while presence is detected - all the radar processing happens on the module. The UART pins carry the LD2411S's serial protocol for configuration and distance reporting - use HLK's vendor tools to tune it, or parse the frames per the LD2411S protocol manual.

LD2411S MicroPython example

Copy
from machine import Pin
import time

# LD2411S OUT pin (GPIO18, matches the wiring above)
radar_out = Pin(18, Pin.IN)

while True:
    if radar_out.value():
        print("Presence detected")
    else:
        print("No presence")
    time.sleep(0.5)

The most robust way to use the LD2411S is its OUT pin (GPIO18 in the wiring above), which the radar drives HIGH while presence is detected - all the radar processing happens on the module. The UART pins carry the LD2411S's serial protocol for configuration and distance reporting - use HLK's vendor tools to tune it, or parse the frames per the LD2411S protocol manual.

LD2411S specifications

From the datasheet
Interface
UART (115200 baud)
Detection Range
0.3-6 meters
Detection Field
±45°
Power Supply
5V DC
Output
UART, GPIO
Resolution
±5cm
Operating Temperature
-20°C to +85°C
Dimensions
35mm × 35mm
Pin Spacing
2.54mm

About the LD2411S

The LD2411S sits alongside the LD2410S as a newer-generation Hi-Link radar rather than a direct upgrade of the original LD2410: it runs on 5V like the base sensor and its B/C siblings, but draws only about 48 mA at a 20 Hz report rate versus roughly 80 mA for the plain LD2410, and adds Bluetooth Low Energy with Hi-Link’s HLKRadarTool app for wireless configuration and firmware updates. Detection tops out around 6 meters for a moving target and about 3.5 meters for micro-motion (breathing-level) sensing, with a much narrower detection cone in azimuth (±20 degrees) than the LD2410’s ±60 degree field of view, trading side coverage for a tighter, more precise beam.

Like the LD2410S, the LD2411S uses its own UART protocol at 115200 baud rather than the LD2410 family’s 256000-baud framing, so the standard MyLD2410 library and ESPHome’s core ld2410 component do not understand it. A community ESPHome integration (Chreece/LD2411S-ESPHome) exists, but as of this writing its author has flagged it as deprecated and broken on ESPHome versions after 2025.2 - anyone planning an ESPHome project around this sensor should check the component’s current status before buying rather than assuming it works out of the box.

For a straightforward ESP32 presence project, the plain LD2410 remains the safer pick purely on software maturity; the LD2411S is worth choosing over it mainly for the lower current draw and tighter beam, not for easier integration.

LD2411S troubleshooting

4 common issues

No Data Received

›

Issue: The ESP32 receives no data from the sensor.

Ensure correct wiring: swap TX and RX if needed, and confirm baud rate is set to 115200. Verify power is supplied at 5V.

Presence Not Detected

›

Issue: The sensor does not detect presence even when someone is in range.

Check detection parameters using the HLKRadarTool app. Ensure UART communication is functioning correctly.

Intermittent Detection

›

Issue: Sensor intermittently detects presence or fails to maintain detection.

Adjust detection thresholds using the HLKRadarTool app. Reposition sensor to minimize obstructions.

UART Initialization Fails

›

Issue: UART component in ESPHome reports failure to initialize.

Verify UART pins are correct, baud rate is 115200, and no other component is using the same UART bus.

Where to buy the LD2411S

LD2411S Human Presence Sensor
LD2411S Human Presence Sensor
$8per unit, typical
Amazon and AliExpress links are affiliate links - buying through them supports the site at no extra cost to you.

Resources