Falls jemand auch in den “Genuss” kam einen Anet A8 Drucker zu erwerben, welcher Out of the Box keine Sicherheitsfunktionen wie “Thermal Runaway” etc besitzt. Dem sei gesagt, wenn ihr eine Mainboard Revision 1_5 (1.5) habt, ist es gar nicht so einfach Marlin oder eine andere Custom Firmware zu flashen. Der Grund scheint hier wohl ein defekter oder zu großer Bootloader zu sein.
Ich habe nun einige Tage damit verbracht, herauszufinden warum es nicht auf dem normalen Weg mit der Arduino IDE nicht klappt. Am Ende bin ich dazu übergegangen, das ganze mit einem ISP Programmer zu erledigen. Was anfangs auch nicht ganz einfach war, ich komme nicht aus der Microcontroller Welt ,)
Um es kurz zu halten, ich habe es mit folgendem Werkzeug erledigt:
Mit einem Arduino Nano als AVRISP hab ich es nicht geschafft, ich vermute es lang an der Stromversorgung, welche nicht über den Arduino laufen sollte. Mit dem oben verlinkten USB ISP auf 3.3v gestellt klappt es auf Anhieb super. Nein, das sind keine Affiliate Links, ich habe damit nur gute Erfahrung gemacht.
Installiert euch am besten ein virtuelles Windows 10, denn es werden Treiber und div. Software benötigt, die man sonst eigentlich nicht im täglichen Leben benötigt.
Folgende Software wird benötigt:
- Windows 10 (Geht sicher auch unter MacOS / Linux, Treiber sind ein Thema)
- Arduino IDE (Zum jetzigen Stand Version 1.8.5
AVRDude für Windows inkl. 32Bit libusb0.dllNötige Librarys- Optional:
Marlin Firmware 1.1.8 - Optional:
Treiber für den USB ISP unter Windows 7/8 – Windows 10 benötigt keinen Treiber
Das Softwarepaket hab ich euch geschnürt, ihr müsst es quasi nur Runterladen und entpacken. Im AVDRDude Ordner sind auch gleich die fertig kompilierten .HEX Dateien der angepassten Marlin Firmware enthalten.
Als nächstes bitte den USB ISP mit folgenden DIP Schalter Einstellungen versehen:
Dann das verkabeln des Mainboards mit dem USB ISP erfolgt mit 6 Jumper Kabel (Alternativ auch einem 6 poligem Flachbandkabel, ich bevorzuge jedoch Jumperkabel. Das Schema des USB ISP ist wie folgt:
Das Schema des Anet A8 Mainboards:
Nach dem verkabeln solltet ihr das ganze nun an euren Rechner anschließen. Der USB ISP sollte nun grün leuchten und zu beginn kurz rot blinken. Ein Test, ob alles korrekt verkabelt ist könnte nun sein:
avrdude.exe -P COM3 -p m1284p -c avrispv2 -v -v -v -n
Hierbei euren COM Port bitte entsprechend anpassen! Die Ausgabe sollte etwas sein wie:
avrdude.exe: Version 5.11, compiled on Aug 30 2011 at 10:24:06 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\Users\shade\Downloads\avrdude-5.11\avrdude.conf" Using Port : COM5 Using Programmer : avrispv2 avrdude.exe: stk500v2_getsync(): found STK500 programmer AVR Part : ATMEGA1284P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PA0 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 Programmer Type : STK500V2 Description : Atmel AVR ISP V2 Programmer Model: STK500 Hardware Version: 10 Firmware Version Master : 2.10 avrdude.exe: stk500v2_command(): command failed avrdude.exe: stk500v2_getparm(): failed to get parameter 0x9a Topcard : Unknown Vtarget : 3.3 V SCK period : 2.2 us Varef : 3.3 V Oscillator : Off avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude.exe: Device signature = 0x1e9705 avrdude.exe: safemode read 1, lfuse value: d6 avrdude.exe: safemode read 2, lfuse value: d6 avrdude.exe: safemode read 3, lfuse value: d6 avrdude.exe: safemode: lfuse reads as D6 avrdude.exe: safemode read 1, hfuse value: de avrdude.exe: safemode read 2, hfuse value: de avrdude.exe: safemode read 3, hfuse value: de avrdude.exe: safemode: hfuse reads as DE avrdude.exe: safemode read 1, efuse value: fd avrdude.exe: safemode read 2, efuse value: fd avrdude.exe: safemode read 3, efuse value: fd avrdude.exe: safemode: efuse reads as FD avrdude.exe: safemode read 1, lfuse value: d6 avrdude.exe: safemode read 2, lfuse value: d6 avrdude.exe: safemode read 3, lfuse value: d6 avrdude.exe: safemode: lfuse reads as D6 avrdude.exe: safemode read 1, hfuse value: de avrdude.exe: safemode read 2, hfuse value: de avrdude.exe: safemode read 3, hfuse value: de avrdude.exe: safemode: hfuse reads as DE avrdude.exe: safemode read 1, efuse value: fd avrdude.exe: safemode read 2, efuse value: fd avrdude.exe: safemode read 3, efuse value: fd avrdude.exe: safemode: efuse reads as FD avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you.
Falls der Output nicht mit einem
avrdude.exe: stk500_getsync(): not in sync: resp=0x67
oder etwa:
avrdude.exe: Device signature = 0x000000 avrdude.exe: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. avrdude.exe done. Thank you.
endet, habt ihr alles korrekt verkabelt und eingestellt. Falls einer der obigen Fehler auftritt, ist es meißtens ein Problem mit der Spannungsversorgung oder eine falsche Verkabelung.
Ihr könnt nun die von mir vorkompilierten .HEX Files flashen oder weitere Anpassungen in der configuration.h in der Arduino IDE vornehmen. Ich gehe mal von einem direkten Flash aus:
avrdude.exe -P COM3 -p m1284p -c avrispv2 -Uflash:w:Marlin.ino.with_bootloader.sanguino.hex:i
Ausgabe sollte dann in etwa sein:
avrdude.exe: Version 5.11, compiled on Aug 30 2011 at 10:24:06 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\Users\shade\Downloads\avrdude-5.11\avrdude.conf" Using Port : COM5 Using Programmer : avrispv2 AVR Part : ATMEGA1284P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PA0 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 Programmer Type : STK500V2 Description : Atmel AVR ISP V2 Programmer Model: STK500 Hardware Version: 10 Firmware Version Master : 2.10 avrdude.exe: stk500v2_command(): command failed avrdude.exe: stk500v2_getparm(): failed to get parameter 0x9a Topcard : Unknown Vtarget : 3.3 V SCK period : 2.2 us Varef : 3.3 V Oscillator : Off avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude.exe: Device signature = 0x1e9705 avrdude.exe: safemode: lfuse reads as D6 avrdude.exe: safemode: hfuse reads as DE avrdude.exe: safemode: efuse reads as FD avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude.exe: erasing chip avrdude.exe: reading input file "Marlin.ino.with_bootloader.sanguino.hex" avrdude.exe: writing flash (130556 bytes): Writing | ################################################## | 100% 45.22s avrdude.exe: 130556 bytes of flash written avrdude.exe: verifying flash memory against Marlin.ino.with_bootloader.sanguino.hex: avrdude.exe: load data flash data from input file Marlin.ino.with_bootloader.sanguino.hex: avrdude.exe: input file Marlin.ino.with_bootloader.sanguino.hex contains 130556 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 47.58s avrdude.exe: verifying ... avrdude.exe: 130556 bytes of flash verified avrdude.exe: safemode: lfuse reads as D6 avrdude.exe: safemode: hfuse reads as DE avrdude.exe: safemode: efuse reads as FD avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you.
Thats it, ihr habt nun einen Anet A8 mit OptiBoot Bootloader, AutoLeveling Funktionalität und der bewährten Marlin Firmware.
Super Anleitung, hat prima geklappt.
Vielen Dank.
Gruß
Matthias
Super Anleitung, vielen Dank.
Eventuell könnte man vorher noch die Orginal-Software sichern z.B. mit avrdude.exe -P COM3 -c avrispv2 -p m1284p -U flash:r:orginal.hex:i
Super Idee! Hatte meinen AnetA8 umgebaut und wollte flashen – leider ohne Erfolg.
Diese Anleitung hat mich auf die richtige Spur gebracht – Danke dafür.
Leider habe ich noch das Problem, dass bei der neusten Marlin Software (1.1.9) beim Build immer ein Fehler kommt und ich im Netz keinen Hinweis auf die Fehlerursache gefunden habe. Somit kann ich wördlich nichts flashen.
Kannst Du bitte den Link für den Download der Hex-Dateien wieder herstellen?
Danke und viele Grüße
Clemens
Der Link geht nicht mehr ….
Welcher Link?
der link
AVRDude für Windows inkl. 32Bit libusb0.dll
https://store.shade.sh/avrdude-5.11.zip
Hier findest du immer den aktuellsten: http://stefanfrings.de/avr_tools/
Im AVDRDude Ordner sind auch gleich die fertig kompilierten .HEX Dateien der angepassten Marlin Firmware enthalten
404 Not Found
Wo finde ich bitte die Datei
Marlin.ino.with_bootloader.sanguino.hex
Danke, Gerd
Kannst du deine hex dateien nochmal hochladen?
Gibt es den link nochmal? Gruß
Ich verzweifle auch gerade an meinem Anet A8 (mit Board V1.5. – ein Weihnachtsgeschenk) und würde dem gerne ein Flash verpassen – war dann glücklich Deine Anleitung gefunden zu haben. Leider funktioniert der Link zum Packe von AVRDUDE nicht mehr (not found).
Habe nun versucht mit das Programm so aus den Weiten des WWW zu holen aber hier wird dann ständig gemeckert, dass die libusb0.dll UND die libhidapi0.dll fehlen würde. Die libusb0.dll war jetzt nicht das Problem aber die libhidapi0.dll bekomme ich irgendwie nirgends.
Wäre cool, wenn Du nochmal einen neuen Link zu Deinem Package einstellen oder mir per E-Mail schicken könntest.
Danke und Gruß
Markus
Leider sind die Links broken weil ich die Files nicht mehr habe.
Ich hab aber die nötigen Librarys für avrdude ergänzt.
Hello, genau den Guide den du hier gepostet hast brauche ich. Danke schon mal! Aber mit welchem Tool kann ich den Test ausführen ob alles richtig verkabelt ist?
Beste Grüße Chris