HOW TO FIX ANET BRICKED BOARD USING AN ARDUINO UNO

After years of printing yesterday my Anet A8 printer is dead, due to a failed firmware upload.

So my board was bricked, means that doens't accept anymore a firmware and the display was blank, as in the picture.

After a long search, I collected this instructions to fix this problem, all you need is an Arduino Uno board, a 10 uF capacitor and some wires.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: ​DOWNLOAD ANET BOARD DEFINITION FOR ANET

1. See this great github resource: https://github.com/SkyNet3D/anet-board

a. Basically, Clone and download as ZIP file the git resource

b. Unzip the Anet folder to your Arduino installation “hardware” folder: C:\Program Files\Arduino\hardware

c. Open Arduino IDE, ANET V1.0 and ANET V1.0 (Optiboot) are now available into Tools – Board menù

Step 2: ​PREPARE ARDUINO UNO AS ISP PROGRAMMER

1. Upload ArduinoISP sketch to Arduino Uno board (File -> Esempi)

2. Select from Arduino Tools menù:

a. Board:Arduino Uno

b. Port: COM X where your Arduino is connected

c. Programmer: AVRISP mkll

3. Upload Sketch

Arduino now is ready to act as ISP Programmer

Step 3: ​CONNECT ARDUINO UNO TO ANET J3 CONNECTOR

1. Use some breadboard wires to connect Arduino to Anet as shown in the picture

2. Connect also RESET and GND pins in on Arduino using a 10uF capacitor

Step 4: ​FLASH BOOTLOADER

1. Select from Arduino Tools menù:

a. Board:Anet V1.0 (Optiboot)

b. Port: COM X where your Arduino is connected

c. Programmer: Arduino as ISP

2. Tools -> Write Bootloader

Step 5: ​UPLOAD FIRMWARE

1. Select from Arduino Tools menù:

a. Board:Anet V1.0 (Optiboot)

b. Port: COM X where your Arduino is connected

c. Programmer: AVRISP mkll

2. Open Marlin firmware as usual

3. Upload sketch

Share

    Recommendations

    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Metal Contest

      Metal Contest
    • Make It Fly Challenge

      Make It Fly Challenge

    21 Discussions

    0
    None
    jose.cruz11582

    5 weeks ago

    Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "Anet V1.0 (Optiboot)"
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:43:0: warning: "TIMER2" redefined
    #define TIMER2 5
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:210:0: note: this is the location of the previous definition
    #define TIMER2 6
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:44:0: warning: "TIMER2A" redefined
    #define TIMER2A 6
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:211:0: note: this is the location of the previous definition
    #define TIMER2A 7
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:45:0: warning: "TIMER2B" redefined
    #define TIMER2B 7
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:212:0: note: this is the location of the previous definition
    #define TIMER2B 8
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:47:0: warning: "TIMER3A" redefined
    #define TIMER3A 8
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:214:0: note: this is the location of the previous definition
    #define TIMER3A 9
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:48:0: warning: "TIMER3B" redefined
    #define TIMER3B 9
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:215:0: note: this is the location of the previous definition
    #define TIMER3B 10
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:49:0: warning: "TIMER3C" redefined
    #define TIMER3C 10
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:216:0: note: this is the location of the previous definition
    #define TIMER3C 11
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:50:0: warning: "TIMER4A" redefined
    #define TIMER4A 11
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:217:0: note: this is the location of the previous definition
    #define TIMER4A 12
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:51:0: warning: "TIMER4B" redefined
    #define TIMER4B 12
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:218:0: note: this is the location of the previous definition
    #define TIMER4B 13
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:52:0: warning: "TIMER4C" redefined
    #define TIMER4C 13
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:219:0: note: this is the location of the previous definition
    #define TIMER4C 14
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:53:0: warning: "TIMER5A" redefined
    #define TIMER5A 14
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:221:0: note: this is the location of the previous definition
    #define TIMER5A 16
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:54:0: warning: "TIMER5B" redefined
    #define TIMER5B 15
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:222:0: note: this is the location of the previous definition
    #define TIMER5B 17
    ^
    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,
    from sketch\Marlin.ino.cpp:1:
    C:\Users\josec\Documents\Arduino\hardware\anet\avr\variants\sanguino/pins_arduino.h:55:0: warning: "TIMER5C" redefined
    #define TIMER5C 16
    ^
    In file included from sketch\Marlin.ino.cpp:1:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:223:0: note: this is the location of the previous definition
    #define TIMER5C 18
    ^
    Sketch uses 104096 bytes (80%) of program storage space. Maximum is 130048 bytes.
    Global variables use 4083 bytes of dynamic memory.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xbe
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0
    Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    1 reply
    0
    None
    amauryboller

    2 months ago

    Thank you for this "How To". With the optiboot I can now add the M600 command when I run out of filament on my Anet A8. (without, there were not enough memory)

    0
    None
    LászlóG6

    4 months ago

    Recommendation / guide from the github README and from the Arduino official ArduinoISP page as well is to reconnect the Arduino from the Anet board after burning the bootloader and connect Arduino IDE (Computer) directly with the Anet board via USB before upgrading FW. This could be a useful step/hint inserted into the description. Which is indeed extremly useful. Thanks! Also very useful are the comments, especially the one about the capacitor. (I also have only 1uF at hand and no chance to get another during the weekend.) I will give it a try soon. Thanks to all - again.

    0
    None
    WesleyJ11

    7 months ago

    Step 4: FLASH BOOTLOADER
    I have performed all the steps above and received the following error my help helps me;
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
    1 reply
    0
    None
    JP91WesleyJ11

    Reply 7 months ago

    I had the same problem. The fix, for me, was extremely simple. What the instructions don't tell you is to unplug the usb from the uno and plug it straight into the Anet board. Use all of the settings described, and it worked like a champ on mine. Maybe this will be your fix or at least give you an idea. This does work. I "bricked" mine trying to upload better firmware and this brought it back. I didn't need/use the capacitors though.

    0
    None
    eric-gunstone

    Question 1 year ago on Step 5

    Hi, I followed your instructions on flashing the bootloader, that worked OK but when I try to upload the marlin firmware I get this error message, I'm still connected through the Uno board

    Arduino: 1.8.5 (Linux), Board: "Anet V1.0 (Optiboot)"

    Build options changed, rebuilding all
    Sketch uses 118898 bytes (91%) of program storage space. Maximum is 130048 bytes.
    Global variables use 4367 bytes of dynamic memory.


    avrdude: Expected signature for ATmega1284P is 1E 97 05
    Double check chip, or use -F to override this check.
    Wrong microcontroller found. Did you select the right board from the Tools > Board menu?

    thanks for any help

    Eric

    edit: I disconnected Uno and reconnected directly into Anet board, uploaded Marlin firmware successfully.... thanks for the instructions, you may want to add this step.

    Eric

    0
    None
    RaymondE21

    Question 1 year ago

    I tried this. But i have the following error:


    ...../hardware/tools/avr/etc/avrdude.conf -q -q -patmega1284p -cstk500v1 -PCOM6 -b9600 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xD6:m

    avrdude: stk500_getsync(): not in sync: resp=0xff


    I Tried this because i can't flash my Anet A6 3D printer.

    So they told me to burn a Bootloader first!

    1 answer
    1
    None
    RaymondE21RaymondE21

    Answer 1 year ago

    UPDATE: I was able to burn a Bootloader with a Arduino Uno r3!!!! I made a new connector, with new wiring. Now i could burn the bootloader, WITHOUT any errors.... :D

    Now i'm going to try to install the Repetier Firmware.
    Thanks for helping me!!

    0
    None
    3dGenie

    1 year ago

    Thanks a lot. This was a great help. Now, it looks like a thunderstorm has broken my board's USB capability. Do you maybe know how to fix that, too?

    0
    None
    3dGenie

    Question 1 year ago on Step 2

    Step 2 doesn't work. Whatever I try, I always get an error when trying to upload the sketch. And I don't have a 10 uF capacitor, just 100 nF, 100 uF & 100pF, which one to use?

    2 answers
    0
    None
    3dGeniehabitacion79

    Answer 1 year ago

    I didn't have to, it finally worked with the one I had

    0
    None
    nxenara

    1 year ago on Step 5

    Thank you very much !

    My printer is alive !

    0
    None
    3dGenie

    1 year ago

    Finally worked. Thanks a lot!

    0
    None
    Claudio_Greppi

    Tip 1 year ago on Step 5

    Disconnect Arduino Uno from the PC/Mac and connect Anet Board by USB cable.

    1. Select from Arduino Tools menù:

    a. Board:Anet V1.0 (Optiboot)

    b. Port: COM X where your Anet board is connected

    c. Programmer: AVRISP mkll

    2. Open Marlin firmware as usual

    3. Upload sketch

    IMG_0438.jpg
    0
    None
    ErikF38

    1 year ago

    Hi there!

    I have a question about the capacitator. What voltage is it on?

    0
    None
    quanticchaos

    1 year ago

    Thank you, this was very useful even though, to upload the new firmware, I had to do it through the anet's USB port after powering it.

    0
    None
    mitipedia

    1 year ago

    Great write up, thanks saved my board.

    I only had a 1uF capacitor, and it worked fine (negative to GND). Took me a while to figure out that "Esempi" is "Examples" in Italian!

    0
    None
    AlessandroG2

    1 year ago

    The capacitor is visible in the right picture, close to the blu wire, that connects the two Arduino pins RESET and GND.