Beiträge von run-mike

    Die Frage ist ob es reicht im Fahrzeug den Update vorzunehmen oder ob der auch im zentralen BMW Farhzeugverzeichnis (VIN) vorgenommen werden muss

    Yep.

    Ich hatte gehofft, das hat schon jemand ausprobiert. Bei Misserfolg könnte ich mir diesen Versuch schenken.

    Die Frage ist eben, ob es sich um einen Update-Prozess handelt, der auch in die andere Richtung funktioniert.

    "Abo bezahlt >>> BMW Server >>> OTA >>> Fahrzeug" ist klar.

    "Änderung FA >>> OTA >>> Aktualisierung Daten auf BMW-Server" ist leider noch unklar.


    Eine kleine Raspberry aufsetzen und dann regelmaessig per REST Calls aufzeichnen und die Daten in einer MySQL DB stecken so dass die Daten jederzeit analysiert werden koennen:

    Ja, RPi's habe ich schon acht am Laufen (dazu noch 1 x BananaPi und 1 x OrangePi). Bei den derzeitigen Verfügbarkeiten und Preisen belasse ich meine zwei Spares lieber als solche.

    In meinem Universum würde eben die Node-Red-Alexa diese Funktion mit übernehmen.

    Und deine Aufzählung 1) bis 3) ist so ziemlich das, was ich bisher als der Auswertung würdige Daten identifiziert habe.

    Für die Position der Fensterheber lässt sich sicher auch noch Verwendung finden ... :D


    Interessant wäre natürlich, ob alle Daten, die wir via "Car Data Protokoll" anfordern und einsehen können, im JSON enthalten sind. Das wäre fein, dann könnte man per Functions-Node auf Fehlermeldungen prüfen lassen und ne Warnung ausspucken. Ich lese mittlerweile den Fehlerspeicher im Fahrzeug auch nur noch bei gegebenem Anlass aus.

    Daher meine Frage, ob sich schon jemand die Mühe gemacht hat, alles zu entschlüsseln.


    Gruß


    Mike

    Bzgl Cheat Codes wuerde ich mal im git der BMW Nodeentwickler fragen.


    6AP bzw FA verstehe ich nicht was das heisst

    Nach den bisherigen Erkenntnissen sieht meine aktuelle Vermutung so aus:

    - Ist die Sonderausstattung 6AP (Remote Services) beim Kauf geordert worden, verbleibt diese auch nach Ablauf der ersten drei Jahre im Status "Unbegrenzte Laufzeit".

    - Wenn nur eine der der anderen (zB. 6AK, 6AC etc) geordert wird, ist "Remote Services" die ersten drei Jahre als Appetithäppchen dabei, danach müsste man es ordern; per jährlichem Abo ...


    Im erstgenannten Fall ist die SA (Sonderausstattung) im FA (Fahrzeugauftrag) enthalten, im zweiten nicht.


    Mit Cheat-Codes meinte ich, ob es reicht, per Codierung die 6AP in den FA aufzunehmen und damit den selben Zustand zu erreichen, wie Fall 1 ... ?

    Von mir aus auch gerne per FSC (Freischaltcode) solange auch OEMs akzeptiert werden.


    Da keine offizielle REST API Doku existiert kann man nur anhand der FeldNamen bzw des Inhaltes raten um was es sich dreht.

    Exakt da liegt ja mein Problem. Soll ich mir wirklich die Mühe machen und einen ellenlangen Funktions-Node erstellen, der alle Daten sauber extrahiert, wenn ich schließlich und endlich doch nur ein paar nutze. Und dann auch noch dafür blechen soll, damit ich nicht die Daten von Mai 2021 verhackstücke ...


    Mike

    Keine Ahnung warum Du den 225XE nennst. Ich habe einen 218i/F45.

    Wenn man das Daten-Paket mal durchgeht, machen viele Tags nur für den XE Sinn. Einfachstes Beispiel: Alles was mit Laden und E-Maschine zu tun hat ...

    Mit Laden ist nicht das Laden der 12v-Bordbatterie, sondern das der Hochvolt-Batterie gemeint.


    Mike

    Verschiedentlich 403 was heisst dass mein Zugriff nicht erlaubt ist. Warum auch immer ... Weisst Du warum?

    Wenn ich mich recht erinnere, war das die Fehlermeldung bei zu häufiger Abfrage.


    Jedenfalls geht bei mir ein "Flash headlights" Request durch

    Wie mehrfach beschrieben, mein Remote Service war nur die ersten drei Jahre gültig.

    Jetzt müsste ich das kostenpflichtig ordern. Eines der Ziele dieses Threads war, herauszufinden, ob es sich lohnt. Nur um jemanden mit der Hupe erschrecken zu können und den Tankinhalt abzufragen, ist das evtl. nicht angemessen.

    Also vermute ich mal, dein Remote Service ist aktiv?


    Ein weiteres Ziel war, herauszufinden, ob es Cheat-Codes gibt.

    ZB: Muss nur die 6AP im FA stehen? Geht es dann ohne aktiven Remote Service?


    Nun hast du ja gesehen, wie ausführlich die JSON-Antwort bei "BMW List" ausfällt.

    Und eben darum ging es mir auch, ob das schon jemand zerpflückt hat und sagen kann, welche Daten auch für einen Nicht-225XE-Besitzer nutzbar sind.


    Mike

    peta:

    Wahrscheinlich reden wir aneinander vorbei.

    Ich bediene und konfiguriere Node-Red nur grafisch, wie in Post #1 dargestellt.

    Die BMW-Nodes habe ich gesucht, gefunden und installiert, wie in Post #9, Bild 1 dargestellt.


    Dann sieht das so aus, wie in den folgenden Bildern auf der linken Seite. Es stehen drei verschiedene Nodes zur Verfügung:

    - BMW List

    - BMW Get

    - BMW Action


    Node-red_BMW_node7.jpg             Node-red_BMW_node6.jpg         Node-red_BMW_node5.jpg



    Der Manuelle Trigger ist das standardmäßigste, was man sich vorstellen kann:


    Node-red_BMW_node4.jpg


    Falls das noch nicht eindeutig rüber kam:

    Im Node "BMW List" musst du Zugriff auf deinen BMW-Account eingerichtet haben, wie in Post #9, Bild 2 gezeigt. Sonst geht natürlich gar nix !!!


    Ist der Remote-Service abgelaufen, gibt der Node "BMW Action" die Fehlermeldung "Error: Server http statusCode 500: Internal Server Error" zurück.


    Erfolgen zu viele Abfragen in kurzer Zeit, kommt ebenfalls eine ähnliche Fehlermeldung.


    Ich hoffe, wir sind jetzt auf der gleichen Linie ... :/


    Gruß


    Mike

    Mal gucken wie lange das neue Band hält

    Ja, da bin ich gespannt. Habe auch mal eine Übergangslösung zum Testen eingebaut.

    Einfach, um die Knick-Belastung an der Stelle zu testen.


    Masseband 2.jpg



    Stromfluss verträgt das allemal so viel, wie das Original, falls der Blitz einschlägt.

    Und zur Entstörung der Antenne taugt es problemlos.


    Gruß


    Mike

    Also das sind definitiv keine der abgebildeten Schrauben aus dem ETK.

    Bei mir sind das zwei Flachkopfschrauben M5 x 6mm Torx T15 mit unverlierbarer Unterlegscheibe.

    Das Masseband würde ich als recht liederlich einstufen; einmal angefasst, schon gebrochen ... 8|


    Masseband 1.jpg


    Da lasse ich mir selber was einfallen ...


    Gruß


    Mike

    Weiter gehts:


    9.) Punkt 6. wiederholen und sicherstellen, dass VIN nicht mehr existiert


    Sicherheitshalber habe ich den Programmer abgestöpselt (nur Netzteil und USB!) und WIN 7 neu gestartet.

    Anschließend Programmer-Software wieder starten und erneut auslesen. In den zuvor ermittelten Speicherstellen, deren Adresse wir uns gemerkt haben, muss jetzt zwei mal sieben mal FF stehen. Damit wäre jetzt alles gut und ich könnte wieder zusammenbauen.


    Aber ich wäre nicht ich, wenn ich an dieser Stelle nicht ein unsagbares Verlangen gespürt hätte, die Änderung des Kilometerstandes auszuprobieren.

    Selbstverständlich nur im Dienste der Wissenschaft; takin' one for the team ...

    Nachahmung NICHT empfohlen !!!!


    Also:

    10.) Bei Bedarf mit Programmer Kilometerstand ändern, anschließend ins EEPROM schreiben


    Mit einem Klick auf die Schaltfläche "Blank M35080" öffnet sich folgendes Menü:


    Cluster_6WA_virginize_29.jpg


    Typ des EEPROMs und Kilometerstand werden richtig erkannt.

    Also auf die Schaltfläche "Change Odometer" geklickt.

    Den alten Kilometerstand und den neuen Wunsch eingegeben und schreiben lassen.

    Irgendwo unterwegs hat sich der Programmer dann aufgehängt und ließ sich nicht mehr aus dem Nirwana zurückholen. Kein Neustart der Software oder WIN 7 half.

    Ergo letzte Maßnahme: Netzteil weg und hoffen, dass die letzte Meldung "Erasing EEPROM" nicht bedeutet, dass das EEPROM sich nicht mehr beschreiben lässt.


    Also schnell alles weg und wieder dran, Reboot und ausgelesen.


    Inhalt des EEPROMs scheint intakt zu sein, nur die Änderung des Kilometerstandes hat nicht funktioniert wie gewünscht.


    Cluster_6WA_virginize_32.jpg


    Neuer Odometer: 12288km. Wie der zustande kam? Keine Ahnung

    Schaden bleibt aber beherrschbar, da immer noch weit unter meinem Fahrzeug.


    Natürlich juckt es mich in den Fingern, Punkt 10.) nochmal in Angriff zu nehmen.

    Momentan sind die Argumente "Auf Sicherheit gehen" aber noch in der Übermacht.

    Sollten die Hemmungen nachlassen und ein weiterer Versuch erfolgen, werde ich über die Ergebnisse natürlich berichten ...


    Punkt 13.) ist simpel, nur eine umgekehrte Reihenfolge von Punkt 2.)


    Einbau ins Fahrzeug, welcher ja nunmal die letzten gesicherten Erkenntnisse bringt, muss noch warten, da ich erst mal sämtliche Dependencies des Kombiinstruments klären muss.

    Das Codieren und Flashen ist für mich als Laie nochmal ein erheblicher Aufwand, den ich nicht auf die leichte Schulter nehme!


    Sollte ich mit diesem Thread jemandem geholfen haben:

    "A click on 'thumb up' never hurt nobody ... "


    Gruß


    Mike

    4,5.) Programmer mit Testclip modifizieren:


    Burner-Board des Programmers analysieren:


    Cluster_6WA_virginize_13.jpg


    U2 stellt eine Parallelschaltung zu den Pins der Testfassung dar. Habe dies sicherheitshalber Pin für Pin nachgemessen.

    Also: Basisplatine des Testclips an der Ecke / Seite auf Höhe Pin1 "dremeln", bis der Elko ausgespart ist.

    Dabei nicht großzügig arbeiten, sondern in kleinen Schritten vorgehen. Immer darauf achten, dass keine der beiden Leiterbahnen (oben und unten!) weggefräst wird!

    Wenn mechanisch passend, dann die Basisplatine des Testclips in die vorgesehenen Pins bei U2 einlöten. Dabei auf die Kennzeichnung der Pins achten (roter Draht = Pin 1).

    Pin 1 bei U2 siehe blauer Pfeil.

    Nachdem ich ein qualitativ miserables Exemplar (des Testclips) erwischt habe, sitzen die Pins schräg in der Platine. Ergo musste ich noch für zusätzliche Isolation am 26-poligen Stecker sorgen.


    Cluster_6WA_virginize_14.jpg



    5.) Programmer-Software auf Rechner mit XP oder WIN7 installieren


    Die mitgelieferte Programmer-Software (R270 v1.20) ist für Win XP konzipiert und lief bei mir nicht auf WIN 10, egal welche Kompatibilitätseinstellungen ich gewählt habe.

    Also das Haus auf den Kopf gestellt und tatsächlich noch einen 15 Jahre alten Laptop meiner Tochter mit WIN 7 gefunden.

    Darauf ließ sich die Software installieren und sogar der USB-Treiber funktionierte sofort.

    Allerdings war keine Serial-Nummer dabei, bisher weiß ich auch noch nicht, ob die aufgetretenen Probleme damit zu tun haben.


    6.) Inhalt des EEPROMS auslesen und abspeichern auf HDD, falls was schiefgeht


    Strom und USB vorsichtshalber abmachen.

    Also vorsichtig (und in meinem Fall mit Lupe) den Clip an den Chip. Pin 1 natürlich auch hier wieder beachten.


    Cluster_6WA_virginize_17.jpg      Cluster_6WA_virginize_18.jpg



    Strom und USB wieder an den Programmer.

    Software starten . Bei "Select IC-Type" auf MCU klicken und im Untermenü "160D35160" wählen.

    Vorsichtshalber noch bei "Memory" "Eeprom" anwählen.


    Dann auf die Schaltfläche "Read" klicken und hoffen ...


    Cluster_6WA_virginize_21.jpg



    War der Lesevorgang erfolgreich, dann haben wir schon mal einen wichtigen Schritt geschafft.

    Gleich auf "Save BIN-File" klicken und dem Ding einen Namen geben, der später auch assoziiert, dass es sich um ein Backup des Originalzustandes handelt.


    Jetzt kommt der etwas diffizilere Teil der Angelegenheit:


    7.) Im Hex-Editor die Spender VIN identifizieren und mit "FF"s überschreiben


    Ich habe echt lange nach einer "VIN lang" gesucht, aber keine gefunden.

    Zweimal "VIN kurz" war relativ schnell entdeckt.

    Und nein, ich gebe keine Adresse an, es kann jeder die Screenshots als Anhaltspunkt wählen.

    Was mich an dieser Stelle eine halbe Stunde Schwitzen gekostet hat:

    Die Programmer-Software zeigt im Hex-Editor-Mode zwar die einzelnen Speicherstellen korrekt an, die Spalte rechts zum Lesen in ASCII zeigt jedoch nur 14 der 16 Bytes an.

    Daher besser das abgespeicherte BIN-File mit einem Hex-Editor (zB HxD) laden und die Speicherstellen verifizieren.


    Nun die beiden 7-Byte langen Einträge mit FF überschreiben (nicht mehr und nicht weniger!), anschließend wieder Save-BIN-File mit einem NEUEN NAMEN!


    Cluster_6WA_virginize_26.jpg       Cluster_6WA_virginize_27.jpg


    Jetzt wirds spannend:


    Tief durchatmen und


    8.) Aufs EEPROM schreiben!


    Erst nochmal alles double- und triple-checken!

    Dann auf "Write" klicken und erneut hoffen, dass es anschließend so aussieht !!!


    Cluster_6WA_virginize_28.jpg


    In den ersten beiden Zeilen steht übrigens der Kilometerstand, ist jedoch durch das EEPROM vor neugierigen Augen geschützt.



    Mike