Arduino Bootloader Problem

OP #7531484
Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem mit einem Arduino Pro-Mini (eigentlich sogar an 3. Habe 3 Stück und alle zeigen das selbe Verhalten).

Ich habe einen Sketch aufgespielt und dieser läuft auch einwandfrei. Jedoch kann ich jetzt keinen neuen Sketch aufspielen. Es erscheint eine Fehlermeldung "avrdude stk500 getsync .. not in sync"

Nach etwas Recherche habe ich über einen Uno den bootloader neu gebrannt. Danach konnte ich dann auch wieder einen Sketch aufspielen. Jedoch nur genau einmal!

Dann kommt wieder die selbe Fehlermeldung. Im Grunde muss ich jetzt vor jedem Upload den bootloader flashen,...

Das ist super nervig und ich würde das gerne beheben. Hat vielleicht jemand eine Idee, woran das liegen könnte?

Bin für alle Tipps dankbar!

OP #7531495
Lesenswert?

Mhm, also der DTR pin sieht erstmal korrekt gelötet aus. Wäre auch ziemlich komisch, da es ja bei drei(!) Arduinos das gleiche Problem ist. Da würde ich eine kalte Lötstelle jetzt mal ausschließen.

Benutzen tue ich ein USB CP2102 Break out Adapter, an einem Windows 10 Rechner. Habe auch schon einen zweiten Adapter und ein anderes USB-Kabel probiert. Sogar einen anderen Rechner...

#7531501
Lesenswert?

Flo K. schrieb:

Nach etwas Recherche habe ich über einen Uno den bootloader neu gebrannt.

Sind dabei auch die Fuses gesetzt worden? Es könnte sein, dass du zunächst das Problem eines "alten" Bootloaders (und in der IDE nicht "Pro Mini 328P (old bootloader)" gewählt) hattest. Und vielleicht passen nun die Fuses nicht zu dem Bootloader, den du neu geflasht hast?

LG, Sebastian

OP #7531512
Lesenswert?

Arduino F. schrieb:

Ich habe nicht von einer Lötstelle gesprochen!

mh? Ok, kannst du mir auf die Sprünge helfen? Was genau meinst du? Wie kann ich das prüfen?

Sebastian W. schrieb:

Es könnte sein, dass du zunächst das Problem eines "alten" Bootloaders (und in der IDE nicht "Pro Mini 328P (old bootloader)" gewählt

Kann man das irgendwo wählen? Ich hab gerade nochmal alles durchgeschaut und nichts dergleichen gefunden in den Dropdowns der IDE.

#7531596
Lesenswert?

Flo K. schrieb:

Kann man das irgendwo wählen? Ich hab gerade nochmal alles durchgeschaut und nichts dergleichen gefunden in den Dropdowns der IDE.

Oh, sorry. Die Option gibt es nur beim Arduino Nano.

Flo K. schrieb:

Was genau meinst du?

Er meint, ob du den DTR-Ausgang deines USB-Seriell-Konverters auch an deine Pro Minis angeschlossen hast. Ohne diesen Anschluß kann der PC die Pro Minis nicht resetten um den Bootloader zu starten; man muss dann, während avrdude das Gerät sucht, von Hand den Reset-Knopf drücken ...

LG, Sebastian

Angehängte Dateien:
#7531709
Lesenswert?

Sebastian W. schrieb:

Kann man das irgendwo wählen? Ich hab gerade nochmal alles durchgeschaut und nichts dergleichen gefunden in den Dropdowns der IDE.

Oh, sorry. Die Option gibt es nur beim Arduino Nano.

Wenn der ProMini einen ATMega328 hat, könnte man ihn auch als Nano behandeln. Ich habe schon selbst den Optiboot auf einen ProMini gebracht, ohne mir neue Probleme einzufangen.

Er meint, ob du den DTR-Ausgang deines USB-Seriell-Konverters auch an deine Pro Minis angeschlossen hast. Ohne diesen Anschluß kann der PC die Pro Minis nicht resetten um den Bootloader zu starten;

Da er ein mal per USB flashen kann, dürfte DTR vorhanden sein.

man muss dann, während avrdude das Gerät sucht, von Hand den Reset-Knopf drücken ...

Das kann man ganz simpel ausprobieren.

Die Beschreibung, er könne einmal flashen, lässt mir den Verdacht aufkommen, dass der Bootloader auf dem µC nicht zur IDE passt und etwas überschrieben oder der Zeiger verbogen wird.

Oder, er hat die kleine Version mit dem AT168?

#7531941
Lesenswert?

Manfred P. schrieb:

Da er ein mal per USB flashen kann, dürfte DTR vorhanden sein.

Er kann nur einmal nach Aufspielen eines neuen Bootloaders eine Anwendung flashen. Solange nur der Bootloader im Flash ist braucht es den DTR-Reset noch nicht, weil der Bootloader sich immer nur wieder selbst neu startet. Insofern ist die Antwort auf die Frage nach der Verkabelung von DTR schon interessant.

LG, Sebastian

#7532108
Lesenswert?

Flo K. schrieb:

Im Grunde muss ich jetzt vor jedem Upload den bootloader flashen,...

Als ich vor 6 Monaten oder so meinen ersten Arduino Pro Mini in Betrieb genommen habe, was das auch so.

Ursache war der fehlerhafte Bootlader der damals neuesten Arduino IDE. Der vertrug sich nicht mit der Watchdog-Funktion des µP, die ich in meiner Anwendung hatte: Sowie die Anwendung einmal unter diesem Bootlader gestartet worden war, war Schluss mit lustig und ich musste den Bootlader neu flashen.

Der optiboot_atmega328-2022-07-18.hex hat das Problem gelöst.

Beitrag #7532118 wurde von einem Moderator gelöscht.
OP #7532142
Lesenswert?

Rolf schrieb:

Flo K. schrieb:

Im Grunde muss ich jetzt vor jedem Upload den bootloader flashen,...

Als ich vor 6 Monaten oder so meinen ersten Arduino Pro Mini in Betrieb genommen habe, was das auch so. Ursache war der fehlerhafte Bootlader der damals neuesten Arduino IDE. Der vertrug sich nicht mit der Watchdog-Funktion des µP, die ich in meiner Anwendung hatte: Sowie die Anwendung einmal unter diesem Bootlader gestartet worden war, war Schluss mit lustig und ich musste den Bootlader neu flashen. Der optiboot_atmega328-2022-07-18.hex hat das Problem gelöst.

Interessant!

Mhm… Wie bekomme ich diesen optiboot auf meine arduinos? Kann ich den fehlerhaften bootloader damit ersetzen? Hab das noch nie gemacht…

#7532175
Lesenswert?

Flo K. schrieb:

ie bekomme ich diesen optiboot auf meine arduinos? Kann ich den fehlerhaften bootloader damit ersetzen? Hab das noch nie gemacht…

Ja, du kannst ihn ersetzen, es gibt in der Community diverse Bootloader.

Du hast aber doch geschrieben, dass du schon mehrmals den Bootloader geflasht hast? Du musst nur irgendwo den Dateinamen eingeben oder die von der IDE vorgesehene Datei mit dem Optiboot überschreiben - dazu habe ich mir keine Details gemerkt, muss wohl ganz einfach gewesen sein.

Ich flashe nicht mit einem zweiten Arduino, sondern mit einem ISP-Programmer von Diamex. Seinerzeit habe ich mir dazu folgenden Text in die Knowhow-Datei geschrieben:

"In der Arduino IDE 2.1.0 als Programmer den Typ "Atmel STK500 development board" wählen. Mit dieser Konfiguration funktioniert der Diamex Prog-S2 beim Sparkfun-Board (Arduino Pro Mini), wenn er gemäß seiner Anleitung an den ISP-Pins (MOSI usw.) angeschlossen ist. Beim Hochladen von Programmen in der Arduino IDE die Option "Upload using programmer" wählen, nicht "Upload". Auch das Hochladen des von der IDE vorgesehenen Bootloaders funktioniert und ein danach hochgeladenes Programm läuft.

Clone-Boards haben u. U. eine CPU, die eine falsche Prozessor-ID liefert (Billig-Prozessor eingebaut?). Dann muss man in programmers.txt bei dem Programmer die Option -F ergänzen, um die falsche ID zu ignorieren: C:\Users*dein Name*\AppData\Local\Arduino15\packages\arduino\hardware\avr*1.8.6*\programmers.txt stk500.program.extra_params=-P{serial.port} -F Die IDE meldet dann beim Hochladen in roter Schrift, welche ID eigentlich korrekt wäre, das Hochladen funktioniert aber dennoch."

(Firma: Gast) #7532209
Lesenswert?

Rolf schrieb:

Clone-Boards haben u. U. eine CPU, die eine falsche Prozessor-ID liefert (Billig-Prozessor eingebaut?). Dann muss man in programmers.txt bei dem Programmer die Option -F ergänzen, um die falsche ID zu ignorieren:

Häää.... Es mag den ein oder anderen AVR geben, wo die Signatur Bytes kaputt sind, und man -F verwenden muss. Das ist aber so selten, das ich es noch nie erleben durfte.

Clone-Boards haben u. U. eine CPU, die eine falsche Prozessor-ID

Das habe ich auch noch nie erlebt. Und auch noch nie davon gehört. Kannst du einen Nachweis dafür liefern? Nur ein einziges halbwegs authentisches Beispiel.

Rolf schrieb:

es gibt in der Community diverse Bootloader.

Der Optibootloader wird auf dem UNO verwendet. Da muss man nicht suchen, der ist bei der IDE dabei.

Wie gesagt: Einfach zum UNO machen, dann ist mit dem WDT alles im Grünen.

#7532225
Lesenswert?

Bei einigen Herstellern ist die Brücke zwischen DTR und Reset nicht bestückt. Dann kann der Bootlader seine Aufgabe nicht erfüllen.

Das einfachste wäre doch, nach dem Aufspielen des Programms mit einem ISP Programmer das Flash und die Fuses auszulesen und zu kontrollieren.

#7532517
Lesenswert?

Arduino F. schrieb:

Es mag den ein oder anderen AVR geben, wo die Signatur Bytes kaputt sind, und man -F verwenden muss. Das ist aber so selten, das ich es noch nie erleben durfte.

Von "kaputt" habe ich nichts gesagt, ich habe "falsch" gesagt. Kaputt wäre z. B. 0x000000 oder 0xFFFFFF oder ein ähnliches Muster, das gar keine echte ID ist.

Clone-Boards haben u. U. eine CPU, die eine falsche Prozessor-ID

Das habe ich auch noch nie erlebt. Und auch noch nie davon gehört. Kannst du einen Nachweis dafür liefern? Nur ein einziges halbwegs authentisches Beispiel.

Ich habe beim Chinamann einen Pro Mini mit 328P bestellt und auf dem Chip stand auch 328P. Die Signatur war aber die des 328. Ok, angenommen, es war ein 328 drin (kann ich nicht mehr nachprüfen), dann war die Signatur richtig, aber die Beschriftung falsch - aber wo ist der Unterschied?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren