Anet A8 Board Version 1.5 und Marlin Firmware

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.dll Nö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.

Leave a comment ?

14 Comments.

  1. Super Anleitung, hat prima geklappt.
    Vielen Dank.

    Gruß
    Matthias

  2. 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

  3. 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

  4. Robert Brettschneider

    Der Link geht nicht mehr ….

  5. der link

    AVRDude für Windows inkl. 32Bit libusb0.dll
    https://store.shade.sh/avrdude-5.11.zip

  6. Im AVDRDude Ordner sind auch gleich die fertig kompilierten .HEX Dateien der angepassten Marlin Firmware enthalten

    404 Not Found

  7. Wo finde ich bitte die Datei
    Marlin.ino.with_bootloader.sanguino.hex

    Danke, Gerd

  8. Kannst du deine hex dateien nochmal hochladen?

  9. Gibt es den link nochmal? Gruß

  10. 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

  11. Leider sind die Links broken weil ich die Files nicht mehr habe.
    Ich hab aber die nötigen Librarys für avrdude ergänzt.

  12. 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

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.