Neue Erkenntnis: Die Firmware des BCM erkennt an einem Word (2 Byte) im Flash an Adresse 0xFFFF_FC08 um welchen Funktionsumfang es sich handelt. Abhängig davon werden bestimmte Funktionen mit Dummy-Werten gefüttert, also anstelle z.B. den echten Feedback-Wert des A/D-Wanlder einer angetriggerten Antenne zurück zu liefern um deren Funktion zu überwachen, wird einfach ein 0-Wert zurück geliefert der der aufrufenden Routine mitteilt "Antenne kaputt, DTC auslösen". D.H. die Software selbst funktioniert überall gleich, nur das eben einmal echte Werte (sofern halt auch die Hardware vorhanden ist und diese liefert) und einmal Fake-Werte zurück kommen.
Bei einem BCM mit TPMS steht an o.g. Adresse der Wert 0xDDDD in meinem BCM vom 2.2er Diesel ohne TPMS (aber dafür mit Xenon und BLIS) steht dort 0xCCCC und bei einem BCM aus einem Benziner ohne alles steht da 0x5555.
Da ich also mein altes BCM 1:1 auf das neue gecloned habe kann dieses trotz vorhandener Hardware die Antennen nicht ansteuern. Ich muss erst diesen Wert ändern/patchen. Das möchte ich durch ein Aufspielen der Software via UCDS-Update, einfach die Version hochladen die für ein X-BCM gedacht ist. Das dürfte die Schlüsselcodes nicht korrumpieren und zum gewünschten Ergebnis führen.
Ist wäre eine Überlegung wert einen Patch zu entwickeln der der Firmware bei nicht vorhandener TPMS-Hardware im BCM einfach gültige Werte vorgaukelt und somit die Erzeugung von DTCs bei aktiviertem TPMS aber ohne Antennen, verhindert. Damit könnte man dann das ganze auch ohne Tacho-Patch nutzen.
Zum setzen der IDs gibt es auch Neuigkeiten. Eine Untersuchung des TPMS-Tools und der Firmware hat ergeben das es UDS-Kommandos gibt um die Werte der IDs ins BCM zu bringen. Wie schonmal erwähnt ist das BCM dasjenige welches sich um die IDs kümmert, der Tacho speichert da garnichts, der zeigt nur an. Somit bestünde auch ohne Nutzung des TPMS-Tools die Möglichkeit die Sensor-IDs den richtigen Positionen zuzuordnen.
Es bleibt aktuell immer noch die Frage offen ob, warum und wo es eine Sensor-ID Filterung ungleich "0*" gibt. Möglicherweise sitzt diese im RFA-Empfänger? Das würde einen gewissen Sinn machen das BCM nicht mit allem Funkschrott den er so aufschnappt zu belästigen... D.H. man müsste hier mal den LIN-Bus zwischen RFA und BCM mitschneiden wenn man einmal einen gültigen und einen ungültigen Sensor zum funken bekommt.
Apropos funken: Auch hier gibt es eine UDS-Funktion um jede einzelne Antenne beliebig an und aus zuschalten. Dadurch kann man dann das ausgesandte Protokoll nochmal überprüfen um damit ggf. einen separaten Handsender zu programmieren. So fing meine "Reise ins BCM" ja an...
Es bleibt spannend!