mmWave Wars: one sensor (module) to rule them all

Simple case for ESP32 dev board with LD2410:

1 Like

Sweet! Thanks for sharing. How is the HD2410 mounted?

Do I understand it correctly, if I set up the LD2410 sensor according to my idea and then use another esp module where I just insert a simple configuration of the binary sensor, will it work with the settings I made on the test board?

Mine has just arrived. the Bluetooth version connects to an app. I wonder if HA can add this integration to access the Bluetooth directly, without need for an ESP32/8266

Any clues on what type of mmWave sensor this is?

Leapmmw 5.8GHz Motion Detection: MD5G20传感器产品/模块/module.html

1 Like

Ho I read it for the above HLK-LD2410 YAML:

Red: Is VCC: +5V
Black: Is GND: GND
Yellow: Is UART Rx → GPIO18 (TX from ESP)
Green: Is UART Tx → GPIO23 (RX from ESP)
Blue: Is OUT: GPIO5


great idea - would love to hear if someone manages this.

Does anyone have issues with programming the ld2410 ? I have everything wired up and using the code from crlogics, I can read sensor data (the binary one) and also see stats if I toggle that on in the webui, which leads me to believe the wiring is fine.
However when I adjust the detection distance it doesn’t seem to do anything I have sensing set to 6m, yet it’s only picking me up at about 50cm - 1m… If I reboot the ESP the detection distance changed back to 0.75m in the HA UI, is that supposed to happen?

Yes, the same problem that has gone so far that currently the sensor does not respond and remains in the off state. I’m afraid he got hurt in some way. I also use the LD1115H sensor and it works fine including the settings.

Hmm thanks, would be interesting to know if crlogic ever encountered anything like this as the write up doesn’t appear to suggest any problem configuring the module.
Hopefully it can be solved, I have 10 of these sat on my desk waiting to be setup :stuck_out_tongue_winking_eye:

Code works on my working LD2410. I also have another that doesn’t report via serial for my code or HLK’s app. Tiny headers are challenging if you are soldering.

Thanks, I assume when looking from HA the sliders for distance and other settings shouldn’t be resetting back to default after restarting the ESP? (mine go back to 0.75m max distance, 0.0 motion hold and 10.0 sensitivity)

Check that you can see UART data being received. Without it, code can do nothing for ya :stuck_out_tongue:

Yes, if I switch on the toggle ‘show_target_stats’ on the web interface I can see data from the module, as far as I understand this info is from the UART as the other pin on the board is simply a high/low for if presence is detected?

eg, I see this;

13:38:42	[D]	[sensor:127]	
'movingTargetEnergy': Sending state 94.00000 % with 0 decimals of accuracy
13:38:42	[D]	[sensor:127]	
'stillTargetEnergy': Sending state 41.00000 % with 0 decimals of accuracy
13:38:42	[D]	[binary_sensor:036]	
'mmwave_presence_ld2410': Sending state ON

Do you have your LD2410 powered separately? - Mine is coming straight from the 5v of the ESP32.

Can you turn on UART debugging in both directions to ensure you are sending and receiving ok? There will be a response from the sensor when changing sensor values.

Not sure if anybody posted before, been busy with work. HLK just emailed me the English version of the app for LD2410B for Android

Can download it here-> WeTransfer - Send Large Files & Share Photos Online - Up to 2GB Free

Need to rename it to .apk, you will be ask to update after installation.

Thanks for the tip, just added that to the yaml and deployed it - after deploying the webui showed the saved data from the module and when I changed settings I could see the UART commands and no errors. Then I commented the debug line deployed again, and after it came back all the settings were showing in the webui / HA as the defaults again :thinking:
I uncommented the debug line and deployed again and then it showed the saved settings again! So confused… will try and do some more digging with it tomorrow.

Hello everyone.
I’m a newcomer. Just signed up to the community to share experiences, namely regarding mmwave.
The moment I saw Andreas’ YouTube video (the guy with the Swiss accent) on the subject I got an LD2410 from Aliexpress. After a few weeks it arrived and the first impression was how small it was… and the first worry was how hard would it be to solder some wires on it. It ended up being pretty straightforward. Connected it to the laptop with the FTDI adapter, found the English version of the application and started fiddling around with all the settings and, voila, I was able to detect if there was someone on the couch (with a reasonable reliability).
From my microcontroller drawer, got a spare nodemcu (ESP8266) connected it to the LD2410 ,based on the instructions found on this thread, flashed it with the ESPhome yaml also from this post and, automagicaly all the entities were available on home assistant.
Now, the drawback, when I finally get the sensor (ESP + LD) on its final location (somehow hidden on my window rolling shutter box) I won’t be able to connect my laptop to it to change the sensitivity settings, and the sensitivity setting exposed to home assistant (one threshold for all the distances) feels a bit limited (don’t you feel the same?). Tried rain931215’s (on github) ESPhome yaml and it gives access to different distance sensitivity thresholds but I didn’t manage to get it working completely and in a stable way.
So, my options are, spend a few hours modifying the .yaml an .h code to get it working as I want or buy the Bluetooth version and adjust it in place from the Android app.
I’ve got to thank you all for the information shared on the thread.


Can you explain the function of the program? Successfully installed it on android phone. When I start it, I have Chinese characters and the loading wheel spins with them and nothing happens. I don’t have the LD 2410 B sensor yet.
Do I have to have it physically so that it is loaded using BT and then something changes in the program, including the language settings?
Thank you