Software:Progman

Aus BMW Wiki
Zur Navigation springen Zur Suche springen

Progman heißt die alte Software, mit der sämtliche Steuergeräte im Fahrzeug mit Softwareupdates versorgt wurden. Die neue Variante heißt ISTA/P. Beide haben einen Versionsstand, der jeweils aktuell auf das Fahrzeug gespielt wird, wenn irgendeine Einheit ein Update benötigt. Dabei werden in aller Regel nur Updates, keine Downgrades gemacht (letzteres erfordert eine Sonderfreigabe vom Werk und wird von BMW-Werkstätten höchstens in PUMA-Fällen getan).

Warum das?

Die neuen BMWs mit dem CAN-Bus haben leider das Problem, dass dieser zwar ein Kommunikationsprotokoll definiert, aber nicht auf Applikationsebene. Wenn sich also zwei Geräte miteinander unterhalten wollen, müssen sie das auf OSI-Schicht 7 über ein nicht genormtes Protokoll tun. Ändert sich jetzt der Softwarestand auf einem beteiligten Gerät (z.B. aufgrund eines Austauschs wegen eines Defekts), müssen alle Geräte, die mit diesem kommunizieren, einen Softwarestand aufweisen, der damit kompatibel ist.

Ein gutes (hypothetisches) Beispiel wäre ein neues Navi, wo vielleicht in der Serienfertigung ein neuer IC eingesetzt wird, weil der alte nicht mehr gefertigt wird. Dazu braucht es eine neue Software, die aber bei der Übermittlung für das TMC vielliecht schon anders arbeitet, weil bei der Weiterentwicklung neue Features hinzugefügt wurden. Deshalb brauchen dann eventuell die TMC-Box und das Radio, die solche Daten liefern, auch ein kompatibles Update.

Theoretisch könnte man testen, welche Versionen welcher Steuergeräte miteinander kompatibel sind. Da das aber zu aufwendig wäre, wird nur jeweils ein in sich konsistenter Stand als Datenstand oder Integrations-Level getestet. Somit müssen alle Geräte auf den jeweiligen Softwarestand des I-Levels gebracht werden, wenn für ein einzelnes Gerät ein Update notwendig wird.

Früher führte das regelmäßig dazu, dass sämtliche Geräte auf den neuesten Softwarestand gebracht wurden, was einige Stunden bis zu Tagen dauerte. Seit einiger Zeit verwendet BMW dazu einen sogenannten Inferenz-Mechanismus, der die Abhängigkeiten auflöst. Die Abhängigkeiten bilden eine Art gerichteten Graphen, die minimal notwendigen Änderungen werden dann in der korrekten Reihenfolge gemacht, ähnlich einem Unix "make". Das spart Zeit, weil so i.d.R. weniger Steuergeräte ein Update benötigen. Nach dem Update haben alle Steuergeräte einen konsistenten Stand (BMW nennt das "Datenstand" oder "target data status"). Da die Abhängigkeiten nur vorwärts (also z.B. von Version X auf Version X+3), nicht aber rückwärts definiert sind, ist ein Downgrade kompliziert und risikoreich - deshalb wird er von BMW normalerweise nicht gemacht. Mit speziellen Softwaretools (z.B. WinKFP oder E-Sys) können Codierer auch einzelne Steuergeräte programmieren und damit ggf. auch Rückrüstungen vornehmen.

Man sollte dabei bedenken, dass nicht alle Updates immer nur Verbesserungen bringen (Gegenbeispiel 1, Gegenbeispiel 2) und außerdem viele Reparaturen ein Zwangs-Update erfordern, die dann auch nicht betroffene Einheiten in Mitleidenschaft ziehen können. Unter diesen Reparaturen sind einige, bei denen man ein notwendiges Update nicht vermuten würde, und die irgendwann sicher kommen, z.B. der Tausch der Lenksäule.

Dies ist auch der Grund, warum die BMW-Werkstätten ungern Updates vornehmen, wenn der Kunde das wünscht - es könnten Geräte kaputtgeflasht werden. Daher werden oft prohibitiv hohe Preise dafür genannt und ein Vorbehalt "aber auf Ihre eigene Gefahr" gemacht. BMW selbst gibt auch keine Release-Notes mehr heraus, aus denen ersichtlich wäre, welche Korrekturen oder Verbesserungen enthalten sind, um keine Begehrlichkeiten nach Updates zu wecken.


Aktuell ist gerade ISTA/P Version 2.56.5. Diese ISTA- (früher Progman-) Versionen beinhalten für die verschiedenen Modellreihen entsprechende Datenstände. Die ISTA-Hauptversionen kommen auf DVD auf die Diagnosestationen (spezielle PCs), die kleineren Unterversionen per Online-Update. Nicht jede ISTA-Version bedeutet auch für jede Baureihe bzw. jedes Steuergerät eine Veränderung:

Ein Liste mit den verschiedenen Versionen ist z.B. hier. Dort kann man z.B. sehen, dass für den E9x die Versionen 2.33.1 bis 2.33.3 identisch waren, sie hatten alle den Datenstand E89X-09-03-520.

Man kann selbst nicht herausbekommen, welcher Versionsstand auf dem Fahrzeug ist (z.B. verstecktes Menu o.ä.), außer, man hängt das Auto an eine Diagnosestation (es gibt mittlerweile auch Diagnosegeräte für Privatleute zu kaufen, z.B. BMWhat).


Sysadm 17:19, 25. März 2016