LD2410S Human Presence Sensor

The LD2410S is an ultra-low-power 24GHz mmWave radar sensor for human presence detection, supporting both stationary and moving target detection. It uses a unique UART communication protocol at 115200 baud and operates at 3.3V, making it ideal for battery-powered smart home automation systems.

LD2410S Human Presence Sensor image
LD2410S · UART
UART
Interface
5pins
Connections
3.3V DC
Supply
0.2-8 meter s
Range
-40 to +85 °C
Operating temp
$8
Typical price
On this page

LD2410S pinout

5 pins · UART

The LD2410S is a 5-pin ultra-low-power 24GHz mmWave radar sensor:

View:
LD2410S Human Presence Sensor pinout
PinTypeDescriptionNotes
3V3PowerPower input3.3V DC only (NOT 5V tolerant)
GNDPowerGround connection
TXCommunicationUART transmitSends data from sensor (connect to ESP32 RX)
RXCommunicationUART receiveReceives commands (connect to ESP32 TX)
OUTCommunicationDigital presence output3.3V HIGH when presence detected (optional)
  • Interface: UART (115200 baud - different from other LD2410 variants)

  • Technology: 24GHz FMCW radar (ultra-low-power)

  • Detection: Both stationary and moving human targets

  • Range: 0.2 to 8 meters (longest range in LD2410 series)

  • Field of View: ±60° detection angle

  • Gates: Configurable distance gates (0.75m resolution)

  • Power: 3.3V DC only (~0.1mA ultra-low power consumption)

  • Battery-Friendly: Ideal for battery-powered IoT devices

  • Pin Spacing: 2.54mm (standard breadboard-compatible)

  • Protocol: Unique UART protocol - incompatible with standard LD2410 libraries

Wiring the LD2410S to ESP32

5 connections · 1 optional

To interface the LD2410S with an ESP32 for ultra-low-power presence detection:

LD2410S Human Presence Sensor wiring with ESP32
LD2410S pinESP32 pinPurpose
3V33.3VPower supply (3.3V ONLY)
GNDGNDGround
TXGPIO16 (RX2)Sensor transmit to ESP32 receive
RXGPIO17 (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 (NOT 256000 like other LD2410 variants)

  • Power: 3.3V ONLY - do NOT connect to 5V (will damage sensor)

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

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

  • Low Power: ~0.1mA consumption, perfect for battery-powered projects

  • Custom Protocol: Uses unique UART protocol - standard LD2410 libraries won’t work

  • Community Support: Custom ESPHome component available (github.com/MrUndead1996/ld2410s-esphome)

LD2410S code examples

5 platforms
Platform:

LD2410S Arduino example

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

void setup() {
    Serial.begin(115200);
    pinMode(RADAR_OUT_PIN, INPUT);
    Serial.println("LD2410S 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 LD2410S 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 LD2410S's own low-power protocol (different from the LD2410's) for configuration and distance reporting - use HLK's vendor tools to tune sensitivity, or parse the frames per the LD2410S serial protocol manual.

LD2410S 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 // LD2410S OUT pin, matches the wiring above

void app_main(void)
{
    gpio_set_direction(RADAR_OUT_PIN, GPIO_MODE_INPUT);
    printf("LD2410S 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 LD2410S 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 LD2410S's own low-power protocol (different from the LD2410's) for configuration and distance reporting - use HLK's vendor tools to tune sensitivity, or parse the frames per the LD2410S serial protocol manual.

LD2410S ESPHome example

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

ESPHome has no dedicated LD2410S 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 LD2410S's own low-power protocol (different from the LD2410's) for configuration and distance reporting - use HLK's vendor tools to tune sensitivity, or parse the frames per the LD2410S serial protocol manual.

LD2410S 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 // LD2410S OUT pin (GPIO18, matches the wiring above)

void setup() {
    Serial.begin(115200);
    pinMode(RADAR_OUT_PIN, INPUT);
    Serial.println("LD2410S 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 LD2410S 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 LD2410S's own low-power protocol (different from the LD2410's) for configuration and distance reporting - use HLK's vendor tools to tune sensitivity, or parse the frames per the LD2410S serial protocol manual.

LD2410S MicroPython example

Copy
from machine import Pin
import time

# LD2410S 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 LD2410S 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 LD2410S's own low-power protocol (different from the LD2410's) for configuration and distance reporting - use HLK's vendor tools to tune sensitivity, or parse the frames per the LD2410S serial protocol manual.

LD2410S specifications

From the datasheet
Interface
UART (115200 baud)
Detection Range
0.2-8 meters
Detection Field
±60°
Power Supply
3.3V DC
Output
UART, GPIO
Resolution
0.75m gate intervals
Operating Temperature
-40°C to +85°C
Dimensions
20mm × 20mm
Pin Spacing
2.54mm

About the LD2410S

The LD2410S is the low-power specialist in the LD2410 family: where the base sensor and its B/C siblings draw somewhere around 80 mA at 5V, the LD2410S runs on 3.3V and averages roughly 0.1 mA at a 1 Hz report rate, low enough to run for months on a coin cell or a small LiPo. That efficiency comes with a narrower stationary-detection range - Hi-Link specs moving-target detection out to 8 meters but static presence detection only to about 4 meters, with no dead zone as close as 0.2 meters - trading some far-field “someone is sitting still in the corner” range for the power budget a battery build needs.

It is also the odd one out in software: the LD2410S speaks its own UART protocol at 115200 baud rather than the 256000-baud framing the LD2410, LD2410B, LD2410C and LD2412 all share, so none of those sensors’ Arduino libraries or ESPHome’s core ld2410 component understand it. There is no Bluetooth on this model either. A community ESPHome component (MrUndead1996/ld2410s-esphome) exists for it, but it is unofficial and less mature than the core component the rest of the family enjoys, so budget extra setup time versus the wired sensors.

Reach for the LD2410S specifically when battery life is the constraint; for anything on mains or USB power, the plain LD2410 or LD2410C is simpler to wire up and has far better software support for the same detection job.

LD2410S 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 3.3V.

Presence Not Detected

›

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

Check detection parameters using the LD2410S configuration tool. Ensure UART communication is functioning correctly.

Intermittent Detection

›

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

Adjust detection thresholds using the configuration tool. 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 LD2410S

LD2410S Human Presence Sensor
LD2410S 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