Hi everyone,
I have a problem and I don’t understand it anymore, and even AI hasn’t been able to help me further ![]()
I had the following setup:
- XIAO-S3
- XIAO GroveShield (Grove - Schild für Seeeduino XIAO - Overlay an Botland - Robotikgeschäft)
- mmWave (Menschliche statische Anwesenheit - mmWave 24GHz Sensor für Seeed Xiao - Seeedstudio 101010001 Botland - Robotikgeschäft)
How I connected it:
XIAO-S3 on the GroveShield
Grove-to-Dupont cable in slot 6, assuming the following layout on the GroveShield:
1 2 3 4
5 6 7 8
Black -> GND
Red -> 5v (effectively supplies 3.3v)
White -> RX
Yellow -> TX
I had the following in my xiao-s3.yaml:
xiao-s3.yaml
esphome:
name: mmwave-sensor
logger:
level: DEBUG
esp32:
variant: esp32s3
board: seeed_xiao_esp32s3
framework:
type: esp-idf
# UART Bus ->
uart:
id: mmwave_uart
tx_pin: GPIO43
rx_pin: GPIO44
baud_rate: 256000
parity: NONE
stop_bits: 1
# debug:
# direction: BOTH
# dummy_receiver: false
# debug_prefix: "[MODBUS] "
# after:
# delimiter: "\n"
# sequence:
# - lambda: UARTDebug::log_string(direction, bytes, debug_prefix);
# register the mmwave radar sensor on the UART bus
ld2410:
id: seeed_mmwave
uart_id: mmwave_uart
binary_sensor:
- platform: ld2410
has_target:
name: "Detected someone"
internal: true
on_press:
- logger.log:
level: INFO
format: "👉👉👉 RADAR: someone found!"
# - switch.turn_on: display_backlight
on_release:
- logger.log:
level: INFO
format: "👋👋👋 RADAR: someone leaved."
# - switch.turn_off: display_backlight
sensor:
- platform: ld2410
moving_distance:
name: "distance moving object"
internal: true
# filters:
# - delta: 1.0 # Sendet nur bei Änderung von mind. 1 cm
on_value:
- logger.log:
level: INFO
format: "🏃 RADAR: moving object at %.0f cm."
args: ["x"]
still_distance:
name: "distance static object"
internal: true
# filters:
# - delta: 1.0 # Sendet nur bei Änderung von mind. 1 cm
on_value:
- logger.log:
level: INFO
format: "🧍 RADAR: static object at %.0f cm."
args: ["x"]
With that I was able to configure the sensor via the app and everything worked perfectly.
Then I switched to an ESP32-S3-DEV-KIT-N8R8, because I needed more pins. I simply took 4 Dupont cables and connected the pins correctly, and now nothing works anymore event with the following minimal example:
devkit.yaml
esphome:
name: mmwave-devkit
logger:
level: DEBUG
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
uart:
id: mmwave_uart
tx_pin: GPIO15
rx_pin: GPIO13
baud_rate: 256000
parity: NONE
stop_bits: 1
debug:
direction: BOTH
dummy_receiver: false
debug_prefix: "[MODBUS] "
after:
delimiter: "\n"
sequence:
- lambda: UARTDebug::log_string(direction, bytes, debug_prefix);
ld2410:
id: seeed_mmwave
uart_id: mmwave_uart
binary_sensor:
- platform: ld2410
has_target:
name: "Detected someone"
internal: true
on_press:
- logger.log:
level: INFO
format: "👉👉👉 RADAR: someone found!"
# - switch.turn_on: display_backlight
on_release:
- logger.log:
level: INFO
format: "👋👋👋 RADAR: someone leaved."
sensor:
- platform: ld2410
moving_distance:
name: "distance moving object"
still_distance:
name: "distance static object"
Even with switchting RX/TX (GPIO13/14)
Log:
INFO Successfully uploaded program.
INFO Starting log output from /dev/tty.usbmodem11101 with baud rate
115200
[23:28:48.940][C][component:246]: Setup ld2410 took 251ms
[23:28:48.940][I][app:117]: setup() finished successfully!
[23:28:48.945][D][uart_debug:157]: [MODBUS] >>>
"\xFD\xFC\xFB\xFA\x04\x00\xFF\x00\x01\x00\x04\x03\x02\x01\xFD\xFC\xFB\xF
A\x02\x00\xA0\x00\x04\x03\x02\x01\xFD\xFC\xFB\xFA\x04\x00\xA5\x00\x01\x0
0\x04\x03\x02\x01\xFD\xFC\xFB\xFA\x02\x00\xAB\x00\x04\x03\x02\x01\xFD\xF
C\xFB\xFA\x02\x00\xAE\x00\x04\x03\x02\x01\xFD\xFC\xFB\xFA\x02\x00a\x00\x
04\x03\x02\x01\xFD\xFC\xFB\xFA\x02\x00\xFE\x00\x04\x03\x02\x01"
[23:28:48.973][I][app:151]: ESPHome version 2026.5.3 compiled on
2026-07-18 23:28:04 +0200
[23:28:48.973][I][app:158]: ESP32 Chip: ESP32-S3 rev0.2, 2 core(s)
[23:28:48.974][C][logger:219]: Logger:
[23:28:48.974][C][logger:219]: Max Level: DEBUG
[23:28:48.974][C][logger:219]: Initial Level: DEBUG
[23:28:48.975][C][logger:226]: Log Baud Rate: 115200
[23:28:48.975][C][logger:226]: Hardware UART: USB_SERIAL_JTAG
[23:28:48.976][C][logger:235]: Task Log Buffer Size: 768 bytes
[23:28:49.008][C][uart.idf:254]: UART Bus 0:
[23:28:49.009][C][uart.idf:152]: TX Pin: GPIO14
[23:28:49.009][C][uart.idf:152]: RX Pin: GPIO13
[23:28:49.010][C][uart.idf:259]: RX Buffer Size: 256
[23:28:49.010][C][uart.idf:259]: RX Full Threshold: 120
[23:28:49.010][C][uart.idf:259]: RX Timeout: 2
[23:28:49.011][C][uart.idf:268]: Baud Rate: 256000 baud
[23:28:49.011][C][uart.idf:268]: Data Bits: 8
[23:28:49.011][C][uart.idf:268]: Parity: NONE
[23:28:49.011][C][uart.idf:268]: Stop bits: 1
[23:28:49.061][D][uart_debug:157]: [MODBUS] <<< "\x00\x00\x00\x90"
[23:28:49.087][C][ld2410:185]: LD2410:
[23:28:49.088][C][ld2410:185]: Firmware version: 0.00.00000000
[23:28:49.088][C][ld2410:185]: MAC address: unknown
[23:28:49.088][C][ld2410:191]: Binary Sensors:
[23:28:49.089][C][ld2410:016]: Target 'Detected someone'
[23:28:49.090][C][ld2410:232]: Device Class: 'occupancy'
[23:28:49.090][C][ld2410:198]: Sensors:
[23:28:49.091][C][ld2410:017]: MovingTargetDistance 'distance moving
object'
[23:28:49.091][C][ld2410:017]: State Class: ''
[23:28:49.091][C][ld2410:017]: Unit of Measurement: 'cm'
[23:28:49.092][C][ld2410:017]: Accuracy Decimals: 0
[23:28:49.092][C][ld2410:232]: Device Class: 'distance'
[23:28:49.093][C][ld2410:223]: Icon: 'mdi:signal-distance-variant'
[23:28:49.094][C][ld2410:017]: StillTargetDistance 'distance static
object'
[23:28:49.094][C][ld2410:017]: State Class: ''
[23:28:49.094][C][ld2410:017]: Unit of Measurement: 'cm'
[23:28:49.094][C][ld2410:017]: Accuracy Decimals: 0
[23:28:49.095][C][ld2410:232]: Device Class: 'distance'
[23:28:49.096][C][ld2410:223]: Icon: 'mdi:signal-distance-variant'
Back on the XIAO-ESP32, nothing happens anymore either. So I soldered my 3 spare mmWave sensors, same result, nothing happens. I can’t even configure them via the app anymore.
I’m totally desperate because I no longer understand why absolutely nothing is happening at all. I also can’t imagine that 4 sensors are broken.