Forum: Mikrocontroller und Digitale Elektronik Wie Bootloader auf Arduino Nano installieren


von Hans L. (holzwurm56)


Lesenswert?

Hallo,
die Frage wurde bestimmt schon mehrmals beantwortet, aber ich finde die 
Antwort nicht. Ich habe ein paar Nanos(China) bei denen wohl der 
Bootloader nicht mehr funktioniert. Kann ich über die ISP Schnittstelle 
mit z. B. Ponyprog den Bootloader installieren? Ich habe den Diamex AVR 
Programmer und einen ST Link V2. Wo könnte man das Bootloaderprogramm 
runterladen? Kann man mit XLoader was machen?

MfG

Hans

von Dieter S. (Gast)


Lesenswert?

Wenn du die Arduino IDE hast, da ist der Bootloader enthalten.
Ob dein Programmer auch unterstützt wird, musst du schauen. Wenn ja, 
geht das mit der IDE.

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Wenn du die Arduino-IDE installiert hast, findest du die Bootloader im 
Pfad des Arduino Verzeichnisses:

(Pfad zum Arduino-Ordner)/hardware/arduino/avr/bootloaders/

Ich verwende die Optiboot-Bootloader die klein und schnell sind, dafür 
jedoch ein EEProm NICHT über den Bootloader (benötigte ich bisher nicht) 
flashen kann.

Vorsicht: Ein Bekannter hat neuerlich China-Clones gekauft und nicht 
darauf geachtet gehabt, welche MCU verbaut ist und hatte prompt einen 
ATMega168 drauf (eigentlich gehört dort ein ATmega328p drauf).

Die Optiboot-Bootloader verwenden eine Baudrate von 115200 Bd, von daher 
mußt du bei der Verwendung darauf achten, die korrekte Baudrate bei 
Benutzung einzustellen. In der Arduino-IDE wählst du hierfür beim 
Programmieren dann einen Arduino-Uno anstelle Arduino-Nano aus 
(funktioniert absolut gleich).

Im Anhang hab ich die Optiboot-Bootloader aus der IDE gepostet. Flashen 
kannst du die Nano's mit:

(für Atmega328p, zu flashen mit Diamax AVR Programmer)

avrdude -c stk500v2 -V -B 3 -P DeinComPort -b 115200 -p atmega328p -U 
flash:w:optiboot_atmega328.hex -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U 
efuse:w:0x05:m -U lock:w:0x2f:m

(für ATmega168, zu flashen mit Diamax AVR Programmer)

avrdude -c stk500v2 -V -B 3 -P DeinComPort -b 115200 -p atmega168 -U 
flash:w:optiboot_atmega168.hex -U lfuse:w:0xff:m -U hfuse:w:0xdd:m -U 
efuse:w:0x04:m -U lock:w:0x2f:m

Anmerkung:

"DeinComPort" ist durch den Anschluss zu ersetzen, an dem der Programmer 
angeschlossen ist:

Unter Windows bspw.: COM4

Unter Linux:

Der Diamax Programmer meldet sich als virtueller Com-Port an. Welcher 
Port das ist, erfährst du, in dem du evtl. eingesteckte Sticks, die 
einen virtuellen Com-Port verwenden entfernst, danach den Programmer 
einsteckst und folgendes auf der Konsole eingibst:

ls /dev/ttyACM*

(hier sollte dann, wenn alles richtig ist dann /dev/ttyACM0 angezeigt 
werden)

von Hans L. (holzwurm56)


Lesenswert?

Hallo,
wenn ich den Arduino über den Diamex programmiere muß ich dann die 
Baudrate auch für den Diamex auf 115200 setzen?

MfG

Hans

von Wolfgang (Gast)


Lesenswert?

Hans L. schrieb:
> wenn ich den Arduino über den Diamex programmiere muß ich dann die
> Baudrate auch für den Diamex auf 115200 setzen?

Es gibt genau zwei Möglichkeiten. Die auszuprobieren dürfte deutlich 
schneller gehen, als hier auf eine Antwort zu warten.

von Manfred (Gast)


Lesenswert?

Hans L. schrieb:
> wenn ich .. muß ich dann ..
einfach mal selbst nachdenken oder probieren?

Ich habe mir irgendwann vom Chinesen einen ISP-Programmer mitkommen 
lassen, einfach nur, um ihn zu haben.

Als ich ihn dann überraschend brauchte, war erstmal eine Internetsuche 
nach dem passenden USB-Treiber notwendig. Dann kam Rätselraten und 
genaues Angucken der Platinen, wie herum denn der ISP-Anschluß 
anzustecken ist.

Nachdem das gelöst war, durch Ausprobieren die passende Einstellung der 
Arduino-IDE gefunden und gut!

Das hat mich irgendwas um 1-2 Stunden beschäftigt, hat mir aber ganz 
sicher mehr Wissen gebracht als hier zu fragen!

Was mache ich im realen Arbeitsleben: Zweimal täglich meinen Chef 
fragen, ob ich etwas so oder so machen soll oder es einfach nach bestem 
Wissen tun und warten, ob jemand meckert? Mit eigenständig tun fahre ich 
seit vielen Jahren sehr gut - also überdenke Deine Vorgehensweise.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.