LD2410C mmWave Radar with an Arduino Uno
A 24GHz FMCW mmWave radar module from Hi-Link that detects both moving and stationary humans indoors, with a simple presence pin and a configurable UART interface.

The LD2410C streams its data at 256000 baud on a UART, and the Arduino Uno has exactly one, on D0 and D1, shared with USB. So on the Uno the radar takes over Serial: the wiring puts its TX on D0 and RX on D1, and the presence line OUT on D2 is the part that works without that UART.
Wiring the LD2410C mmWave Radar to the Arduino Uno
Pin by pin.
| LD2410C mmWave Radar | Arduino Uno | Note |
|---|---|---|
| VCC | 5V | |
| GND | GND | |
| TX | D0 | |
| RX | D1 | through a 1 kΩ resistor, with a 2 kΩ resistor from RX to GND: a divider, since the radar's IO is 3.3 V |
| OUT | D2 |
- D0 and D1 are the Uno's only hardware UART, shared with USB: unplug the radar's TX from D0 to upload, and print nothing on Serial, which goes into the radar's RX. A 16 MHz Uno makes 250000 baud for the radar's 256000, 2.3 % off; a board with a spare UART (an ESP32's Serial2) avoids all three.
What to know on the Arduino Uno
- With the radar's TX on D0, sketch uploads fail, because the radar keeps streaming into the pin the USB bridge uses. Disconnect the D0 wire while uploading, then plug it back. For the same reason the sketch prints nothing, since Serial now talks to the radar: it shows presence on the on-board LED on D13 instead.Arduino UNO R3 datasheet, p. 10
- At 16 MHz the ATmega328P's nearest rate to 256000 baud is 250000 baud (16 MHz / (8 × 8)), about 2.3 % off, close to the limit a UART tolerates. If frames come out garbled, set the radar's baud rate lower with its configuration command and match it in Serial.begin().Microchip ATmega328P datasheet DS40002061B, USART section; Hi-Link HLK-LD2410C user manual V1.00, p. 8
- OUT is a 3.3 V output that goes high when someone is present; the Uno reads 0.6 × VCC (3.0 V) as a high, so D2 needs no level shifting and gives presence even if the UART is disconnected.Hi-Link HLK-LD2410C user manual V1.00, pp. 7, 8; Microchip ATmega328P datasheet DS40002061B, DC characteristics
- The module averages 79 mA and wants a source able to give more than 200 mA; the Uno's 5V over USB can, but nothing else heavy should hang on the same pin.Hi-Link HLK-LD2410C user manual V1.00, pp. 7, 17
- The module's IO level is 3.3 V and Hi-Link gives its RX no 5 V tolerance, so bring the Uno's 5 V TX on D1 down with a divider, 1 kΩ in series and 2 kΩ to GND, before the radar's RX.Hi-Link HLK-LD2410C user manual V1.00, pp. 8, 17
LD2410C mmWave Radar code for the Arduino Uno
Compiled for arduino:avr:uno on 2026-10-30.
// LD2410C mmWave Radar on Arduino Uno: wiring and a free simulation at https://www.tinkered.ai/components/ld2410c-mmwave-radar/arduino-uno
#include <ld2410.h>
// On an Uno the radar takes the only hardware UART (D0 and D1), so the sketch prints nothing:
// whatever Serial sends goes into the radar's RX. Presence shows on the on-board LED (D13).
// Unplug the D0 wire while uploading, then plug it back.
ld2410 radar;
const int OUT_PIN = 2; // the radar's OUT: HIGH while someone is present
void setup() {
pinMode(OUT_PIN, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(256000); // the radar's rate; a 16 MHz Uno makes 250000, 2.3 % off
radar.begin(Serial);
}
void loop() {
radar.read(); // parse the radar's frames
bool present = radar.presenceDetected() || digitalRead(OUT_PIN) == HIGH;
digitalWrite(LED_BUILTIN, present ? HIGH : LOW);
}
LD2410C mmWave Radar on the Arduino Uno: questions
Why can't I upload a sketch to my Uno with the LD2410C connected?
Its TX is on D0, the Uno's serial receive pin, which the USB bridge also uses to upload. Unplug the D0 wire during the upload.
Can I use SoftwareSerial for the LD2410C on an Arduino Uno?
Not at its default 256000 baud, which is beyond what SoftwareSerial handles (it is rated to 115200). That is why this wiring uses the Uno's hardware Serial on D0 and D1.
Can I just use the LD2410C's OUT pin with the Uno?
Yes. OUT is a 3.3 V presence signal (Hi-Link manual, pp. 7, 8) that the Uno reads with digitalRead() on D2; you only need the UART for distance and gate energies.
Keep going
This guide as plain Markdown. /components/ld2410c-mmwave-radar/arduino-uno.md