"Avrdude: stk500_getsync (): nicht synchronisiert: resp = 0x00", auch bekannt als "Some Dude Named Avr" lässt mich mein Programm nicht hochladen

98

Ich habe neulich ein großartiges Programm gemacht und wollte es auf mein Arduino hochladen. Nachdem ich auf den Upload-Button geklickt hatte, kam ein gemeiner Typ namens avr vorbei und hielt mich an und sagte:

avrdude: stk500_getsync (): nicht synchronisiert: resp = 0x00

Alles was ich tun möchte , ist mein Programm nur hochladen, aber avr lässt mich nicht. Er ist sogar unverständlich. Kann mir jemand sagen, was zum Teufel er sagen will und wie er ihn loswerden kann?


dh:

Immer wenn ich versuche, ein Programm auf mein Arduino hochzuladen, erhalte ich folgende Fehlermeldung:

avrdude: stk500_getsync (): nicht synchronisiert: resp = 0x00

Was bedeutet das und wie kann ich das beheben?

Der Typ mit dem Hut
quelle
4
Ziemlich häufige Fehlermeldung, nicht immer trivial zu lösen: electronics.stackexchange.com/…
jippie
12
Schöner Titel! Ich habe diesen Fehler selbst
gehabt
6
+1 für den Titel: D ... Ich hasse diesen Kerl wirklich so sehr wie Sie!
David Refoua
Versuchen Sie, den Treiber (cp2102) für das Arduino zu installieren. Das hat mir geholfen. Danke für die vorherigen Antworten ppl :-)
Dieser Beitrag vom Juni 2018 hat es für mich gelöst (1. Antwort): arduino.stackexchange.com/questions/51729/…
Michael Sims

Antworten:

62

Dies wird durch einen allgemeinen Verbindungsfehler zwischen Ihrem Computer und dem Arduino verursacht und kann auf viele verschiedene spezifische Probleme zurückzuführen sein.

Hier sind einige einfache Dinge, die diesen Fehler häufig beheben können:

  • Trennen Sie das USB-Kabel und schließen Sie es wieder an.
  • Drücken Sie die Reset-Taste auf der Platine.
  • Starten Sie die Arduino IDE neu.
  • Tools ► Board ►Stellen Sie sicher, dass Sie das richtige Board in auswählen , z. B. Wenn Sie den Duemilanove 328 verwenden, wählen Sie diesen anstelle von Duemilanove 128 aus. Auf dem Board sollte angegeben werden, welche Version auf dem Mikrochip vorhanden ist.
  • Stellen Sie sicher, dass Sie den richtigen Anschluss in ausgewählt haben Tools ► Serial Port ►. Gehen Sie folgendermaßen vor, um herauszufinden, an welchem ​​Port er angeschlossen ist:
    1. Trennen Sie das USB-Kabel.
    2. Gehen Sie zu Tools ► Serial Port ►und sehen Sie, welche Ports aufgelistet sind (zB COM4 COM5 COM14).
    3. Schließen Sie das USB-Kabel wieder an.
    4. Gehen Sie zurück zu Tools ► Serial Port ►und sehen Sie, welcher Port zuvor noch nicht vorhanden war.
  • Stellen Sie sicher, dass an den digitalen Pins 0 und 1 keine Teile angeschlossen sind, auch keine Abschirmungen.

Wenn keine dieser Funktionen funktioniert, sollten Sie versuchen, das Problem zu isolieren, indem Sie Dinge ersetzen: Versuchen Sie es mit einem anderen Computer auf demselben Arduino, versuchen Sie es mit einem anderen Arduino auf demselben Computer und versuchen Sie es mit einem anderen USB-Kabel.

Wenn das Problem beim Computer liegt:

  • Überprüfen Sie alle Computerprobleme in der obigen Liste "Problembehebungen".
  • Installieren Sie die IDE neu.
  • Installieren Sie die Treiber neu.

Wenn das Problem mit dem Arduino ist:

  • Überprüfen Sie alle Probleme im Zusammenhang mit der Platine in der Liste "Problembehebungen" oben.
  • Stellen Sie sicher, dass der Mikrocontroller richtig sitzt.
  • Möglicherweise müssen Sie den Bootloader brennen .
  • Tauschen Sie den Mikrocontroller aus, wenn Sie einen anderen zur Hand haben.
  • Möglicherweise haben Sie Ihren Arduino gemauert. Es tut uns leid :(
Der Typ mit dem Hut
quelle
3
Es gibt andere mögliche Ursachen. Sie haben möglicherweise den ATmega beschädigt, Sie haben möglicherweise den Bootloader des ATmega beschädigt, Sie haben möglicherweise Stromprobleme oder eine Vielzahl anderer Möglichkeiten. Das not in sync: resp=0x00ist wirklich eine generische "ATmega antwortet nicht" Nachricht. Alles, was dazu führen kann, dass der ATmega nicht reagiert, kann dazu führen.
Connor Wolf
Kann ich also nie etwas in 0 oder 1 haben?
Tim
2
@Tim Sie können Dinge an diese Pins anschließen, aber Sie müssen sie trennen, wenn Sie über das USB-Kabel mit Ihrem Arduino kommunizieren möchten.
Der Typ mit dem Hut
Ich habe diesen Fehler bei meinem ersten Duemillanove vor Jahren bekommen. Es war ein toter UART-Chip (oder eine Verbindung von USB zu UART-Chip). Sehr frustrierend. Ich habe einen AVR-Programmierer gekauft und den Bootloader gebrannt. Kaufte eine andere CPU mit vorgeladenem Bootloader. Erst als der Hersteller einen Ersatz schickte, konnte ich mich der Welt der Arduino-Fans anschließen (und ich habe jetzt zwei Ersatz-CPUs).
Linhartr22
"Trennen Sie das USB-Kabel und schließen Sie es wieder an" funktioniert bei mir
Grace Shao
20

Ein weiterer Fix:

Wechseln Sie Tools->Processor->Atmega 328Pzu Atmega 328P (Old Bootloader). Beachten Sie, dass diese ProcessorOption nur verfügbar ist, wenn Sie bestimmte Boards unter auswählen Tools>Board.

Dies funktionierte für meinen Arduino Nano mit CH340 unter Verwendung von Arduino IDE 1.8.5 unter Linux Ubuntu 17.10. Außerdem wird dies wahrscheinlich passieren, wenn Sie IDE 1.8.9 oder neuer verwenden und einen alten oder geklonten Nano erhalten.

Aguadopd
quelle
3
Das war die Lösung! Der neue Bootloader verwendet die doppelte Baudrate (115200 statt 57600).
Suuuehgi
1
Ihre Antwort behebt mein Problem. Danke!
Vladyslav Savchenko
12

Leider kann es auch bedeuten, dass Sie Ihren Mikrocontroller verbrannt haben. Haben Sie etwas Gefährliches getan, bevor Sie versuchten, eine neue Skizze hochzuladen? Funktioniert der Mikrocontroller mit seiner zuvor geladenen Skizze noch?

Ricardo
quelle
10

Wenn keiner der oben genannten Schritte funktioniert, installieren Sie Avrdude und den avr-gcc-Compiler erneut. Ich musste das tun, nachdem meine Mega darunter zu leiden begann.

Wenn Sie Avrdude und avr-gcc separat installiert haben, deinstallieren Sie sie einfach. Wenn nicht, müssen Sie möglicherweise die Arduino IDE neu installieren. Diese Schritte hängen von Ihrem Betriebssystem ab.

Der Arzt
quelle
Es ist sehr unwahrscheinlich, dass das Problem durch die verwendete Toolchain verursacht wird. Das ist zu extrem, IMO.
Asheeshr
3
Nur so kann ich mein Problem lösen
TheDoctor
Über welchen Installationsprozess sprechen Sie? Das Arduino-Editor-Tool wird gerade entpackt. Es findet kein Installationsvorgang statt.
Connor Wolf
9

Ich habe die gleiche Nachricht erhalten. Jedes Mal, wenn es gelöst wurde, wählen Sie den richtigen Anschluss, dh USB, im Menü Extras und dann Anschlüsse. Es ist ein einfacher Schritt, aber ich vergesse immer. Ich werde den Arduino ausstecken, um das aktuelle Programm zu stoppen, ihn erneut an meinen Computer anschließen, um das neue Programm hochzuladen und den Fehler, die Panik und den Fluch zu bekommen, und erst dann daran denken.

Gabe Ruiz
quelle
1
Ich denke, das ist die gängigste Lösung.
Küken
9

In meinem Fall hatte ich den RTS-Pin des FTDI-Chips nicht mit einem Kondensator verbunden, der an den RST-Pin des Arduino Pro Mini ging. Nachdem ich diese Verbindung installiert hatte, wurde der Fehler nicht mehr angezeigt und ich konnte den Code hochladen.

Nick Gammon erklärt dies in seinem Forum . Ich habe ein Bild hinzugefügt, wo / wie der Kondensator platziert werden soll. Bildbeschreibung hier eingeben

tr4nc3
quelle
+1 für das schöne bild des usb programmierers, der direkt an einen atmega chip angeschlossen ist.
Raddevus
Ich hatte auch einige schlechte Verbindungen auf meinem Board, ich zog alles aus der Steckdose und lud eine einfache Skizze hoch und es funktionierte. Nun stellen Sie fest, welches Kabel nicht am richtigen Ort ist
Seraf
5

Ich hatte genau das gleiche Problem. Ich habe versucht, die IDE auf einem anderen Laptop zu installieren und das Programm von diesem Laptop hochgeladen. Problem gelöst. Dann kehrte ich zu meinem Laptop zurück, deinstallierte die IDE und installierte sie erneut. Es fing an zu funktionieren.

Ich war jedoch nicht zufrieden, da ich die Ursache des Problems nicht finden konnte. Also habe ich versucht, alles auf die gleiche Weise erneut auszuführen. Ich habe das Problem gefunden, bin mir aber nicht sicher, ob das die eigentliche Ursache sein kann .

In meinem Projekt musste ich eine serielle Kommunikation zwischen arduino und MATLAB (GUI) durchführen. Um die Ausgabe (Typ) der seriellen MATLAB (GUI) -Daten zu überprüfen, habe ich HYPERTERMINAL und auch VIRTUAL SERIAL PORT EMULATOR verwendet. Ich habe festgestellt, dass jedes Mal, wenn Hyperterminal oder VSPE ausgeführt wird, während mein serieller Monitor eingeschaltet ist, die Upload-Funktion des Programms durcheinander gebracht wird. Ich bin nicht sicher, ob es an VSPE oder HYPERTERMINAL liegt, aber die Neuinstallation der IDE hat bei mir funktioniert.

Hrdip
quelle
2
Eine der seriellen Steuerleitungen, ich denke es ist DTR, wird zum Zurücksetzen des Arduino verwendet. Wenn Sie versuchen, Ihr Arduino zu programmieren, könnte Ihr Terminalprogramm stören.
Linhartr22
Dies funktionierte nur für mich, als ich auch meinen Arduino Library-Ordner löschte, der alle Einstellungen und zusätzlichen Bibliotheken enthält.
Jethro
3

Für Leute, die Linux Mint verwenden, stellte ich fest, dass es funktionieren würde, wenn sie den "TTY SO" -Port anstelle des "Arduino" -Ports auswählen (ich kann es Ihnen nicht genau sagen, da ich diesen Computer gerade nicht vor mir habe). .

Als ich das nächste Mal das Arduino benutzte, bekam ich wieder die gleiche Nachricht, also wechselte ich zurück zum "Arduino" -Port und es hat seitdem so funktioniert.

Ich bin nicht so technisch versiert wie der Rest von euch, also habe ich keine Ahnung, warum das funktioniert oder was das Problem war, aber es hat funktioniert, was mich interessiert. Vielleicht ist das für jemanden nützlich.

Mikech
quelle
3

Ich habe die IDE und die Treiber usw. deinstalliert, alles erneut installiert, dann die Arduino IDE als Administrator ausgeführt und die Kompatibilität auf Windows 7 eingestellt (ich verwende derzeit 10).

Ich habe auch den Programmierer auf AVR ISP umgestellt (ich glaube nicht, dass das wichtig ist, aber ich habe es trotzdem geändert).

Alles funktioniert wieder ... hoffentlich kann dies auch jemand anderem helfen.

Daysley
quelle
2

Ein ungewöhnliches Problem, aber ich habe die Mikrocontroller oft ausgetauscht, und ich bekam diesen Fehler, wenn einer nicht richtig sitzt. Ich konnte ein paar Mal brennen, aber ich denke, es ist wieder herausgerutscht - ein kleiner Druck auf den Rücken vom ATMega328 behoben!

furchtbar
quelle
1

Es besteht auch die Möglichkeit, dass der Controller selbst falsch in den Sockel des Arduino eingesetzt wird. Dies kann für den Controller gefährlich sein (was zu einem Zapping führen kann), aber in meinem Fall gab es nur einen nicht synchronen Fehler, sodass ich keinen Code hochladen konnte.

Prüfen Sie also einfach, ob die Kerbe am IC in die richtige Richtung zeigt (Sie können sie mit den Bildern der Platine online abgleichen). Die Kerbe am Controller des Uno sollte zur Kante der Platine zeigen.

Arijit
quelle
1

Ich hatte diesen Fehler auch aufgetaucht. Es war das erste Mal, dass ich ein neues Arduino Nano-Board verwendete, nachdem ich Header angelötet hatte. Wenn Sie nur die Blink-Skizze drehen, ist nichts mit dem Board verbunden.

Ich habe einen winzigen Lotmangel zwischen den Stiften GROUND und RESET gefunden. Ich habe es abgeholt und dann konnte ich es ok hochladen.

Ich nehme an, das könnte passieren, wenn Sie irgendwo denselben Kurzschluss auf einer Rennstrecke hatten.

Wilkie
quelle
1

Hatte gerade den gleichen Fehler mit einem brandneuen Mini Pro. Da das Standard-Blink-Programm, das mit den meisten Arduino vorinstalliert war, ausgeführt wird, weiß ich, dass das Gerät wahrscheinlich in Ordnung ist.

Also habe ich die Header überprüft, die ich gerade noch einmal verlötet habe, und festgestellt, dass die TX0-Pins nicht genügend verlötet sind. Nach dem erneuten Löten funktioniert alles.

tst
quelle
1

Nach vielem Ausstecken, Überprüfen der Ports, Neustarten der IDE usw. Das Problem, das bei der Behebung des Fehlers mit Arduino Mega 2560 zu bestehen schien, bestand darin, den Windows-USB-Arduino-Treiber zu deinstallieren und ihn dann mithilfe des Treibers hier neu zu installieren und manuell aus der Liste auszuwählen com ports> arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml Möglicherweise habe ich Ich habe es auf meinem Uno getestet und bin dann zurück zum Mega, sodass es eine kleine Chance gibt, mit dem Uno zu sprechen, was AVRDUDE glücklich, aber unwahrscheinlich macht.

Hamish_Fernsby
quelle
1

Wenn ich ein Problem beim Hochladen auf meine Boards bekomme, lade ich ein anderes Programm hoch, wie das Blink-Beispiel. Dies scheint etwas zurückzusetzen und ich kann dann mein eigenes Programm hochladen (das ziemlich groß ist).

Es könnte sich lohnen, dies zu versuchen, um festzustellen, ob es in Ihrem Fall funktioniert, obwohl ich keine Ahnung habe, warum es funktioniert.

Jethro
quelle
Welches Board und welcher Bootloader?
Juraj
Arduino Nano, ATMega328P (nicht von Drittanbietern). Hardware-Version: 2, Firmware-Version: 1.16, Gerätesignatur ist 0x1e950f Ich habe den Bootloader nicht überprüft, aber sie werden als "traditioneller Bootloader" angekündigt
Jethro
Ihre Antwort ist daher spezifisch für den alten Nano-Bootloader
Juraj
Vielen Dank! Ich werde mir Bootloader ansehen und versuchen, sie zu aktualisieren. Haben Sie Informationen zu diesem Fehler?
Jethro
1

Ich hatte ein ähnliches Problem mit meinem Uno-Board

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x90

Versuchte viele Methoden

  • Drücken Sie Reset, bevor Sie Pakete senden
  • verschiedene IDE-Versionen
  • Kabel wechseln
  • Controller selbst ändern
  • Loopback-Test

aber alle oben genannten scheiterten.

Ich benutze Ubuntu 16.04.4 LTS 4.15.0-33-generic(während ich diesen Kommentar schreibe). Das CDC ACM Modul nicht geladen wurde, also keine /dev/ttyACM0wurde Gerät auszuwählen in geschaffenArduino IDE -> Tools -> Port

Rufen Sie daher den Modulnamen ab und laden Sie ihn

$ lsusb 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


$ sudo modprobe cdc-acm

Der obige Befehl fügt das erforderliche Modul ein. Jetzt kann ich den richtigen Port auswählen und den Code hochladen

Von den verschiedenen Lösungen, die dies für mich funktionierte, hoffe, dass dies auch jemandem hilft.

New Chethan
quelle
0

Ich habe es durch ein Update der Boards gelöst (unter "Board Manager")

pablo
quelle
Hast du einen Arduino Nano?
per1234
0

Ich hatte heute bei einigen Codes das gleiche Problem und habe es folgendermaßen gelöst:

1- Zuerst habe ich einen einfachen LED-Blinkcode eingegeben. Es gab den gleichen Fehler. Es bestätigt, dass der Fehler beim Hochladen auftritt und nichts mit dem Kompilieren zu tun hat. Ich habe auch überprüft, ob mein Code korrekt kompiliert wurde.

2- Ich habe ein anderes Board genommen, aber es hat auf diesem PC einwandfrei funktioniert. Das bedeutet, dass der Computer und das USB-Kabel in Ordnung sind.

3- Ich habe die fehlerhafte Karte an einen anderen PC angeschlossen und es gab überraschenderweise keinen solchen Fehler beim Hochladen. Das gab mir Hinweise auf Treiberprobleme im ersten PC.

4- Also habe ich den Treiber deinstalliert und auf dem ersten PC neu installiert, indem ich ihn von hier heruntergeladen habe

(Stellen Sie sicher, dass während der Installation des Treibers über diesen Link Ihr Board mit dem PC verbunden bleibt.)

Es hat jetzt gut funktioniert :-)

gpuguy
quelle
0

Ich hatte diesen Fehler in meinem Linux Mint 17.3-Laptop mit Arduino Nano: stk500_getsync (): nicht synchronisiert: resp = 0x00

Gelöst:

  • entfernt alles, was 'arduino' oder 'avr' in seinem Namen hatte
  • entfernte Verzeichnisse .arduino und .arduino15 (Beachten Sie den Punkt im Namen)
  • entfernte Version 1.8.7 mit Deinstallation des Pakets
  • Apt-Get installieren Arduino (Version 1.1.0)
  • getestet mit einer einfachen skizze (alles ok)
  • installierte Version 1.8.7 mit der Installation des Pakets
  • zusammengestellt.
  • wählte ATmega328p (Alter Bootloader) für den Prozessor, Arduino Nano für die Karte und / dev / ttyUSB0 für den Port => IT WORKS!

Es scheint, dass der "alte Bootloader" in diesem Fall der Trick war. Ich habe jetzt beide ver 1.1.0 und 1.8.7, wen interessiert das.

Mistofeles
quelle
Sie sollten zuerst die Antwort von Aguadopd
Juraj