as-built data - eine Möglichkeit den SW-Stand und SW-Configs ohne OBD oder Lizenzen zu lesen und zu vergleichen

Ich möchte eine Methodik zum Auslesen der SW-Stände sowie der Modulkonfigurationen vorstellen, die möglicherweise nicht Jeder kennt. Und hier im Forum ist sie mir bislang auch noch nicht untergekommen.

Es ist nichts, was man nicht auch mit FORScan machen könnte. Aber es geht, ohne überhaupt ins Auto steigen zu müssen. Und man braucht auch keine Lizenzen wie etwa für FDRS oder PTS.

Anschließend hat man alles in einer Datei, die ich regelmäßig zum Vergleich zwischen OTAs verwende um zu schauen, was sich geändert hat.

Aber Achtung: ich schreibe hier mit profundem Halbwissen ;). Das was ich gefunden und hier zusammengestellt habe, stammt weitestgehend aus dem US-Forum. Ob alles stimmt, kann ich nicht sagen und das eine oder andere mag falsch sein. Also, nagelt mich bei Fehlern bitte nicht an die Wand :)
Weiterhin habe ich "nur" einen RWD ER. D.h. es kann gut sein, dass ich gewisse Details von einem AWD und GT nicht kenne und hier unvollständig oder falsch wiedergebe.



Was ich Euch zeigen möchte, sind die Module Build Data (As-Built), eine Spiegelung aller Konfigurationen der Auto-SW auf einem Ford-Server. Ich denke, dass es eine Art Backup ist, die in den Werkstätten zum Wiederherstellen bei Problemen verwendet werden kann.

Und jeder kann darauf zugreifen: https://www.motorcraftservice.com/AsBuilt
Einfach die VIN eingeben, Sicherheits-Prüfziffer abtippen und abschicken. Das System generiert daraufhin eine endlose Liste aller Konfigurations-Bytes. Diese verwende ich nicht, vielmehr aber die Möglichkeit des Datei-Downloads.

Die Datei, die Ihr bekommt, ist lesbar (d.h. kein Maschinencode), aber dann auch wieder nicht. Denn alle Infos liegen in einer Zeile ohne Punkt und Komma vor. Angeblich eine Art XML.

Ich habe mir aber ein Makro für den Notepad++ gebastelt (ein Texteditor, denn man kostenfrei installieren kann), der den as-built-Download formatiert: Einfügen von Zeilenumbrüchen, Löschen unnötiger Zeichencodes, … Zum Makro komme ich später. Aber was hiermit lesbar wird, ist eine Textdatei, die sowohl die Configs eines jeden Moduls aufzeigt (im gleichen Format wie auch in FORScan unter as-built zu sehen ist), als auch – ganz am Ende – Infos zum jeweiligen SW-Stand eines jeden Moduls.

Was man zum besseren Verständnis hier wissen muss, ist die Dekodierung der Adressen eines jeden Moduls (die erste Zahl einer jeden Reihe der Configs). Z.B. ist „706“ die Adresse vom IPMA, „7D0“ die vom APIM.

760ABS - Anti-Lock Brake System
7C7ACCM - Air Conditioning Control Module
727ACM - Audio Front Control Module
7D0APIM - Accessory Protocol Interface Module (SYNC)
792ATCM - All Terrain Control Module
726BCM - Body Control Module
6F0BCMC - Body Control Module C [battery junction box]
7E4BECM - Battery Energy Control Module
7E7BECMB - Battery Energy Control Module B (?)
764CCM - Cruise Control Module
7C1CMR - Camera Module Rear [Driver Status Monitor Camera Module]
6F1DCACA - Direct Current/Alternating Current Converter Module A
746DCDC - Direct Current/Direct Current Converter Module
7A2DCME - Door Control Module E
762DCMF - Door Control Module F
7B3DCMG - Door Control Module G
7B4DCMH - Door Control Module H
740DDM - Driver Door Module (being renamed to Intelligent Power Window Control Module)
744DSM - Driver Front Seat Module / Running Board Control Module
783DSP - Audio Digital Signal Processing Module
6E3FHCM - Front Hatch Control Module
7A1GFM - Generic Function Module
732GSM - Gear Shift Module
716GWM - Gateway Module A
734HCM - Headlamp Control Module
733HVAC - Heating, Ventillation and Air Conditioning Module
720IPC - Instrument Panel Cluster
706IPMA - Image Processing Module A
6F5OBCC - Off-Board Charger Controller
765Occupant Classification System Module
750PACM - Pedestrian Alert Control Module
7E0PCM - Powertrain Control Module (gas) *Diesel PCM not OTA capable*
741PDM - Passenger Door Module (is being renamed to Door Control Modulee B)
730PSCM - Power Steering Control Module
737RCM - Restraints Control Module
731RFA - Remote Function Actuator
775RGTM - Rear Gate Trunk Module
751RTM - Radio Transceiver Module
797SASM - Steering Angle Sensor Module
724SCCM - Steering Column Control Module
712SCMG - Driver Multi-Contour Seat Module
713SCMH - Passenger Multi-Contour Seat Module
7C5SECM - Steering Effort Control Module
7E2SOBDM - Secondary On-Board Diagnostic Control Module A
795SOBDMB - Secondary On-Board Diagnostic Control Module B
7E6SOBDMC - Secondary On-Board Diagnostic Control Module C
6F2SODCMC - Side Obstacle Detection Control Module C
6F3SODCMD - Side Obstacle Detection Control Module D
7C4SODL - Side Obstacle Detection Control Module LH
7C6SODR - Side Obstacle Detection Control Module RH
761TCCM - Transfer Case Control Module
7E9TCM - Transmission Control Module
754TCU - Telematic Control Unit Module
791TRM - Trailer Module / Trailer Brake Control Module
6D1UCIM - Upfitter Customization Interface Module
721VDM - Vehicle Dynamics Control Module
725WACM - Wireless Accessory Charging Module

Wenn Ihr in die Bedeutungen der einzelnen Config-Bits und Bytes eintauchen wollt, dann empfehle ich Euch die folgende Diskussion aus dem US-Forum. Gleich der erste Beitrag verweist auf ein Mach-E spreadsheet, in der sehr viele unserer Module und ihre Configs beschrieben sind. Aber alle derartige Listen nicht nicht vollständig und natürlich auch mit Vorsicht zu genießen. => FORScan MME spreadsheet

Zurück zum as-built.
Wie schon gesagt, findet Ihr am Ende der Datei auch Infos zum SW-Stand eines jeden Moduls. Ebenfalls wieder recht kryptisch.
Hier mal ein Beispiel für das APIM:

7D0
<F10A>MU5T-14G680-AA</F10A>
<F110>DSPU5T-14G670-EE</F110>
<F111>MU5T-14G681-LF</F111>
<F113>MU5T-14G670-STH</F113>
<F124>MU5T-14G677-ADA</F124>
<F12B>LJ8T-044R30-AA</F12B>
<F12C>LJ8T-044R30-AB</F12C>
<F142>04900672</F142>
<F16B>MU5T-14J003-AF</F16B>
<F17F>1SN1I4XV</F17F>
<F188>PU5T-14G676-EE</F188>
<F18C>FUBCH22029051034</F18C>
<F190>xxxxxxx</F190>
<F1D0>28385C23204A</F1D0>
<F1D1>28385C23204B</F1D1>

Diese Zeilen, die mit einem <Fxxx> beginnen und mit einem </Fxxx) enden, beinhalten Versionsnummern der jeweiligen Modul-SW.
Hierzu zitiere ich aus dem US-Forum (LINK) :

Strategy (DID F188) is the software that runs in the module.
Calibration (DID F124) is configuration information.
As modules got more complex several Strategy DIDs and Calibration DIDs were defined. Each piece of software can even be running on different processors in the module. For example the IPMA has 4 Strategy DIDs and 4 Calibration DIDs

- F113 the factory assembly PN

- F188 Strategy: the software that runs in the module
- F120 Strategy
- F121 Strategy
- F122 Strategy

- F124 Calibration: configuration information
- F125 Calibration
- F127 Calibration
- F1DC Calibration

- F10A ECU Configuration
- F16C ECU Configuration

Okay, und was macht man jetzt damit? Tja, das überlasse ich Euch. 😉

Ich persönlich habe diese Downloads in ein Excel eingefügt, wo ich mir per bedingter Formatierung die Unterschiede von einem Snapshot zum nächsten anzeigen lasse (siehe weiter unten). Ich kann also sehen, was bei einem OTA verändert wurde (z.B. ob ein Modul eine neue SW (DID F188) bekommen hat.

Ich hoffe, dass der Eine oder Andere von Euch dieses Thema interessant findet und mir bis hierher auch folgende konnte.


Hier zum Abschluss Anmerkungen zum Notepad++-Makro, sowie zum Excel, das ich verwende.

a) Notepad++-Makro (Attachment: )

Notepad++ Makros werden als shortcuts.xml im Verzeichnis %AppData%\Notepad++ abgelegt. D.h. entweder schiebt Ihr meine Datei dort hin, oder für den Fall, dass Ihr eigene Makros verwendet, dann müsst Ihr meinen neuen Anteil in Eure schon existierende Datei einfügen. Man kann diese ebenfalls im Notepad++ lesen und editiert.
Anschließend findet Ihr das Makro im Notepad++ im Menü "Makros" als "as-built".
Jetzt einfach nur den Ford-Download in Notepad++ laden und das Makro 1x laufen lassen. Fertig.

Und wen's brennend interessiert: Das Makro macht lediglich folgendes "search&replace":

<CODE> mit "leer"
</CODE> mit "Leerzeichen"
DATA LABEL= mit "leer"
<CODE /> mit "leer"
<“ mit "leer"
"> mit "Leerzeichen"

</DATA> mit \n

</.*?>\K mit \n

<NODEID>.*?\K< mit \n<

<NODEID> mit "leer"

</NODEID> mit "leer"

</BCE_MODULE> mit </BCE_MODULE>\n
<BCE_MODULE> mit <BCE_MODULE>\n


b) Excel (Attachment: )

Ins Excel füge ich den Text aus dem Notepad++ einfach über den "Text Import Wizzard" ein.
-> Trennzeichen ist das "Leerzeichen"
-> Der Import Wizzard erkennt dann vier Spalten, die im Wizzard-Fenster alle als "Text" formatiert werden sollten.

shortcuts.zip (1.01 KB)

as-built-decoding.zip (192 KB)

5 „Gefällt mir“

Wow! Wenn ich mal viel Zeit habe, schaue ich mir das genauer an...

boah ey
Hab ich mal gemacht und bin begeistert. An manche AsBuilt-Daten bin ich vorher mit Forscan nie rangekommen. Hätte ich mal diese Möglichkeit bloß früher gehabt ...
Schade, dass man da nicht auch noch schreiben kann.

Zitat von TheWhiteHorse

Und jeder kann darauf zugreifen: https://www.motorcraftservice.com/AsBuilt
Einfach die VIN eingeben, Sicherheits-Prüfziffer abtippen und abschicken. Das System generiert daraufhin eine endlose Liste aller Konfigurations-Bytes. Diese verwende ich nicht, vielmehr aber die Möglichkeit des Datei-Downloads.


Die Datei, die Ihr bekommt, ist lesbar (d.h. kein Maschinencode), aber dann auch wieder nicht. Denn alle Infos liegen in einer Zeile ohne Punkt und Komma vor. Angeblich eine Art XML.

Originalbeitrag

Danke für die Anleitung! Der Download der Datei hat ohne Probleme funktioniert.
Da ich faul bin, habe ich versucht, ChatGPT einzusetzen, und folgenden Prompt verwendet:

_______________________________________
Analysiere die hochgeladene Datei gemäß den folgenden Anweisungen: as-built data - eine Möglichkeit den SW-Stand und SW-Configs ohne OBD oder Lizenzen zu lesen und zu vergleichen.

Erstelle eine Liste mit allen verbauten Modulen und deren Softwarezustand. Entschlüssele die Hexwerte.

Benutze die .csv-Datei als Vorlage.

______________________________________

Man muss auch die gerade heruntergeladene Datei zusammen mit der unten stehenden Datei in ChatGPT hochladen. Nicht vergessen: Vor dem Hochladen die Endung von .txt in .csv ändern! (Eine .csv-Datei kann ich hier im Forum nicht hochladen.)

Das Ganze ergibt dann eine etwas verständlichere Datei. Was genau darin steht, weiss ich auch (noch) nicht.

Wer es mit ChatGPT ausprobiert, möge bitte das Ergebnis melden. Wie bekannt, gibt ChatGPT auf den gleichen Input nicht die gleiche Antwort zurück!

Module_mit_Modulnamen.txt (6.05 KB)

Zitat von HenkK

Da ich faul bin, habe ich versucht, ChatGPT einzusetzen

...

Man muss auch die gerade heruntergeladene Datei zusammen mit der unten stehenden Datei in ChatGPT hochladen

Originalbeitrag

Interessanter Ansatz, vielen Dank, den muss ich mal ausprobieren!!
Wo kommt die csv-Datei her, ist das ein reines Beispiel für die KI ohne wirkliche Sinnhaftigkeit? Ich frage, weil mir hier das Mapping aus Module ID und Modulname recht willkürlich erscheint.

@TheWhiteHorse
weißt Du, was die Fehler in den ERROR-Tags am Ende der *.ab-Datei aussagen?

Zitat von TheWhiteHorse

Interessanter Ansatz, vielen Dank, den muss ich mal ausprobieren!!
Wo kommt die csv-Datei her, ist das ein reines Beispiel für die KI ohne wirkliche Sinnhaftigkeit? Ich frage, weil mir hier das Mapping aus Module ID und Modulname recht willkürlich erscheint.

Originalbeitrag

In meiner anfänglichen Diskussion mit ChatGPT habe ich viele Korrekturen verlangt. Plötzlich gab es eine Tabelle, die mir sinnvoll erschien. Später konnte ich das Ergebnis nicht mehr erreichen. Wenn ich die „gelungene” Tabelle aber als Vorlage in den Prompt eingebe, ist das Ergebnis ziemlich konstant.

Ich muss auch zugeben, dass ich die Ergebnisse wegen fehlender Kenntnisse nicht wirklich geprüft habe.

Zitat von Triumphator

weißt Du, was die Fehler in den ERROR-Tags am Ende der *.ab-Datei aussagen?

Originalbeitrag

Du meinst dieses hier?

<ERRORCODE>612</ERRORCODE>
<ERRORMSG>PCM DATA NOT FOUND</ERRORMSG>
<ERRORCODE>614</ERRORCODE>
<ERRORMSG>CCC DATA NOT FOUND</ERRORMSG>

Nein, leider nein. Ich habe keine wirkliche Beschreibung über die as-build data gefunden und mangels an Vergleichsdaten auch keine Möglichkeit gehabt, hier Unterschiede zu sehen.
Ich kann nur sagen, dass sich diese Zeilen bei mir über 6 Monate hinweg nie verändert haben.

Das scheint sich echt nie zu ändern. Ich habe nämlich mit einer ab-Datei verglichen, kurz nachdem mein Auto gebaut wurde, aber noch nicht bei mir war (03/2022; Frag mich jetzt nicht, wo ich die her hab) und da steht völlig das gleiche drin.