Warum Radarsensor HLK-LD2410S mit Pico2 nicht funktionieren möchte?

Hallo zusammen,

ich versuche seit paar Tagen HLK-LD2410S mit pico2 zum Laufen zu bringen und komme leider nicht weiter.

Doku: https://www.tinytronics.nl/product_files/006002_HLK-LD2410S%20serial%20communication%20protocol-V1.00.pdf
Spec: https://www.tinytronics.nl/product_files/006002_HLK-LD2410S_datasheet.pdf

Verwendete Beispielcode: https://github.com/shabaz123/LD2410/blob/main/ld2410.py

Probleme:
Trotzt verschiedene Einstellungen von UART lines, baurate etc. kriege ich keine Daten aus der UART Schnisttstelle. Das Gerät sollte eigentlich dauerhaft Daten schicken, die man nur auswerten muss.
Ich habe verucht es auf einem Steckbrett oder mit den direkten Kabelverbindung zu testen. Die Funktion run_forever() aus dem Beispiel liefert aber ganze nichts.

Versuche:
Ich habe versucht die Schnittstelle mit folgem Codestück auszulesen aber leider ohne Erfolg.

from machine import UART, Pin
from time import sleep

uart0 = UART(0, baudrate = 115200, bits=8, parity=None, stop=1, tx=Pin(12), rx=Pin(13), timeout = 1)
uart1 = UART(1, baudrate = 115200, bits=8, parity=None, stop=1, tx=Pin(8), rx=Pin(9), timeout = 1)

def read_uart(uart : UART):
    rxData = bytes()
    sleep(0.1)    
    while uart.any() > 0:
        sleep(0.1)
        rxData += uart.read(1)
    return rxData
    
txData = b'hello world'
uart1.write(txData)

print("demo:")
rxData = read_uart(uart0)
print(rxData.decode('utf-8'))

uart0.deinit()
uart1.deinit()
print("\ntest:")
# LD2410S
uart2 = UART(0, baudrate = 115200, bits=8, parity=None, stop=1, tx=Pin(0), rx=Pin(1), timeout = 1)

x = 0
while x < 5:
    sleep(1)
    x = x+1
    rxData = read_uart(uart2)
    print(rxData.decode('utf-8'))

uart2.deinit()

Hier die Ergebnisse:

Ich habe auch versucht auch den Sensor über ein Konverter RS485toTTL auf USB zu testen (d.h. ohne pico) und die serielle Schnistelle dann direkt auszulesen.
Was ich aus dem USB-Stick sehe, dass die rx-LED blinkt und offensichtlich werden irgenwelche Daten vom Sensor geschickt. Anbei die native Ausgabe der Schnittstelle:

Erstmal dachte ich, dass vielleicht die Spannung nicht reicht. Ich habe aber kurz vor dem Pin 3,34V gemmessen (native Spannung vom Pico).
Hinweis: LD2410S sollte nativ mit 3,3V laufen und nicht wie es bei ähnlichen Modellen 5V.
Ich habe natürlich versucht die rx/tx Kabeln zu tauschen falls ich doch was falsch verbinden sollte.
Ich habe von den Sensoren 5 Stück ausprobiert und gehe davon aus, dass es nicht an Hardware liegen wird. Sie waren zwar bei Frost geliefert aber die Betriebstemperatur liegt zwischen -40 - 85°C.

Was ich nicht ausprobiert habe, ist es mit originalem Software des Herstellers zu testen. Dies liegt es aber daran, dass ohne Windows schwirig ist.

Hat jemand Idee woran es liegen kann und was man sonst noch ausprobieren kann?

Viele Grüße
Bauherr

Wenn du einen ESP32 zur Verfügung hast, kannst du den Gegencheck mit Tasmota machen.

Ich habe einen LD2410C an einem ESP32 über ESP Home laufen - damit gab es keine Probleme. Der LD2410C muss aber an 5V.

Ich würde an deiner Stelle auchmal mit einem ESP32 testen. Die kosten ja eh nicht die Welt.

Oder du versuchst den Pico2 mal via ESPHome einzubinden mit dem LD2410S - das soll wohl auch funktionieren.

Ok, mit ESPHome habe ich noch nichts gemacht. Aber probieren und was neues lernen schadet ja nicht.
Ich habe mich jetzt ein ESP32 bestellt und werde es noch mal damit ausprobieren.