May272017

Dealing with an Anet A8 3D printer – Firmware

Anet A8 is a cheap Prusa i3 3D printer Chinese clone that can be found on GearBest for about $160. It comes with a custom main board, based on Melzi V2.0 board, with integrated SD card reader and a LCD 20×4 with 5 keys controller.

If you are looking for a cheap 3D printer for sporadic non-professional use, probably this is a good option, but you may need to invest at least some extra time and money if really want a properly working 3D printer.

The hardware

You can’t expect top specifications hardware from a 160$ 3D printer. Everything in this printer is just at red line, if you don’t ensure all cables contacts are fine and all screws are tight, it may catch fire. By the way, mine has been working fine for some months without any issue. I’ll talk in deep about hardware soon, for now lets start for the part that will no require you to spent a single extra dollar.

The stock firmware

The printer comes with a completely functional firmware preinstalled, but you will never know exactly how is that firmware working. One thing you will notice is that it is not very polished. It uses a very aggressive algorithm for heating the bed, that will make the hardware to work at its limit. Don’t have any security measure for preventing overheating of the extruder heater, so if the heater or the temperature sensor comes out from its place, the main board will keep sending current until some part catches fire…

On the other hand, looks like it is not implementing a proper communication protocol as I suffered many times suddenly stops of my printing jobs when using a Rasberry Pi as printer server. So I decided to look for an alternative firmware.

Alternative firmwares

Marlin

Marlin is one of the mos used firmware in amateur 3D printers and, after a lot of time is officially supporting the Anet A8.

I have never tried it, mostly because, when I was looking a replacement firmware, there where no official support for my printer. Skynet 3D, a Marlin derivative, had support for it, but I never got attracted by the code organisation.

As soon as I have soon free time, I will update this article to include instructions for Marlin.

Repetier

You will not easily find this firmware associated with the Anet printer, but taking a look at its supported boards, you will find that they talk about Anet main board under a board called “Zonestar P802M“. Its source code is not wonderful but, in my opinion, better organised than Marlin’s one.

Repository

I have created a github repository with all the needed files, so you should be able to follow the following instructions on this post and take all needed files from the repository for configuring your arduino IDE for the Anet main board and configure and compile any firmware., so start downloading the files I have placed on github.

Arduino IDE hardware definition for Anet main board V1.0

First thing you will need to do is add support to your ardunio IDE for the Anet main board, so after downloading and installing arduino IDE, follow this instructions:

Clearing EEPROM

Clearing EEPROM is very important if you are changing firmware family, for example from marlin based to repetier based. If you are not sure, I recommend you to clear the EEPROM before flashing the new firmware. For clearing the EEPROM follow the following steps:

  • Open Arduino IDE
  • Go to File -> Examples -> EEPROM -> eeprom_clear
  • Select board “Anet V1.0” (Tools -> Board ->Anet V1.0)
  • Click upload button
  • Give, lets say, 10 secconds for your printer to reset and execute the sketch

Repetier firmware

If you want to test repetier firmware, just do the following:

  • Go to https://www.repetier.com/firmware/v092/
  • Upload the configuration file from the repository
  • Click on “Download” tab
  • Click “Download complete firmware incl. these settings” button
  • Open downloaded “repetier.ino” file with arduino IDE
  • Select board “Anet V1.0” (Tools -> Board ->Anet V1.0)
  • Click upload button



Burning bootloader

You may brick your main board if you do things like selecting a wrong board on the arduino IDE, forcing the system to flash a incorrect firmware or unplugging the USB while it is flashing. After that, you may not be able to flash your main board anymore and probably you will start getting errors like this:

avrdude: stk500_cmd(): programmer is out of sync

If this happens, first discard that you don’t have a defective USB cable by replacing it. If you are still unable to flash your main board, most likely you are against a boot loader corruption, so your main board is probably “bricked”.

You can try to burn again the bootloader using an Arduino as ISP programer connected to your board following this diagram and following this steps:

  • Plug the USB cable to the arduino board
  • Open arduino IDE
  • Open the ArduinoISP firmware (in Examples)
  • Select the items in the Tools > Board and Tools > Serial Port menus that correspond to the arduino board you are using as the programmer (not the Anet main board being programmed)
  • Upload the ArduinoISP sketch
  • Disconnect the USB cable from the arduino board
  • Disconnect everything from your printer mainboard, even the power supply
  • Wire your Arduino board to the board as shown in the diagram
  • Check your wiring at least three times, as a wrong wiring may destroy your Arduino and even your main board
  • Plug the USB cable to the arduino board
  • Select the item “Anet V1.0” in the Tools > Board menu
  • Select the Arduino as ISP in the Tools > Programmer menu
  • Use the Burn Bootloader command
  • If the burning finish without errors, disconnect all wires between the arduino and the main board and connect again everything to the main board (fans, motors, LCD, etc.)

Now you should be able to connect your USB cable to the main board, as usual, and flash any new firmware to it. I suggest you to start testing with the “Blink” example and check that the LED into the main board start to blink.

This steps has been taken from https://www.arduino.cc/en/Tutorial/ArduinoISP, consult it for extra information.

References

Política de comentarios

Dada la importancia de los comentarios como espacio de participación, te pedimos por favor que leas detenidamente y cumplas con las siguientes normas de participación.

25 respuestas para “Dealing with an Anet A8 3D printer – Firmware

Meanmegreen

I’ve followed ur instructions but I get a unknown signature. Just 0000×0 or similar when I burn bootloader


Elías R.M.

Hi Meanmegreen,

Please, be more specific:

  • Witch parts of the instructions did you follow and in witch order?
  • How did you bricked your main board?
  • Do you have an Anet A8 3D printer?
  • Can you attach a screen capture or literal copy of the error?
  • Witch arduino board are you using for flashing the boot loader?
  • Can you attach a photo of your cabling? Most likely there is your problem.

Thank you


John

Thanks for your tutorial, saved my butt! Anet back up and running thanks to you!


Elías R.M.

You are very welcome John.

Thank you for your comment.


LUIGI

BONJOUR A TOUS, JE VIENS DE TERMINER LE MONTAGE DE MON IMPRIMANTE 3D, APRES AVOIR BRANCHER CELLE-CI A L ALIMENTATION SECTEUR… APRES 2 MINUTES L’ALIMENTATION EST H.S . J AI CONTROLE L ALIMENTATION ET SURPRISE LES SOUDURES NE VALENT ABSOLUMENT RIEN. PAS PRO TOUT CA !!! MAINTENANT LE PROBLEME EST LA SONDE DU LIT CHAUFFANTS IL M INDIQUE N IMPORTE QUOI ALORS QUE J AI DEBRANCHER LA FICHE DE LA CARTE DE CONTROL DE MON IMPRIMANTE. J AI ALORS TESTER SI UN COURANT A LA SORTIE DE MA CARTE… RIEN AUCUNE TENSION APPARER.
POURRIEZ VOUS M AIDER A RESOUDRE CE PROBLEME , POUR MOI, SOIT CE CIRCUIT DE PUISSANCE DE MA CARTE MERE EST H.S OU ERREUR DANS LE FIRMWARE DE CELLE CI.


Elías R.M.

I’m sorry Luigy, I don’t speak french and Google translate have not been helpful, could you make your question in engish?

Thanks


LUIGI

bonjour j’ai controles tout les raccordement de mon imprimante 3d et tout est corrects, mais helas rien de nouveau toujour la sonde qui m indique une valeur erronee et quand monte la temperature du lit chauffant, aucune tension apparait au borne d entree du lit chauffant a par ce probleme le reste fonctionne correctement. avez vous d autres solutions a me proposer ? d avance merci…


Elías R.M.

I’m sorry Luigy, I don’t speak french and Google translate have not been helpful, could you make your question in engish?

Thanks


Elías R.M.

Thank you for the information Michael!

Unfortunately, your links are not working…


Chris

Thank you Elias for taking the time to post this, it is just the right level of detail that I was looking for.
All the best.


Elías R.M.

Thank you for your comment Chris


Dan

Thank you for tutorial. What do you think about TAZ 6 3D printer for beginners?


Elías R.M.

Thank you for your comment Dan,

In my opinion, for beginners, is better get your hands dirty into a cheap kit 3D printer like the Anet A8 first. Then, with some basic knowledge, you can think about something more professional.

Cheers


Ricardo Arredondo

Thank you for all your info. Helps me iron out issues i am having with my Anet a8 board.


Elías R.M.

Hi Ricardo,

I’m glad to see that this article have been useful for you. don’t be afraid to let me know about any suggestion you may have.

Thank you very much your you comment.

Regards
Elias


Art

Any chance you could do an A to Z “How to” for uploading the Anet firmware to an Anet motherboard. I am useless with this stuff and youTube is full of Marlin disciples!
EDIT: I have had two boards from online stores… both need teh firmware “fixed” and I think the only way is to fully upload the firmware again to over write / replace the seemingly corrupt FW.


Elías R.M.

Hi Art,

Have you tried following the steps I wrote in the Repetier firmware section. They are pretty “A to Z” instructions, I believe. If you get lost, I will be pleased to help you and use your feedback to upgrade my post.

Thank you very much your you comment.

Regards
Elias


Ludo De Greef

i’m sorry but why should you install another software as repetier in order to install Marlin?
There must be something obvious that I miss.

AM not able to update or upload marlin on std a8-maiboard 🙁
keep getting
“avrdude: ser_open(): can’t set com-state for “\\.\COM6″
An error occurred while uploading the sketch”


Elías R.M.

Hi Ludo,

You either install Repetier or Marlin, it is up to you going for one or the other. I went for Repetier because I liked how the code looks more that the Marlin one, but that is not a reason I could use to convince you to use Repetier instaed of Marlin, you may try booth and decide for the one better fits you.

About the error you are commenting, take a look here, I hope you get the solution: http://understandingarduino.blogspot.com/2015/03/solved-avrdude-seropen-cant-set-com.html

P.S. Ensure that you have all the drivers installed at your device manager and that your USB cable is fine (test with another USB cable)

Good luck
Elias


jeff

Bonjour Elías !

I’m French (Champion’s world hihi) and I followed your tutorial step by step
I checked my connections 10 times
I loaded ArduinoISP on my Uno
however, when I run, arduino gives me this error:

‘avrdude: verification error, first mismatch at byte 0x1fd0b
0xfe != 0xfc
avrdude: verification error; content mismatch
Error while burning bootloader.’

can you help me ?
Thank you very much for your work !


jeff

He found out, according to my best friend, the search engine, that it was my USB port that was a problem
it still does not work, but it’s progressing!

the connection with Arduino As ISP works, now it’s when I reinstall my firmware on the Anet that it bug…
(=> ‘avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x92’ now)
Persevere

I will keep you abreast, but thanks for your help”


Elías R.M.

Bonjour Jeff!

Thank you very much for your comments, please double check the following thing on your setup:

  • You have selected the “Anet V1.0” in the Tools > Board menu
  • You have selected the “Arduino as ISP” in the Tools > Programmer menu and not “Arduino ISP”
  • Your main board is completely disconnected from the rest of the printer, even the power supply
  • Do not forget the capacitor, not using it may make your Arduino to self-reset in the middle of the process
  • And, of course, double check all your connections again, it is never a harm 😉

Good luck


jeff

Hello
I finally succeeded in the next test
Thank you for your work that helped me a lot
I paid less for my Arduino than an A8 motherboard and I had a lot of fun (and now I can brick it with peace of mind ahah)
good continuation

jeff


Elías R.M.

Hi Jeff

I’m very happy to see that you got your main board back to life!
Thank you very much for sharing your experience with us!

Regards
Elias


Leave a Reply

Your email address will not be published. Required fields are marked *