LD2410 esphome tips

When looking at my Moving Distance and Still Distance entities, I get this “default” value that sometimes show up under “display percision”. It is not there for all my sensors. The value shows up in the History Graph. Does anyone else see such a thing?

Mine shows last detected value. Sometimes if it falsely detects something at 30-40cm, it stays that way the entire time without triggering presence on the binary sensors.

It then updates when there’s actual detection after to the correct value.

Trying to understand how to use these values. Still working on it. The “default” designation is confusing to me.

Just curious, anyone finding that their LD2410 boards are failing? I have lost one already and thought I just lost another but after unplugging and replugging it came back to life. Just wondering if anyone else is seeing anything similar? Generally I am quite happy with these and have deployed 8 around the house already with the idea of adding a few more but wouldn’t be happy if they start to randomly fail.

I have one used almost 3 months. No problem at all. Used several times a day (it is controlling light in toilet) and as I recall it had 1 or 2 cases that it did not detect movement. I find it super good and even is person is sitting still it detects presence. So I will for sure install more and will recommend.
Im using only GPIO (not using UART) output with ESPHome.




we make three type ld2410 with esphome.

we test more than 50 unit ld2410b, it’s very stable, but you need very stable power supply, and the esp board need a very good ldo power unit.

1 Like

What is your esp32 yaml for using the RX and TX pins?

Are your sensors getting noticable warm as well? Mine do.
Because i want to use the LD2410 on ESPhome together with a Temperature-Sensor, i need to reduce the Heating, as it significantly influences the Readings.
I don’t a a just-in-time-Distance Reporting - an Update every 1,2,3 Minutes would be totally sufficant as well. Unfortunatly, yet logically, Deep-Sleeping the ESP doesn’t power-off the LD2410 (im using it on +5V like supposed).

Is there a Way to reduce polling frequency on the LD2410 itself, to e.g. 120s - if that would reduce the thermal heating? Or do you have a Hint how i could let the Sensor follow the DeepSleep (and Wakeup) of the ESP32? Somehow i would need to turn off +5V during DeepSleep. Or lift GND? If course only if that doesn’t stress the Hardware to get turned On/off 400 Times a Day :smiley:

The temperature of the ld2410 is relatively high, and it is not easy to reduce it. From the official personnel, we got some clues. If the detection distance gate is reduced, it will help reduce the heat dissipation temperature.

1 Like

I did the same but it doesn’t work.
In my case all sensor is unknown ha ha
What should I do ?

i dont use a Esp32 i use esp8266 with wemos d1 mini, Rx ans Tx pins.

yes same, pretty hot.

you can use a Gpio to power up a mosfet, so you can shut off the ld2410 before deep sleep and power on after wake up.

1 Like

the measurement of the sensor and connections:
-B=35x7mm 5 pins 1.27mm spacing
-C=22x16mm 5 pins 2.54mm spacing
they work the same

i have some c module and b module, them are work same way.

Same. I can’t get any of my LD2410C sensors to work with a D1 Mini.

Are you already using the RX and TX pins for the Wemos D1 Mini?

If it’s not, you may wanna change that and try it again.

Another thing you can check would be the baudrate.
After changing the baudrate to default value (256000) it displayed data instead of all unknowns.

I use

uart:
  id: uart_bus
  tx_pin:
    number: GPIO1
  rx_pin: 
    number: GPIO3
  baud_rate: 256000
  parity: NONE
  stop_bits: 1

For my D1 Minis. remember RX on ld2410 to TX on mini. Been working faultlessly for months.

Still no joy :frowning:

Here’s the wiring between the D1 Mini and LD2410C.

Here’s the YAML:

esphome:
  name: presence-test
  friendly_name: presence-test

esp8266:
  board: d1_mini
external_components:
  - source: github://esphome/esphome@dev
    components: [ ld2410 ]  

logger:
  level: WARN
  baud_rate: 0
web_server:
  port: 80

api:

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

captive_portal:

uart:
  id: uart_bus
  tx_pin:
    number: GPIO1
  rx_pin: 
    number: GPIO3
  baud_rate: 256000
  parity: NONE
  stop_bits: 1

ld2410:
  timeout: 150s
  max_move_distance : 6m
  max_still_distance: 0.75m
  g0_move_threshold: 10
  g0_still_threshold: 20
  g1_move_threshold: 10
  g1_still_threshold: 20
  g2_move_threshold: 20
  g2_still_threshold: 21
  g3_move_threshold: 30
  g3_still_threshold: 31
  g4_move_threshold: 40
  g4_still_threshold: 41
  g5_move_threshold: 50
  g5_still_threshold: 51
  g6_move_threshold: 60
  g6_still_threshold: 61
  g7_move_threshold: 70
  g7_still_threshold: 71
  g8_move_threshold: 80
  g8_still_threshold: 81

sensor:
  - platform: ld2410
    moving_distance:
      name : Moving Distance
    still_distance:
      name: Still Distance
    moving_energy:
      name: Move Energy
    still_energy:
      name: Still Energy
    detection_distance:
      name: Detection Distance
binary_sensor:
  - platform: ld2410
    has_target:
      name: Presence
    has_moving_target:
      name: Moving Target
    has_still_target:
      name: Still Target

And here’s Home Assistant with all sensors “Unknown”.

Try setting TX and RX for the tx_pin and rx_pin instead.

I also do not have the external_components key, and I have esphome.platform defined as ESP8266, not sure if those affect.

Hope it helps!

esphome:
  platform: ESP8266
  board: d1_mini
  # ... my other device config here.

# Enable logging
logger:
  baud_rate: 0

# ...my other config

uart:
  - id: uart_bus
    tx_pin: TX
    rx_pin: RX
    baud_rate: 256000
    parity: NONE
    stop_bits: 1

# ...other ld2410 config below

level: WARN

Try removing this from the logger so it doesn’t interfere with UART0

Also, as @samuelthng says, the external component is not needed now as its native to ESPHOME