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

Skynet 3D

If you look on Internet you will find one called Skynet 3D, that is actually a rebranded Marlin firmware with some additions for supporting this printer hardware, nothing specially wrong with this firmware, but I don’t feel comfortable with it for two reasons:

  1. Marlin source code doesn’t look very clean and Skynet 3D additions looks even worst, for example, they added support for the analogue keypad inside the temperature reading module…
  2. I have not found instructions for compiling it without using a “special” Arduino IDE version they provide.

No one of the last points will avoid everything to work perfectly, but paranoiac developers like me will never feel comfortable with it 😉

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.

Everything you will need in one place

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”
  • 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”
  • 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.

8 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


Leave a Reply

Your email address will not be published.