Verbesserte Kommunikation und zuverlässigere Flashvorgänge bei BMW-Fahrzeugen
Viele preisgünstige K+DCAN-Diagnosekabel verwenden eine einfache Standardfirmware. Für gewöhnliche Diagnose- und Codierarbeiten reicht diese häufig aus. Bei längeren oder zeitkritischen Flashvorgängen können jedoch ungünstige CAN-Kommunikationsparameter, Timingprobleme oder Übertragungsfehler auftreten.
Die hier beschriebene Performance-Firmware aus dem EdiabasLib-Projekt verändert die interne Software des Diagnosekabels. Sie optimiert unter anderem die CAN-Kommunikation und ergänzt einen Bootloader, über den spätere Firmware-Updates durchgeführt werden können, ohne das Kabel erneut öffnen zu müssen.
Diese Anleitung beschreibt:
- die erstmalige Programmierung über einen USBasp-Programmer,
- die korrekte Verwendung der Datei
combined.hex, - die erforderlichen Fuse-Werte,
- sowie spätere Updates mit
CanAdapter.hexund dem UpdateLoader.
Wichtiger Hinweis
Das Flashen erfolgt direkt auf dem Mikrocontroller des Diagnosekabels. Eine falsche Verkabelung, eine ungeeignete Kabelplatine, falsche Fuse-Werte oder eine Unterbrechung während des Schreibvorgangs können das Kabel unbrauchbar machen.
Die Arbeiten sollten nur durchgeführt werden, wenn Grundkenntnisse im Umgang mit Mikrocontrollern, Spannungsversorgung und elektronischen Baugruppen vorhanden sind. Die Umsetzung erfolgt auf eigene Verantwortung.
Für welche Kabel ist diese Anleitung geeignet?
Die Anleitung bezieht sich auf klassische, FTDI-basierte USB-K+DCAN-Kabel mit einem kompatiblen AVR-Mikrocontroller – in der hier gezeigten Ausführung einem ATmega162 – und zugänglichen beziehungsweise vorbereiteten ISP-Programmieranschlüssen.
Nicht jedes äußerlich gleich aussehende K+DCAN-Kabel besitzt im Inneren dieselbe Platine. Vor dem Anschließen des Programmiergeräts muss daher geprüft werden, ob:
- die Platine der gezeigten Ausführung entspricht,
- ein kompatibler AVR-Mikrocontroller verbaut ist,
- die Anschlüsse MISO, MOSI, SCK, RESET, GND und +5 V eindeutig identifiziert werden können,
- und die Spannungsversorgung der Platine bekannt ist.
Die Anleitung darf nicht ungeprüft auf Kabel mit abweichender Hardware, einem anderen Mikrocontroller oder einer unbekannten Pinbelegung übertragen werden.
Warum wird eine alternative Firmware verwendet?
Bei generischen K+DCAN-Kabeln können insbesondere während längerer D-CAN-Flashvorgänge Timing- und Datenintegritätsprobleme auftreten. Ein Kommunikationsabbruch oder eine fehlerhafte Datenübertragung ist beim Programmieren eines Steuergeräts deutlich kritischer als bei einer einfachen Diagnoseabfrage.
Die alternative Firmware soll die Kommunikation des Adapters verbessern und stellt unter anderem folgende Funktionen bereit:
- schnellere CAN-Kommunikation durch eine Blockgröße von 0 und den Verzicht auf zusätzliche Trennzeiten,
- Konfiguration des CAN-Modus auch nach dem Einschalten des Adapters,
- anpassbare CAN-Parameter wie Blockgröße und Separation Time,
- korrektere Erkennung beziehungsweise Ausgabe des Zündungsstatus im K-Line-Betrieb,
- integrierter Bootstrap-Loader für spätere Firmware-Updates,
- reduzierter Stromverbrauch durch die Verwendung eines Schlafmodus.
Der integrierte Bootloader ist besonders wichtig: Nach der korrekten Erstinstallation kann die Anwendungsfirmware später über die serielle Verbindung aktualisiert werden. Das Kabel muss dafür normalerweise nicht erneut geöffnet und mit dem USBasp verbunden werden.
Keine Garantie gegen Steuergeräteschäden
Eine verbesserte Adapterfirmware kann Kommunikationsprobleme reduzieren, sie macht einen Flashvorgang jedoch nicht automatisch risikofrei. Beim Programmieren eines Fahrzeugsteuergeräts müssen weiterhin eine stabile Spannungsversorgung, die richtige Software, passende Datenstände und eine zuverlässige Verbindung gewährleistet sein.
Genannte Steuergeräte und Anwendungsbereiche
In der ursprünglichen Anleitung und in Anwenderberichten wird die Firmware unter anderem im Zusammenhang mit folgenden Motor- und Getriebesteuergeräten genannt:
- M5.2
- M5.2.1
- M7.2
- M9.2
- MS41
- MS42
- MS43
- MS45
- MSS52
- MSS54
- MSS54HP
- MSS60
- MSS65
- MSS70
- MSV70
- MSV80
- MSD80
- MSD81
- MSD85
- EDC17CP09
- verschiedene DME-, SMG- und TCU-Module
- ZF-6HP-Getriebesteuerungen
- GDSMG3
- GM1912
Besonders häufig wird die Firmware bei D-CAN-Fahrzeugen der E-Baureihen eingesetzt, beispielsweise bei E60, E63, E70, E82, E83, E90 und E92.
Die Aufzählung stellt keine allgemeine Freigabe für jedes Fahrzeug und jedes Flashprogramm dar. Vor einem Steuergeräte-Flash müssen immer Fahrzeug, Steuergerät, Datenstand und verwendete Software geprüft werden.
Benötigte Hardware
Für die erstmalige Programmierung werden folgende Komponenten benötigt:
1. Geeignetes K+DCAN-Kabel
Verwendet wird ein FTDI-basiertes USB-K+DCAN-Kabel mit einer kompatiblen Platine und zugänglichen ISP-Anschlüssen.
Das in dieser Anleitung gezeigte Kabel besitzt bereits vorbereitete Kontaktpunkte beziehungsweise Pins. Dadurch lässt sich der USBasp vergleichsweise einfach anschließen.
- ediabas k dcan DCAN Schnelle Magistral k+dcan und ediabas k können PT-CAN kabeln (500 kbit/s)
- Ediabas kcan dcan Auto Diagnose Tool Kabel OBD USB Schnittstelle für k+ kann ediabas coding kabel…
- k+can dcan obd2 usb Standard bmw k dcan obd2 Protokoll (BMW k dcan kabel OBD Schnittstelle)
- Obd2 k dcan KABEL Vollständige Diagnose von BMW k kann d von 1998 bis 2008 Modellen.
- k+dcan obd2 usb-Kabel Kabel mit 3-JAHRGARANTIE mit 24h ediabas Kabel bmw rechtzeitige Antwort
Letzte Aktualisierung am 6.08.2026 um 01:05 Uhr / Affiliate Links / Bilder von der Amazon Product Advertising API / *
2. USBasp-Programmiergerät
Der USBasp übernimmt die direkte Programmierung des AVR-Mikrocontrollers auf der Kabelplatine.
- Programmierung von Atmel Mikrocontroller und Arduino Boards über ISP
- Unterstützt 3,3 V und 5 V Mikrocontroller und Boards – Ausgangsspannung einstellbar per Jumper!
- Verwendbar auch über die Arduino IDE, AVRDUDE und BASCOM.
- Verfügt über einen Atmel ATmega8 Mikrocontroller
- Lieferumfang: 1x USBasp Modul, 1x passendes Flachbandkabel
Letzte Aktualisierung am 6.08.2026 um 05:58 Uhr / Affiliate Links / Bilder von der Amazon Product Advertising API / *
3. Verbindungskabel
Je nach Platine werden einzelne Jumperleitungen oder ein angepasstes Programmierkabel benötigt.
- ✅ Lieferumfang: 3x 40 Stk. 20cm Jumper Wire m2m/f2m/f2f + 3x MB-102 Breadboard mit 830 Kontakte
- ✅ Steckbrett für schnellen Aufbau elektronischer Schaltungen mit 830 Kontakten.
- ✅ Jumper Wire mit Stecker: „Female to Female“ / „Female to Male“ / „Male to Male“
- ✅ Länge der Kabel: 20 cm / 40 Stück pro Einheit / 120 Stück insgesamt
- ✅ Dieses Produkt enthält ein E-Book, das nützliche Informationen über den Beginn Ihres Projekts…
Letzte Aktualisierung am 6.08.2026 um 05:58 Uhr / Affiliate Links / Bilder von der Amazon Product Advertising API / *
4. Geeignete 12-Volt-Spannungsversorgung
Die offizielle EdiabasLib-Anleitung sieht bei der erstmaligen Programmierung zusätzlich zur 5-Volt-Verbindung des AVR-Programmers eine Versorgung des Adapters mit 12 Volt vor.
Dafür sollte eine stabilisierte und möglichst strombegrenzte Spannungsquelle verwendet werden. Die Spannungsversorgung darf nur an den eindeutig identifizierten Anschlüssen der verwendeten Kabelplatine angeschlossen werden.
Keinesfalls dürfen 12 Volt auf einen 5-Volt-Programmieranschluss gelangen.
Für die separate 12-Volt-Versorgung kann beispielsweise ein OBD-II-Stecker (weiblich) mit offenen Leitungsenden verwendet werden.
Die relevanten OBD-II-Kontakte sind:
- Pin 16: Batteriespannung beziehungsweise Dauerplus
- Pin 4: Chassis-Masse beziehungsweise Fahrzeugmasse
- Pin 5: Signalmasse
Bei meinem Adapter war die Belegung:
- Rot: Plus, verbunden mit Pin 16
- Blau: Minus, verbunden mit Pin 4
Die Kabelfarben sind jedoch nicht genormt und können bei einem anderen Adapter abweichen.
Vor dem Anschluss müssen deshalb die Pinbelegung, die Polarität und die anliegende Spannung unbedingt mit einem Multimeter überprüft werden. Verlasse dich niemals ausschließlich auf die Farben der Leitungen oder die Produktbeschreibung.
Wichtig: Der gezeigte Adapter dient nur als Beispiel. Vor der Verwendung müssen die offenen Leitungsenden eindeutig den OBD-Pins 16 und 4 zugeordnet werden.
- Mehrere Kabel können miteinander verkettet werden, um eine längere Länge zu erreichen.
- Hochwertige Materialien verleihen dem Kabel überlegene Flexibilität und Haltbarkeit.
- Kompatible Diagnose-Tools mit einer 16-poligen Buchse. Weil der OBD-II Connector Kabel Durchmesser…
- Connected Pin erfüllen alle Fahrzeugkommunikation Standard. Sicher, robust und unterstützt alle…
- Garantie und Service: Wir garantieren jedes Produkt für 12 Monate, was eine lange Freude an Ihrem…
Letzte Aktualisierung am 6.08.2026 um 03:18 Uhr / Affiliate Links / Bilder von der Amazon Product Advertising API / *
Benötigte Software
1. AVRDUDESS
AVRDUDESS ist eine grafische Benutzeroberfläche für AVRDUDE. Darüber werden der USBasp, der Mikrocontroller, die Firmwaredatei und die Fuse-Werte ausgewählt.
Link: AVRDUDESS – A GUI for AVRDUDE
2. Zadig
Mit Zadig wird unter Windows der passende Treiber für den USBasp installiert.
Link: Zadig
3. EdiabasLib-Firmware
Die Firmware sollte direkt aus dem offiziellen EdiabasLib-Repository beziehungsweise aus dem jeweils aktuellen Binary-Paket bezogen werden.
Nach dem Herunterladen wird das ZIP-Archiv entpackt. Die benötigten Dateien befinden sich im Bereich beziehungsweise Unterordner CanAdapter.
Quelle: https://github.com/uholeschak/ediabaslib/releases
Für diese Anleitung werden zwei unterschiedliche Dateien verwendet:
| Vorgang | Richtige Datei |
|---|---|
| Erstmaliges Programmieren mit USBasp | combined.hex |
| Späteres Update mit dem UpdateLoader | CanAdapter.hex |
Achtung: Erstinstallation und Update nicht verwechseln
Beim erstmaligen Programmieren darf nicht nur CanAdapter.hex geschrieben werden.
Für die Erstinstallation ist zwingend die Datei:
combined.hex
zu verwenden.
Diese Datei enthält sowohl:
- den Bootstrap-Loader beziehungsweise Bootloader
- als auch die eigentliche Adapterfirmware.
Nur dadurch sind spätere Aktualisierungen über den UpdateLoader möglich.
Die Datei:
CanAdapter.hex
enthält dagegen nur die Anwendungsfirmware und wird für spätere Updates über den bereits vorhandenen Bootloader verwendet. Die offizielle Anleitung weist ausdrücklich darauf hin, dass beim späteren Update CanAdapter.hex und nicht combined.hex ausgewählt werden muss.
4. UpdateLoader
Der UpdateLoader wird erst benötigt, nachdem das Kabel mindestens einmal korrekt mit combined.hex programmiert und der Bootloader eingerichtet wurde.
Link: UpdateLoader
Bevor es losgeht
Kabelplatine kontrollieren
Öffne zunächst das Gehäuse des K+DCAN-Kabels und vergleiche die Platine mit den Bildern dieser Anleitung.
Kontrolliere insbesondere:
- den verbauten Mikrocontroller,
- die Position der Programmierkontakte,
- die Beschriftung der Kontakte,
- mögliche Lötbrücken oder Schalter,
- und die Spannungsversorgung.
Sind Platine oder Pinbelegung nicht eindeutig identifizierbar, sollte der Programmiervorgang nicht durchgeführt werden.
Kurzschlüsse vermeiden
Lose eingesteckte Leitungen können beim kleinsten Verrutschen benachbarte Kontakte miteinander verbinden. Das kann den USBasp, den Mikrocontroller, die Kabelplatine oder den USB-Anschluss des Computers beschädigen.
Die zuverlässigste Lösung ist deshalb, die Programmierleitungen sauber an den vorgesehenen Kontaktpunkten anzulöten.
Ein lediglich aufgelegter oder schräg eingesteckter Kontakt kann für einen kurzen Test funktionieren, ist jedoch deutlich fehleranfälliger und wird nicht empfohlen.
Schritt 1: USBasp-Treiber mit Zadig installieren
Verbinde zunächst nur den USBasp mit dem Computer.
Starte anschließend Zadig. Wird der USBasp nicht direkt angezeigt, aktiviere innerhalb von Zadig gegebenenfalls die Anzeige aller Geräte.
Wähle in der Geräteliste:
USBasp
aus und installiere den vorgesehenen Treiber.
Die Installation kann einige Augenblicke dauern. Nach erfolgreicher Treiberinstallation sollte der USBasp von AVRDUDESS erkannt werden.
Achte darauf, in Zadig tatsächlich den USBasp auszuwählen. Wird versehentlich der Treiber eines anderen USB-Geräts ersetzt, kann dieses anschließend nicht mehr ordnungsgemäß funktionieren.
Schritt 2: USBasp mit der Kabelplatine verbinden
Für die ISP-Programmierung werden folgende Leitungen benötigt:
- MISO
- MOSI
- SCK
- RESET
- GND
- +5 V
Die Belegung des USBasp ist bei vielen Modellen auf der Unterseite der Platine aufgedruckt. Trotzdem sollte die Belegung vor dem Anschluss anhand der Beschriftung und des verwendeten USBasp-Modells kontrolliert werden.
Versorgungsspannung des USBasp
Bei dem in dieser Anleitung gezeigten USBasp muss die Spannungswahl auf:
5 V
stehen.
Die Einstellung darf nicht blind auf jedes Programmiergerät übertragen werden. Kontrolliere die Beschriftung und technische Ausführung deines USBasp.
Anschlüsse auf der K+DCAN-Platine
Verbinde die sechs ISP-Leitungen entsprechend der gezeigten Platinenbelegung.
Vor dem Einschalten muss jede Verbindung noch einmal einzeln kontrolliert werden. Besonders wichtig sind:
- gemeinsame Masse,
- korrekte 5-Volt-Verbindung,
- keine Vertauschung von MISO und MOSI,
- richtige RESET-Leitung,
- keine Verbindung zwischen benachbarten Pins.
Zusätzliche 12-Volt-Versorgung am OBD-Anschluss, des DCAN Kabels!
Nach der offiziellen EdiabasLib-Dokumentation muss der Adapter während der erstmaligen Programmierung zusätzlich mit 12 Volt versorgt werden. (Adapter, oben empfohlen)
Verwende hierfür ausschließlich die für die konkrete Platine vorgesehenen Versorgungspunkte. Eine strombegrenzte Laborspannungsquelle ist einer improvisierten Versorgung vorzuziehen.
Die offene Platine sollte während des Programmiervorgangs nicht lose im Fahrzeug liegen. Ein Kurzschluss an der Fahrzeugversorgung kann erhebliche Schäden verursachen.
Schritt 3: Verbindung mit AVRDUDESS prüfen
Starte AVRDUDESS und nimm folgende Grundeinstellungen vor:
- Programmer: USBasp
- Port: normalerweise automatisch beziehungsweise USB
- Mikrocontroller: ATmega162 beziehungsweise der tatsächlich erkannte kompatible Controller
Nutze anschließend die Funktion zum Erkennen des Mikrocontrollers.
Bei einer funktionierenden Verbindung sollte AVRDUDESS die Signatur des Controllers auslesen und den Mikrocontroller erkennen.
Wird der Mikrocontroller nicht erkannt?
Prüfe in diesem Fall:
- Ist der USBasp-Treiber korrekt installiert?
- Ist in AVRDUDESS „USBasp“ ausgewählt?
- Steht der Spannungsjumper auf der richtigen Position?
- Liegt die erforderliche Spannungsversorgung an?
- Ist GND sicher verbunden?
- Sind MISO, MOSI, SCK und RESET richtig angeschlossen?
- Haben alle Leitungen einen zuverlässigen Kontakt?
- Entspricht die Platine tatsächlich der gezeigten Ausführung?
Verwende keine Funktion, mit der eine falsche Prozessorsignatur erzwungen oder ignoriert wird. Wird ein anderer Mikrocontroller erkannt, muss zuerst die Hardware geklärt werden.
Schritt 4: Vorhandene Fuse-Werte auslesen
Vor jeder Änderung sollten die aktuell gespeicherten Fuse-Werte ausgelesen und dokumentiert werden.
Erstelle am besten einen Screenshot oder notiere die vorhandenen Werte. Damit lässt sich später zumindest nachvollziehen, welche Einstellungen ursprünglich vorhanden waren.
Bei AVR-Mikrocontrollern bestimmen die Fuse-Bits grundlegende Eigenschaften wie:
- Taktquelle,
- Startverhalten,
- Bootloaderbereich,
- Reset-Verhalten,
- und verschiedene Schutzfunktionen.
Falsch gesetzte Fuse-Bits können dazu führen, dass der Mikrocontroller nicht mehr normal startet oder über den USBasp nicht mehr ohne Weiteres erreichbar ist.
Schritt 5: combined.hex auswählen
Wähle im Bereich für den Flashspeicher die Datei:
combined.hex
aus.
Kontrolliere vor dem Schreiben noch einmal den vollständigen Dateinamen.
Nicht
CanAdapter.hexverwenden
CanAdapter.hexist für spätere Updates über den Bootloader vorgesehen. Bei der erstmaligen Programmierung musscombined.hexverwendet werden, da nur diese Datei Bootloader und Firmware gemeinsam enthält.
Aktiviere in AVRDUDESS:
- Flash schreiben
- Flash anschließend verifizieren
Das automatische Löschen des erforderlichen Speicherbereichs sollte entsprechend der AVRDUDESS-Konfiguration aktiviert sein.
Schritt 6: Fuse-Werte eintragen
Für die in der EdiabasLib-Dokumentation beschriebene Firmware werden folgende Fuse-Werte angegeben:
| Fuse | Hex-Wert |
|---|---|
| Low Fuse | 0xFD |
| High Fuse | 0xDC |
| Extended Fuse | 0xF9 |
Diese Werte richten unter anderem den vorgesehenen Bootloaderbereich und das Startverhalten des Mikrocontrollers ein.
Trage die Werte exakt ein:
- Low:
FD - High:
DC - Extended:
F9
- USBasp und 12-Volt-Versorgung korrekt anschließen.
- Oben rechts auf „Erkennen“ klicken. Es muss ATmega162 erkannt werden.
- Optional zuerst über „Lese“ die bisherigen Fuse-Werte auslesen und als Screenshot sichern.
- Eintragen:
- L:
FD - H:
DC - E:
F9 - LB: leer lassen
- L:
- „Sicherungsbytes einstellen“ aktivieren.
- Auf den oberen „Schre“-Button neben den Fuse-Werten klicken.
- Danach erneut „Lese“ drücken und prüfen, ob weiterhin
FD,DCundF9angezeigt werden. - Erst danach unter Flash die Datei
combined.hexauswählen. - Im Flash-Bereich „Schreib“ auswählen – auf deinem ersten Bild war noch „Überprüf“ aktiviert.
- Weiter zu „SCHRITT 7“
Die Fuses werden nur bei der Erstprogrammierung über den USBasp gesetzt. Bei späteren Updates über den UpdateLoader wird lediglich CanAdapter.hex verwendet; dabei werden keine Fuse-Werte erneut eingetragen.
Die Anzeige kann je nach AVRDUDESS-Version mit oder ohne vorangestelltes 0x erfolgen.
Fuse-Werte nicht verändern
Bereits eine einzelne abweichende Stelle kann das Start- oder Programmierverhalten des Mikrocontrollers verändern. Die Werte dürfen nur für die passende Hardware und Firmware verwendet werden.
Lock-Bits oder weitere Speicherbereiche werden nur verändert, wenn dies in der für die konkrete Platine vorgesehenen Dokumentation ausdrücklich verlangt wird.
Schritt 7: Firmware schreiben und kontrollieren
Starte nun den Schreibvorgang.
Währenddessen dürfen:
- keine Leitungen bewegt,
- keine Versorgungsspannungen abgeschaltet,
- der USBasp nicht abgezogen,
- und AVRDUDESS nicht beendet werden.
Das eigentliche Schreiben dauert normalerweise nur wenige Sekunden. Danach sollte eine Verifikation stattfinden, bei der der geschriebene Flashinhalt kontrolliert wird.
Der Vorgang ist erst erfolgreich abgeschlossen, wenn AVRDUDESS sowohl das Schreiben als auch die anschließende Prüfung ohne Fehler bestätigt.
Anschließend sollten die Fuse-Werte noch einmal ausgelesen und mit den vorgesehenen Werten verglichen werden:
- Low Fuse:
0xFD - High Fuse:
0xDC - Extended Fuse:
0xF9
Schritt 8: Programmiergerät entfernen und Kabel zusammensetzen
Schalte zunächst die externe Spannungsversorgung ab.
Trenne danach:
- die 12-Volt-Versorgung,
- den USBasp vom Computer,
- und anschließend die einzelnen Programmierleitungen von der Kabelplatine.
Kontrolliere die Platine auf:
- Lötbrücken,
- lose Drahtreste,
- beschädigte Leiterbahnen,
- verbogene Kontakte,
- und versehentlich verbundene Pins.
Erst danach sollte das Kabel wieder zusammengebaut und über USB mit dem Computer verbunden werden.
Schritt 9: Funktion des Kabels prüfen
Nach der Erstprogrammierung sollte das Kabel zunächst ohne laufenden Flashvorgang getestet werden.
Prüfe:
- Wird der FTDI-Adapter weiterhin unter Windows erkannt?
- Wird ein COM-Port angelegt?
- Kann eine Diagnosesoftware die Verbindung zum Fahrzeug aufbauen?
- Funktioniert eine einfache Identifikation oder Diagnoseabfrage?
- Bleibt die Verbindung stabil?
Als erster Test sollte keine Steuergeräteprogrammierung gestartet werden. Beginne mit einer normalen Diagnoseverbindung und einer ungefährlichen Abfrage.
Spätere Firmware-Updates mit dem UpdateLoader
Nachdem combined.hex einmal erfolgreich über USBasp programmiert wurde, befindet sich der Bootloader im Kabel.
Künftige Updates können anschließend mit dem UpdateLoader über die serielle Verbindung durchgeführt werden.
Dafür wird verwendet:
CanAdapter.hex
Nicht verwendet wird:
combined.hex
Ablauf des Updates
- K+DCAN-Kabel mit dem Computer verbinden.
- Im Windows-Geräte-Manager den zugehörigen COM-Port ermitteln.
- UpdateLoader starten.
- Richtigen COM-Port auswählen.
- Datei
CanAdapter.hexauswählen. - Aktualisierung starten.
- Kabel während des gesamten Vorgangs nicht abziehen.
- Abschlussmeldung des UpdateLoaders abwarten.
- Kabel nach erfolgreichem Update einmal vollständig trennen und erneut verbinden.
Die offizielle Dokumentation weist darauf hin, dass ein Update nur gestartet werden kann, wenn sich bereits eine gültige Anwendung im Adapter befindet.
Falls ein Update über eine Bluetooth-Verbindung nicht mehr möglich ist, kann der Adapter über USB verbunden werden. Der Updatevorgang wird gestartet und der Adapter anschließend mit 12 Volt eingeschaltet.

Häufige Fehler und mögliche Ursachen
Mikrocontroller wird nicht erkannt
Mögliche Ursachen:
- falscher oder fehlender USBasp-Treiber,
- falscher Programmer in AVRDUDESS ausgewählt,
- fehlende Masseverbindung,
- MISO und MOSI vertauscht,
- RESET nicht verbunden,
- instabile Steckkontakte,
- fehlende Versorgungsspannung,
- nicht kompatible Kabelplatine.
Flashen funktioniert, der UpdateLoader später jedoch nicht
Mögliche Ursachen:
- bei der Erstinstallation wurde
CanAdapter.hexstattcombined.hexverwendet, - die Fuse-Werte wurden nicht korrekt gesetzt,
- der falsche COM-Port wurde ausgewählt,
- die Firmwaredatei passt nicht zum Adapter,
- die Stromversorgung des Adapters ist unzureichend,
- im Adapter befindet sich keine gültige Anwendungsfirmware.
Wurde beim Erstflash versehentlich nur CanAdapter.hex programmiert, muss der Adapter erneut geöffnet und über USBasp korrekt mit combined.hex sowie den vorgesehenen Fuse-Werten programmiert werden.
AVRDUDESS meldet einen Verifikationsfehler
Mögliche Ursachen:
- instabiler Kontakt an den Programmierleitungen,
- Versorgungsspannung bricht ein,
- eine Leitung wurde während des Schreibens bewegt,
- falscher Mikrocontroller ausgewählt,
- ungeeignete oder beschädigte Firmwaredatei,
- beschädigter Mikrocontroller oder Flashspeicher.
Bei einem Verifikationsfehler darf das Kabel nicht für einen Steuergeräte-Flash verwendet werden.
Kabel wird nach dem Umbau nicht mehr als USB-Gerät erkannt
Die USB-Erkennung erfolgt üblicherweise über den FTDI-Baustein und nicht direkt über den programmierten AVR. Fehlt der COM-Port dennoch vollständig, sollten USB-Leitung, FTDI-Treiber, Platine und Spannungsversorgung kontrolliert werden.
Wird der COM-Port angezeigt, aber keine Fahrzeugkommunikation aufgebaut, liegt der Fehler eher im Bereich der Adapterfirmware, Fuse-Einstellungen, Verkabelung oder CAN-/K-Line-Hardware.
Wichtiger Hinweis zum Projektstatus
Die beschriebene Firmware stammt aus dem EdiabasLib-Projekt. In der aktuellen Projektdokumentation wird diese ältere Adapterfirmware nicht mehr aktiv unterstützt und ausdrücklich nur auf eigenes Risiko zur Verwendung empfohlen.
Für neu aufgebaute Bluetooth-Adapter verweist das Projekt inzwischen auf eine andere ELM327-Ersatzfirmware. Für bestehende FTDI-basierte USB-K+DCAN-Adapter kann die hier beschriebene Firmware weiterhin als Ersatzfirmware verwendet werden, eine individuelle Unterstützung oder Funktionsgarantie besteht jedoch nicht.
Die Firmware sollte deshalb ausschließlich aus der offiziellen Quelle bezogen und nicht aus unbekannten Downloadarchiven verwendet werden.
Hinweise zum Flashen von Fahrzeugsteuergeräten
Ein modifiziertes Diagnosekabel ist nur ein Bestandteil eines sicheren Flashvorgangs.
Vor dem Programmieren eines Fahrzeugsteuergeräts müssen zusätzlich folgende Punkte gewährleistet sein:
- stabilisiertes Lade- beziehungsweise Netzgerät am Fahrzeug,
- ausreichende Stromreserve,
- Laptop mit zuverlässiger Spannungsversorgung,
- deaktivierter Energiespar- und Ruhezustand,
- stabile USB-Verbindung ohne lockere Verlängerungen,
- passende Flashsoftware,
- korrekter Datenstand,
- eindeutige Zuordnung des Steuergeräts,
- vorherige Sicherung vorhandener Codierungen und Daten, soweit möglich.
Während eines laufenden Steuergeräte-Flashs dürfen weder Zündung noch Stromversorgung oder Datenverbindung unterbrochen werden.
Die Performance-Firmware ersetzt keine sorgfältige Vorbereitung und keine fachliche Prüfung.
Ursprüngliche Flashanleitung als PDF
Die ursprüngliche Anleitung enthält zusätzliche Informationen zu weiteren Kabelplatinen und Anschlussvarianten.
Bild- und Quellenhinweis
Diese Anleitung basiert auf technischen Informationen aus dem EdiabasLib-Projekt sowie auf einer überarbeiteten Fassung der Anleitung von SF BMW Coding.
Das zusätzlich eingesandte Bild von Matthias Lindner zeigt eine alternative praktische Umsetzung der Kontaktierung, wenn keine Servicepins vonhanden sind.
Er hat uns das eingeschickt um zu zeigen, dass es mit der richtigen Ausstattung auch so möglich ist..
Die Abbildungen können sich auf eine bestimmte Ausführung des K+DCAN-Kabels beziehen. Bei anderen Kabelrevisionen können sich Bauteile, Programmierkontakte und Leiterbahnführung unterscheiden.
Haftungsausschluss
Das Öffnen und Programmieren des Diagnosekabels erfolgt auf eigene Verantwortung.
BimmerGuide.de übernimmt keine Gewähr dafür, dass die beschriebene Firmware mit jeder Kabelplatine, jedem Mikrocontroller, jeder Diagnosesoftware oder jedem Fahrzeug kompatibel ist.
Eine Haftung für beschädigte Diagnosekabel, Programmiergeräte, Computer, Fahrzeuge oder Steuergeräte sowie für Datenverlust, Kommunikationsabbrüche oder Folgeschäden ist ausgeschlossen, soweit dies gesetzlich zulässig ist.
Arbeiten an elektronischen Baugruppen und Fahrzeugsteuergeräten sollten ausschließlich von Personen durchgeführt werden, die über die erforderlichen Fachkenntnisse und geeignete Mess- und Prüfmittel verfügen.