Posted

in

Updated

Arduino Pro Mini Sketch upload funktioniert nicht, Fehler „avrdude: stk500_getsync() attempt x of 10: not in sync: resp=0xfe“

Problem

Ich nutze einen Arduino Pro Mini ATmega328P (5V, 16MHz). Der upload des Sketch funktioniert nicht und bricht nach einiger Zeit mit der folgenden Fehlermeldung ab, wobei der „resp“-Wert variiert (resp=0xfe, resp=0xff, resp=0x3e, resp=0x 5e, resp=0x00, resp=0x3a). Egal, ob man die Arduino IDE oder den Web-Editor unter create.arduino.cc nutzt.

Arduino IDE: Fehlermeldung „programmer is not responding“
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xfe
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xff
Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.
Arduino Web-Editor: Fehlermeldung „programmer is not responding“
Using Port : COM3
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xa9
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xa9
avrdude done. Thank you.

Außerdem blinkt bei meinem Problem-Arduino Pro Mini die auf dem Arduino integrierte LED (auf Pin 13) sehr schnell (ca. 10 Mal pro Sekunde). Vielleicht ist das eine Anzeige für einen fehlerhaften Bootloader?!

Einfache Lösungsvorschläge

Versuche zuerst folgende einfachen Lösungsvorschläge:

  • USB-Kabel raus und wieder rein
  • ggf. USB-Kabel mit anderem Kabel tauschen
  • Einstellungen in der Arduino ID bzw. dem Web-Editor überprüfen
    • Arduino IDE: Menü „Werkzeuge“ -> Einstellungen für „Board“, „Prozessor“ und „Port“ checken
    • Arduino Web-Editor: Dropdown-Feld über dem Quellcode -> „Select other Board & Port“ -> Einstellungen für „Boards“, „Ports“ und „Flavours“ überprüfen
  • Arduino IDE bzw. für den Web-Editor den Browser neu starten
  • für den Web-Editor: Plugin „Arduino Create Agent“ neu starten
    • im SysTray mit Rechtsklick auf das Symbol
    • „Pause Plugin“
    • wieder mit Rechtsklick auf das Symbol
    • „Kill Plugin“
    • „Arduino Create Agent“ über das Startmenü suchen und öffnen

Bootloader flashen

Funktioniert hingegen das Hochladen von Sketches auf einem anderen Arduino problemlos, dann kann es sein, dass dein Arduino von Werk aus ohne Bootloader ausgeliefert wurde oder der Bootloader durchs Experimentieren oder einen Übertragungsfehler beschädigt wurde. In dem Fall können wir den Bootloader neu flashen.

Was braucht man dafür?

  • den normalen FTDI Programmer, den du auch für die Sketch-Uploads verwendest (USB to TTL Programmer, z.B. FT232RL) inkl. USB-Kabel
  • den defekten Arduino Pro Mini
  • zusätzlich einen funktionierenden Arduino Pro Mini (diesen werden wir als Bootloader-Programmer (AVRISP -> ISP = In-System Programmer) benutzen)
  • 6 female-to-female Jumper Kabel
  • eine installierte Arduino IDE (Bootloader flashen über den Web-Editor ist nicht möglich!)

Beachtet, dass man über den Web-Editor aktuell den Bootloader nicht flashen kann. Man benötigt also zwingend eine „reguläre“ installierte Arduino IDE.

Wichtig: Ich habe hier bei beiden Arduinos jeweils die 5V-Variante genutzt und entsprechend den Jumper auf dem FTDI-Programmer auf „5V“ gesetzt. Achte darauf, dass du bei der 3.3V-Variante deinen Arduino nicht durch 5V-Signale zerstörst!

Mache aus deinem funktionierenden Arduino einen ISP (In-System Programmer)

  • Stelle sicher, dass dein zweiter Arduino Pro Mini problemlos funktioniert! Schließe ihn an deinen FTDI-Programmer an und lade den Beispiel-Sketch „blink“ hoch. War das Hochladen erfolgreich? Blinkt die auf dem Board integrierte LED (Pin 13) ein mal pro Sekunde? Super, weiter geht’s.
Arduino IDE: Sketch „blink“ erfolgreich hochgeladen
  • Öffne die Arduino IDE (Hinweis: Arduino create Web-Editor hat die Funktionen fürs Bootloader-Flashen nicht eingebaut!) und lade den Sketch „ArduinoISP“: Menü „Datei“ -> „Beispiele“ -> „11.ArduinoISP“ -> „ArduinoISP“
  • Überprüfe die Board- und Port-Einstellungen: Menü „Werkzeuge“ -> Einstellungen für „Board“, „Prozessor“ und „Port“
  • Ab die Post: Lade den Sketch hoch
  • Ist alles erfolgreich hochgeladen, dann ist dein ISP-Arduino bereit!

Verkabelung: ISP-Arduino an den defekten Arduino

  • Trenne den ISP-Arduino vom FTDI-Programmer.
  • Ein Blick in den Code des „ArduinoISP“-Sketch verrät uns, wie wir den ISP-Arduino jetzt mit dem defekten Arduino verkabeln müssen:
Pinbelegung: RESET auf Pin 10
Pinbelegung: Standard-Hardware-Pins für MOSI, MISO und SCK
  • Der Reset wird über Pin 10 getriggert.
    • Reset: 10
  • Welche sind aber die Standard-Hardware-Pins für MOSI, MISO und SCK beim Arduino Pro Mini? Die Pinbelegung des Arduino Pro Mini, auch „Pinout“ genannt, verrät es uns:
    • MOSI: 11
    • MISO: 12
    • SCK: 13
  • Wir verkabeln den ISP-Arduino also folgendermaßen mit dem defekten Arduino:
ISP-Arduino<->defekter Arduino
5VRAW
GNDGND
1313 (SCK)
1212 (MISO)
1111 (MOSI)
10RST
Verkabelung: links der ISP-Arduino, rechts der defekte Arduino

Flash-Vorgang starten

  • Ändere in der Arduino IDE die Einstellungen im Menü „Werkzeuge“
    • ändere „Programmer“ zu „Android as ISP“
    • unter „Board“, „Prozessor“ und „Port“ setzt du die Parameter für den „Ziel-Arduino“, also den defekten Arduino, bei dem wir den Bootloader neu flashen wollen (auch wenn meine beiden Arduino Pro Mini unterschiedlich aussehen, technisch sind die beiden gleich, deshalb muss ich hier für meine konkrete Arduino-Variante nichts umstellen)
Programmer (für den ISP-Arduino) und Board-Parameter (für den defekten „Ziel-Arduino“) einstellen
  • Schließe den ISP-Arduino wie gewohnt über den FTDI-Programmer an deinen Computer an.
  • Im Menü „Werkzeuge“ klickst du nun auf „Bootloader brennen“.
Flash-Vorgang wurde gestartet

Leider hat sich bei mir das Problem damit nicht direkt lösen lassen… Ich bekomme folgende Fehlermeldung:

Fehler beim Flashen des Bootloaders
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): unknown response=0x12
Fehler beim Brennen des Bootloaders.

Wenn du auch diese Fehlermeldung bekommst, dann hilft dir vielleicht der Umweg über Linux – entweder in einer virtuellen Maschine oder auf einem Raspberry Pi. Kommt statt dem Fehler die Meldung „Bootloader wurde installiert“, dann ist alles glatt gelaufen!

Bootloader erfolgreich geflasht!

Test des vormals defekten Arduinos

Ist der Flash-Vorgang bei dir erfolgreich abgeschlossen, solltest du den vormals defekten Arduino direkt über den FTDI-Programmer an deinen Computer anschließen und den „blink“-Sketch uploaden. Hat alles geklappt? Blink, blink, blink… ?

Titelbild: „Arduino Pro Mini“ by oomlout is licensed under CC BY-SA 2.0, modified with Canva

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Consent Management Platform von Real Cookie Banner