I’m using ESPHome for a while now and have converted some of my own code to use ESPHome instead, all great. I then came across this sensor, the LD2410 (the tiny version, non bluetooth) and just hooked it up with ground, vcc and used the out pin for detection. That worked great for testing out.
Then I wanted to be able to also change some parameters, using ESPHome, so I hooked it up over UART and no matter what I do, as soon as I use UART, it just stops working. Below is the minimal config I tried to run just to replicate the same as the out pin delivers. But the output remains always at Unknown (all the other possible outputs as well, when I tried them).
Just to be sure, I tried this with 3 different microcontrollers (all M5Stamp C3) and now 4 different LD2410 boards (bought initially 3, now got another batch). Out pin works as intended, no dice on the UART.
Does anyone have any idea what I could do to further debug this? I’m a bit stumped as to what I can do to figure out what’s going on.
Not sure if this will help, but did you disable the esphome serial logger? It looks like you’re using the hardware UART pins (which is good) but presumably the default serial logger would be sending logs out on the same TX pin…
UART Rx from the LD2410 is connected to pin 21 (tx) on the controller, as the config depicts. And Tx of the board to the pin 20 (rx). I did try another UART sensor and that one worked right away. I switched back and forth a couple times, just to be sure and each time it worked as intended. Except with the LD2410.
Is there some way over the arduino IDE that I could get some output to test?
The logs on the ESPHome dash are just empty. It connects to the controller, shows the usual details of the ESPHome node, and then nothing. I added a small switch to test if it’s working or frozen, and it reacted to that, but nothing from the LD2410.
As usual, life intrudes when you are having fun with sensors
Here is the logs from an install and run. I enabled everything just to see what happens. Also added a couple lines I found in case I made a mistake and this fixes it. No such luck though. Also added the config below.
INFO Reading configuration /config/presence-office.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing presence-office (board: esp32-c3-devkitm-1; framework: arduino; platform: platformio/espressif32 @ 5.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
- toolchain-riscv32-esp @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- WiFi @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- Update @ 2.0.0
|-- noise-c @ 0.1.4
| |-- libsodium @ 1.10018.1
|-- Wire @ 2.0.0
Compiling .pioenvs/presence-office/src/esphome/components/api/api_connection.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/api_frame_helper.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/api_pb2.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/api_pb2_service.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/api_server.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/list_entities.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/proto.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/subscribe_state.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/api/user_services.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/bh1750/bh1750.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/binary_sensor/automation.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/binary_sensor/binary_sensor.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/binary_sensor/filter.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/esp32/core.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/esp32/gpio.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/esp32/preferences.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/gpio/binary_sensor/gpio_binary_sensor.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/i2c/i2c.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/i2c/i2c_bus_arduino.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/i2c/i2c_bus_esp_idf.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/ld2410/ld2410.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/logger/logger.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/md5/md5.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/mdns/mdns_component.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/mdns/mdns_esp32.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/mdns/mdns_esp8266.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/mdns/mdns_rp2040.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/network/util.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/ota/ota_backend_arduino_esp32.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/ota/ota_backend_arduino_esp8266.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/ota/ota_backend_arduino_rp2040.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/ota/ota_backend_esp_idf.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/ota/ota_component.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/sensor/automation.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/sensor/filter.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/sensor/sensor.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/socket/bsd_sockets_impl.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/socket/lwip_raw_tcp_impl.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/socket/socket.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/template/binary_sensor/template_binary_sensor.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/uart/uart.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/uart/uart_component.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/uart/uart_component_esp32_arduino.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/uart/uart_component_esp8266.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/uart/uart_component_esp_idf.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/uart/uart_component_rp2040.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/uart/uart_debugger.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/wifi/wifi_component.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/wifi/wifi_component_esp32_arduino.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/wifi/wifi_component_esp8266.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/wifi/wifi_component_esp_idf.cpp.o
Compiling .pioenvs/presence-office/src/esphome/components/wifi/wifi_component_pico_w.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/application.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/color.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/component.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/component_iterator.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/controller.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/entity_base.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/helpers.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/log.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/scheduler.cpp.o
Compiling .pioenvs/presence-office/src/esphome/core/util.cpp.o
Compiling .pioenvs/presence-office/src/main.cpp.o
Building .pioenvs/presence-office/bootloader.bin
Creating esp32c3 image...
Successfully created esp32c3 image.
Generating partitions .pioenvs/presence-office/partitions.bin
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFi.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiAP.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiClient.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiGeneric.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiMulti.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiSTA.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiScan.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiServer.cpp.o
Compiling .pioenvs/presence-office/libb7a/WiFi/WiFiUdp.cpp.o
Compiling .pioenvs/presence-office/lib927/ESPmDNS/ESPmDNS.cpp.o
Compiling .pioenvs/presence-office/lib6bb/Update/HttpsOTAUpdate.cpp.o
Compiling .pioenvs/presence-office/lib6bb/Update/Updater.cpp.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_core/ed25519/core_ed25519.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_core/ed25519/core_ristretto255.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_hash/crypto_hash.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_hash/sha256/hash_sha256.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_onetimeauth/crypto_onetimeauth.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_scalarmult/crypto_scalarmult.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c.o
Archiving .pioenvs/presence-office/libb7a/libWiFi.a
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_stream/chacha20/stream_chacha20.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_stream/crypto_stream.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/crypto_verify/sodium/verify.c.o
Archiving .pioenvs/presence-office/lib927/libESPmDNS.a
Compiling .pioenvs/presence-office/lib0d1/libsodium/sodium/codecs.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/sodium/core.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/sodium/runtime.c.o
Compiling .pioenvs/presence-office/lib0d1/libsodium/sodium/utils.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/openssl/cipher-aesgcm.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/ref/cipher-aesgcm.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/ref/cipher-chachapoly.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/ref/dh-curve25519.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/ref/hash-blake2b.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/ref/hash-blake2s.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/ref/hash-sha256.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/sodium/cipher-aesgcm.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/sodium/cipher-chachapoly.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/sodium/dh-curve25519.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/sodium/hash-blake2b.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/backend/sodium/hash-sha256.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/aes/rijndael-alg-fst.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/blake2/blake2b.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/blake2/blake2s.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/chacha/chacha.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/donna/curve25519-donna-c64.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/donna/curve25519-donna.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/donna/poly1305-donna.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/sha2/sha256.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/sha2/sha512.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/crypto/x25519/x25519.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/cipherstate.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/dhstate.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/errors.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/handshakestate.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/hashstate.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/internal.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/names.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/patterns.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/rand_os.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/rand_sodium.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/randstate.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/signstate.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/symmetricstate.c.o
Compiling .pioenvs/presence-office/lib6c4/noise-c/protocol/util.c.o
Compiling .pioenvs/presence-office/lib05e/Wire/Wire.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/Esp.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/FirmwareMSC.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/HWCDC.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/HardwareSerial.cpp.o
Archiving .pioenvs/presence-office/lib0d1/libsodium.a
Compiling .pioenvs/presence-office/FrameworkArduino/IPAddress.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/IPv6Address.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/MD5Builder.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/Print.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/Stream.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/StreamString.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/Tone.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/USB.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/USBCDC.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/USBMSC.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/WMath.cpp.o
Archiving .pioenvs/presence-office/lib6c4/libnoise-c.a
Compiling .pioenvs/presence-office/FrameworkArduino/WString.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/base64.cpp.o
Archiving .pioenvs/presence-office/lib6bb/libUpdate.a
Compiling .pioenvs/presence-office/FrameworkArduino/cbuf.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-adc.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-bt.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-cpu.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-dac.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-gpio.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-i2c-slave.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-i2c.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-ledc.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-matrix.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-misc.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-psram.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-rgb-led.c.o
Archiving .pioenvs/presence-office/lib05e/libWire.a
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-rmt.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-sigmadelta.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-spi.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-time.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-timer.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-tinyusb.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-touch.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/esp32-hal-uart.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/firmware_msc_fat.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/libb64/cdecode.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/libb64/cencode.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/main.cpp.o
Compiling .pioenvs/presence-office/FrameworkArduino/stdlib_noniso.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/wiring_pulse.c.o
Compiling .pioenvs/presence-office/FrameworkArduino/wiring_shift.c.o
Archiving .pioenvs/presence-office/libFrameworkArduino.a
Linking .pioenvs/presence-office/firmware.elf
RAM: [= ] 11.1% (used 36316 bytes from 327680 bytes)
Flash: [===== ] 48.6% (used 891358 bytes from 1835008 bytes)
Building .pioenvs/presence-office/firmware.bin
Creating esp32c3 image...
Successfully created esp32c3 image.
esp32_create_combined_bin([".pioenvs/presence-office/firmware.bin"], [".pioenvs/presence-office/firmware.elf"])
Wrote 0xed1f0 bytes to file /config/.esphome/build/presence-office/.pioenvs/presence-office/firmware-factory.bin, ready to flash to offset 0x0
======================== [SUCCESS] Took 306.66 seconds ========================
INFO Successfully compiled program.
INFO Connecting to 192.168.1.233
INFO Uploading /config/.esphome/build/presence-office/.pioenvs/presence-office/firmware.bin (905712 bytes)
Uploading: [============================================================] 100% Done...
INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.1.233 using esphome API
INFO Successfully connected to 192.168.1.233
[12:16:34][I][app:102]: ESPHome version 2023.3.1 compiled on Mar 26 2023, 12:14:30
[12:16:34][C][wifi:504]: WiFi:
[12:16:34][C][wifi:362]: Local MAC: 68:67:25:82:5F:FC
[12:16:34][C][wifi:363]: SSID: [redacted]
[12:16:34][C][wifi:364]: IP Address: 192.168.1.233
[12:16:34][C][wifi:366]: BSSID: [redacted]
[12:16:34][C][wifi:367]: Hostname: 'presence-office'
[12:16:34][C][wifi:369]: Signal strength: -67 dB ▂▄▆█
[12:16:34][C][wifi:373]: Channel: 1
[12:16:34][C][wifi:374]: Subnet: 255.255.255.0
[12:16:34][C][wifi:375]: Gateway: 192.168.1.1
[12:16:34][C][wifi:376]: DNS1: 0.0.0.0
[12:16:34][C][wifi:377]: DNS2: 0.0.0.0
[12:16:34][C][logger:293]: Logger:
[12:16:34][C][logger:294]: Level: DEBUG
[12:16:34][C][logger:295]: Log Baud Rate: 0
[12:16:34][C][logger:296]: Hardware UART: UART0
[12:16:34][C][i2c.arduino:052]: I2C Bus:
[12:16:34][C][i2c.arduino:053]: SDA Pin: GPIO1
[12:16:34][C][i2c.arduino:054]: SCL Pin: GPIO0
[12:16:34][C][i2c.arduino:055]: Frequency: 50000 Hz
[12:16:34][C][i2c.arduino:058]: Recovery: bus successfully recovered
[12:16:34][I][i2c.arduino:068]: Results from i2c bus scan:
[12:16:34][I][i2c.arduino:074]: Found i2c device at address 0x23
[12:16:34][C][uart.arduino_esp32:108]: UART Bus 0:
[12:16:34][C][uart.arduino_esp32:109]: TX Pin: GPIO21
[12:16:34][C][uart.arduino_esp32:110]: RX Pin: GPIO20
[12:16:34][C][uart.arduino_esp32:112]: RX Buffer Size: 256
[12:16:34][C][uart.arduino_esp32:114]: Baud Rate: 256000 baud
[12:16:34][C][uart.arduino_esp32:115]: Data Bits: 8
[12:16:34][C][uart.arduino_esp32:116]: Parity: NONE
[12:16:34][C][uart.arduino_esp32:117]: Stop bits: 1
[12:16:34][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Office Motion'
[12:16:34][C][gpio.binary_sensor:015]: Device Class: 'motion'
[12:16:34][C][gpio.binary_sensor:016]: Pin: GPIO10
[12:16:34][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Office mmWave'
[12:16:34][C][gpio.binary_sensor:015]: Device Class: 'occupancy'
[12:16:34][C][gpio.binary_sensor:016]: Pin: GPIO4
[12:16:34][C][template.binary_sensor:018]: Template Binary Sensor 'Office Presence'
[12:16:34][C][template.binary_sensor:018]: Device Class: 'occupancy'
[12:16:34][C][ld2410:012]: LD2410:
[12:16:34][C][ld2410:014]: HasTargetSensor 'Has Target'
[12:16:34][C][ld2410:014]: Device Class: 'occupancy'
[12:16:34][C][ld2410:015]: MovingSensor 'Moving Target'
[12:16:34][C][ld2410:015]: Device Class: 'motion'
[12:16:34][C][ld2410:016]: StillSensor 'Still Target'
[12:16:34][C][ld2410:016]: Device Class: 'occupancy'
[12:16:34][C][ld2410:019]: Moving Distance 'Moving Distance'
[12:16:34][C][ld2410:019]: Device Class: 'distance'
[12:16:34][C][ld2410:019]: State Class: ''
[12:16:34][C][ld2410:019]: Unit of Measurement: 'cm'
[12:16:34][C][ld2410:019]: Accuracy Decimals: 0
[12:16:34][C][ld2410:020]: Still Distance 'Still Distance'
[12:16:34][C][ld2410:020]: Device Class: 'distance'
[12:16:34][C][ld2410:020]: State Class: ''
[12:16:34][C][ld2410:020]: Unit of Measurement: 'cm'
[12:16:34][C][ld2410:020]: Accuracy Decimals: 0
[12:16:34][C][ld2410:021]: Moving Energy 'Move Energy'
[12:16:34][C][ld2410:021]: Device Class: 'energy'
[12:16:34][C][ld2410:021]: State Class: ''
[12:16:34][C][ld2410:021]: Unit of Measurement: '%'
[12:16:34][C][ld2410:021]: Accuracy Decimals: 0
[12:16:34][C][ld2410:022]: Still Energy 'Still Energy'
[12:16:34][C][ld2410:022]: Device Class: 'energy'
[12:16:34][C][ld2410:022]: State Class: ''
[12:16:34][C][ld2410:022]: Unit of Measurement: '%'
[12:16:34][C][ld2410:022]: Accuracy Decimals: 0
[12:16:34][C][ld2410:023]: Detection Distance 'Detection Distance'
[12:16:34][C][ld2410:023]: Device Class: 'distance'
[12:16:34][C][ld2410:023]: State Class: ''
[12:16:34][C][ld2410:023]: Unit of Measurement: 'cm'
[12:16:34][C][ld2410:023]: Accuracy Decimals: 0
[12:16:34][C][ld2410:029]: Firmware Version : 0.0.0000
[12:16:34][C][bh1750.sensor:118]: BH1750 'Office Illuminance'
[12:16:34][C][bh1750.sensor:118]: Device Class: 'illuminance'
[12:16:34][C][bh1750.sensor:118]: State Class: 'measurement'
[12:16:34][C][bh1750.sensor:118]: Unit of Measurement: 'lx'
[12:16:34][C][bh1750.sensor:118]: Accuracy Decimals: 1
[12:16:34][C][bh1750.sensor:119]: Address: 0x23
[12:16:34][C][bh1750.sensor:124]: Update Interval: 30.0s
[12:16:35][C][mdns:108]: mDNS:
[12:16:35][C][mdns:109]: Hostname: presence-office
[12:16:35][C][ota:093]: Over-The-Air Updates:
[12:16:35][C][ota:094]: Address: 192.168.1.233:3232
[12:16:35][C][ota:097]: Using Password.
[12:16:35][D][uart_debug:114]: >>> FD:FC:FB:FA:04:00:FF:00:01:00:04:03:02:01:FD:FC:FB:FA:02:00:A0:00:04:03:02:01:FD:FC:FB:FA:02:00:FE:00:04:03:02:01
[12:16:35][C][api:138]: API Server:
[12:16:35][C][api:139]: Address: 192.168.1.233:6053
[12:16:35][C][api:141]: Using noise encryption: YES
[12:16:36][D][binary_sensor:036]: 'Office Motion': Sending state ON
[12:16:40][D][binary_sensor:036]: 'Office Motion': Sending state OFF
[12:16:44][D][binary_sensor:036]: 'Office Motion': Sending state ON
[12:16:48][D][bh1750.sensor:159]: 'Office Illuminance': Got illuminance=39.2lx
[12:16:48][D][sensor:127]: 'Office Illuminance': Sending state 39.16338 lx with 1 decimals of accuracy
[12:16:56][D][binary_sensor:036]: 'Office Motion': Sending state OFF
[12:17:01][D][binary_sensor:036]: 'Office Motion': Sending state ON
[12:17:07][D][binary_sensor:036]: 'Office Motion': Sending state OFF
[12:17:18][D][binary_sensor:036]: 'Office Motion': Sending state ON
[12:17:18][D][bh1750.sensor:159]: 'Office Illuminance': Got illuminance=39.7lx
[12:17:18][D][sensor:127]: 'Office Illuminance': Sending state 39.72933 lx with 1 decimals of accuracy
[12:17:27][D][binary_sensor:036]: 'Office Motion': Sending state OFF
[12:17:31][D][binary_sensor:036]: 'Office Motion': Sending state ON
[12:17:42][D][binary_sensor:036]: 'Office Motion': Sending state OFF
[12:17:48][D][bh1750.sensor:159]: 'Office Illuminance': Got illuminance=44.0lx
[12:17:48][D][sensor:127]: 'Office Illuminance': Sending state 44.03051 lx with 1 decimals of accuracy
[12:17:59][D][binary_sensor:036]: 'Office mmWave': Sending state OFF
[12:18:04][D][binary_sensor:036]: 'Office Presence': Sending state OFF
[12:18:14][D][binary_sensor:036]: 'Office Motion': Sending state ON
[12:18:14][D][binary_sensor:036]: 'Office Presence': Sending state ON
[12:18:15][D][binary_sensor:036]: 'Office mmWave': Sending state ON
[12:18:18][D][bh1750.sensor:159]: 'Office Illuminance': Got illuminance=36.2lx
[12:18:18][D][sensor:127]: 'Office Illuminance': Sending state 36.22047 lx with 1 decimals of accuracy
[12:18:37][D][binary_sensor:036]: 'Office Motion': Sending state OFF
[12:18:39][D][binary_sensor:036]: 'Office Motion': Sending state ON
And here the config:
substitutions:
name: "presence-office"
friendly_name: "Presence Office"
room: "Office"
illuminance_update_interval: "30s"
presence_delay_off: "5s"
wifi_static_ip: "[redacted]"
api_encryption_key: "[redacted]"
ota_password: "[redacted]"
esphome:
name: "${name}"
friendly_name: "${friendly_name}"
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
# Needed for ld2410
uart:
id: uart1
rx_pin: 20
tx_pin: 21
baud_rate: 256000
parity: NONE
stop_bits: 1
data_bits: 8
debug:
direction: BOTH
dummy_receiver: false
after:
delimiter: [0xF8,0xF7,0xF6,0xF5]
# Needed for bh1750
i2c:
sda: 1
scl: 0
scan: true
ld2410:
# How long to keep "presence" up after it has elapsed. Default is 5s
timeout: 2s
# Both of these can be between 0.75m and 6m (including), defaults to 4.5m
max_move_distance: 6m
max_still_distance: 6m
# g0_move_threshold: 10
# g0_still_threshold: 0
# g1_move_threshold: 10
# g1_still_threshold: 0
# g2_move_threshold: 40
# g2_still_threshold: 20
# g3_move_threshold: 40
# g3_still_threshold: 20
# g4_move_threshold: 40
# g4_still_threshold: 40
# g5_move_threshold: 40
# g5_still_threshold: 40
# g6_move_threshold: 30
# g6_still_threshold: 15
# g7_move_threshold: 30
# g7_still_threshold: 15
# g8_move_threshold: 30
# g8_still_threshold: 15
sensor:
- platform: bh1750
id: illuminance
name: "${room} Illuminance"
address: 0x23
update_interval: ${illuminance_update_interval}
accuracy_decimals: 1
- 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: "Has Target"
has_moving_target:
name: Moving Target
has_still_target:
name: Still Target
- platform: gpio
pin:
number: 10
mode: INPUT_PULLDOWN
name: "${room} Motion"
id: pir
device_class: motion
filters:
- delayed_off: 2s
- platform: gpio
name: "${room} mmWave"
id: mmwave
device_class: occupancy
pin:
number: 4
mode: INPUT
filters:
- delayed_off: 2s
- platform: template
name: "${room} Presence"
id: presence
device_class: occupancy
filters:
- delayed_off: "${presence_delay_off}"
lambda: |-
if ( id(mmwave).state or id(pir).state) {
return true;
}
else if (id(mmwave).state == 0 and id(pir).state == 0) {
return false;
}
else {
return id(presence).state;
}
# More generic config below, can leave that alone
# Enable logging
logger:
# or can interfere with the UART
baud_rate: 0
# Enable Home Assistant API
api:
encryption:
key: "${api_encryption_key}"
ota:
password: "${ota_password}"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
power_save_mode: none
fast_connect: true
manual_ip:
static_ip: "${wifi_static_ip}"
gateway: !secret gateway
subnet: !secret subnet
Perhaps what needs to be considered is whether the serial port parameters of the radar module itself have been changed. If the radar parameter software of the computer can be connected, it can be used as an effective comparison to observe whether it is operating normally on the computer.
I have a devkit from Hilink and plugged the sensor in there. With the english tool I can connect and the baud rate is the only thing I can set inside the tool. I can’t seem to change anything on the board itself with the tool it looks like. So it outputs correctly, like it does with the output pin, but I can’t connect with the C3 microcontroller over uart.
Hi, I am running also into the issue that I only get “unknown” values for the senors & binary sensors.
am using a esp32 wemos d1 and ld2410. Wiring is correct( tx-rx rx-tx). baud_rate:0 @logger is also set…
I used the default values from esphome.io. I am clueless as to why it is not working, I also tried 2 different esp32 boards (D1 mini, esp32 dev).
ld2410 is connected to the esp32 via a jst-to-2.54mm cable.
thanks for the hint @nickrout, unfortunately that doesn’t work either… in the meantime I also tried a differen ld2410 from the batch that I got… no change in behaviour… too bad…
Strangely I have just started plying with my 4th LD2410 and its not working. I have had 3 working for a couple of months. Using D1 minis, and have tried esp32’s, and nodemcu’s as well. Using the same code, just different names and its not talking at all. Tried all variations explained her so can only think its a dud. So it could just be that the ones not working are never going to.
We have probably used over 50 pieces of ld2410, including the b and c suffix models. In our experience, every piece has been successfully driven very well. However, very occasionally it will stop sending data after a period of time (say 2-3 days), at which point a Bluetooth connection or a direct send to uart with a restart radar command will be able to reawaken the output. This is a very strange thing, but the radar itself seems to work quite well. The quality is pretty good.