LD2461 Human Presence & Trajectory Radar Sensor

The LD2461 is a high-precision 24GHz radar sensor capable of detecting multiple human targets and tracking their trajectories. It communicates via UART and is ideal for advanced presence detection applications.

LD2461 Human Presence & Trajectory Radar Sensor image
LD2461 · UART
UART
Interface
5pins
Connections
5V DC
Supply
Up to 8 meter s
Range
-40 to +85 °C
Operating temp
$16
Typical price
On this page

LD2461 pinout

5 pins · UART

The LD2461 is a 5-pin 24GHz mmWave sensor with advanced 2T4R antenna and 5-target tracking:

View:
LD2461 Human Presence & Trajectory Radar Sensor pinout
PinTypeDescriptionNotes
VCCPowerPower input5V DC regulated power supply
GNDPowerGround connection
TXCommunicationUART transmitSends trajectory data (connect to ESP32 RX)
RXCommunicationUART receiveReceives commands (connect to ESP32 TX)
OUTCommunicationDigital presence output3.3V HIGH when presence detected (optional)
  • Interface: UART (256000 baud)

  • Technology: 24GHz FMCW radar with 2T4R antenna (2 transmit, 4 receive)

  • Multi-Target: Tracks up to 5 moving or stationary targets simultaneously

  • Precision: Range and angle measurements for trajectory tracking

  • Motion Data: Position, speed, and presence for each target

  • Advanced Tracking: Multi-target trajectory analysis

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

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

  • Applications: Occupancy monitoring, security systems, smart lighting, gesture detection

  • High Data Rate: Requires stable power and UART for multi-target streaming

Wiring the LD2461 to ESP32

5 connections · 1 optional

To interface the LD2461 with an ESP32 for trajectory tracking via UART:

LD2461 Human Presence & Trajectory Radar Sensor wiring with ESP32
LD2461 pinESP32 pinPurpose
VCC5VPower supply (5V regulated and stable)
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: 256000 bps, no parity, 1 stop bit

  • Power: Requires clean stable 5V supply (high data rate sensor)

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

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

  • 5-Target Tracking: Streams data for up to 5 simultaneous targets

  • Trajectory: Provides position, speed, and angle data

  • Data Rate: High-speed UART - ensure no other components share UART2

  • Mounting: Secure mounting required (vibrations affect performance)

LD2461 code examples

5 platforms
Platform:

LD2461 Arduino example

Copy
// LD2461: module TX -> GPIO16 (RX2), RX -> GPIO17 (TX2), 9600 baud
HardwareSerial radar(2);

void setup() {
  Serial.begin(115200);
  radar.begin(9600, SERIAL_8N1, 16, 17);
  Serial.println("LD2461 frame monitor");
}

void loop() {
  while (radar.available()) {
    uint8_t b = radar.read();
    if (b < 0x10) Serial.print("0");
    Serial.print(b, HEX);
    Serial.print(" ");
  }
  Serial.println();
  delay(200);
}

There is no established Arduino library for the LD2461, so this example prints its UART stream (9600 baud) as hex - decode it with HLK's LD2461 protocol manual - or use ESPHome, where the Chreece/LD2461-ESPHome external component decodes per-person positions (see the ESPHome tab).

LD2461 ESP-IDF example

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

// LD2461 on UART2: module TX -> GPIO16 (RX2), RX -> GPIO17 (TX2), 9600 baud
#define RADAR_UART UART_NUM_2

void app_main(void)
{
    uart_config_t config = {
        .baud_rate = 9600,
        .data_bits = UART_DATA_8_BITS,
        .parity = UART_PARITY_DISABLE,
        .stop_bits = UART_STOP_BITS_1,
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
    };
    ESP_ERROR_CHECK(uart_param_config(RADAR_UART, &config));
    ESP_ERROR_CHECK(uart_set_pin(RADAR_UART, 17, 16, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));
    ESP_ERROR_CHECK(uart_driver_install(RADAR_UART, 1024, 0, 0, NULL, 0));

    uint8_t buf[64];
    while (1) {
        int len = uart_read_bytes(RADAR_UART, buf, sizeof(buf), pdMS_TO_TICKS(200));
        if (len > 0) {
            for (int i = 0; i < len; i++)
                printf("%02X ", buf[i]);
            printf("\n");
        }
    }
}

ESP-IDF has no LD2461 component, so this example reads the radar's UART stream (9600 baud) and prints each burst as hex - decode it with HLK's LD2461 protocol manual - or use ESPHome, where the Chreece/LD2461-ESPHome external component decodes per-person positions (see the ESPHome tab).

LD2461 ESPHome example

Copy
external_components:
  - source: github://Chreece/LD2461-ESPHome
    components: [ld2461]

uart:
  id: uart_bus
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 9600

ld2461:
  uart_id: uart_bus

binary_sensor:
  - platform: ld2461
    has_target:
      name: "LD2461 Presence"

sensor:
  - platform: ld2461
    target_count:
      name: "LD2461 Target Count"
    person_1:
      position_x:
        name: "Person 1 X"
      position_y:
        name: "Person 1 Y"

Core ESPHome has no LD2461 component, so this pins the Chreece/LD2461-ESPHome external component. Its schema exposes a target count, per-person coordinates (person_1: position_x/position_y, up to five people) and a presence binary sensor; the radar talks 9600 baud over UART2.

LD2461 PlatformIO example

Copy
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
src/main.cppCopy
#include <Arduino.h>
// LD2461: module TX -> GPIO16 (RX2), RX -> GPIO17 (TX2), 9600 baud
HardwareSerial radar(2);

void setup() {
  Serial.begin(115200);
  radar.begin(9600, SERIAL_8N1, 16, 17);
  Serial.println("LD2461 frame monitor");
}

void loop() {
  while (radar.available()) {
    uint8_t b = radar.read();
    if (b < 0x10) Serial.print("0");
    Serial.print(b, HEX);
    Serial.print(" ");
  }
  Serial.println();
  delay(200);
}

Same hex frame monitor as the Arduino example, built with PlatformIO. Decode with HLK's LD2461 protocol manual - or use ESPHome, where the Chreece/LD2461-ESPHome external component decodes per-person positions (see the ESPHome tab).

LD2461 MicroPython example

Copy
from machine import UART
import time

# Initialize UART2 for LD2461 (TX=17, RX=16)
uart = UART(2, baudrate=256000, tx=17, rx=16)

buffer = b''

while True:
    if uart.any():
        buffer += uart.read()
        if b'\n' in buffer:
            lines = buffer.split(b'\n')
            for line in lines[:-1]:
                try:
                    print(line.decode('utf-8').strip())
                except UnicodeDecodeError:
                    pass
            buffer = lines[-1]
    time.sleep(0.05)

A MicroPython implementation for the LD2461 sensor is available, developed by marconicivitavecchia. It provides basic functionality for interfacing the sensor with an ESP32 using MicroPython. For more details and code examples, refer to the GitHub repository: esp32-LD2461.

LD2461 specifications

From the datasheet
Interface
UART (256000 baud)
Detection Range
Up to 8 meters
Detection Field
±45° horizontal, ±25° vertical
Power Supply
5V DC
Output
UART, Optional GPIO
Resolution
0.75m range, 15° angle
Operating Temperature
-40°C to +85°C
Dimensions
35mm × 35mm
Pin Width
2.54mm

About the LD2461

The LD2461 is Hi-Link’s step up from the LD2450 in target count: where the LD2450 caps out at three tracked people, the LD2461’s 2T4R (2 transmit, 4 receive) antenna array pushes that to 5 simultaneous targets, each reported with range and angle for trajectory tracking rather than a single position snapshot. That extra antenna hardware narrows the field of view to roughly ±45 degree horizontal by ±25 degree vertical - tighter than the LD2450’s ±60/±35 degree coverage - and the tradeoff buys tiered range instead: Hi-Link rates stationary targets to 5 meters, someone sitting still (micro-motion) to 6 meters, and moving targets out to 8 meters, all still over the family’s usual 256000-baud UART.

Software support lags the hardware here. There is no established Arduino library and no official ESPHome component; the community Chreece/LD2461-ESPHome external component is the practical path into Home Assistant, exposing a target count plus per-person X/Y coordinates for up to five people. Unlike the LD2450, the LD2461 carries no Bluetooth radio, so zone and sensitivity tuning goes through UART commands instead of a phone app.

At the top of this family’s price range, the LD2461 only earns its keep when a project genuinely needs to track more than three people or wants the finer 15-degree angular resolution. For anything simpler, the cheaper LD2450 or the binary presence of the base LD2410 gets there with far better software support.

LD2461 troubleshooting

4 common issues

No Data Received

›

Issue: The ESP32 receives no data from the sensor.

Ensure correct wiring: verify that TX and RX lines are properly connected, and confirm that the UART baud rate is set to 256000 bps. Also, ensure that the sensor is powered with a stable 5V supply.

Presence Not Detected

›

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

Check the sensor's field of view and ensure there are no obstructions. Verify that the sensor's configuration parameters are set correctly for the desired detection range and sensitivity.

Intermittent Detection

›

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

Ensure that the sensor is securely mounted and not subject to vibrations. Check for sources of interference in the environment that may affect radar performance.

UART Initialization Fails

›

Issue: UART component in ESPHome reports failure to initialize.

Verify that the UART pins specified in the configuration match the physical connections. Ensure that no other devices are using the same UART bus, and that the baud rate is correctly set to 256000 bps.

Where to buy the LD2461

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

Resources