"PREHEAT PLA" makes your Anet A8 restart? Here is a real and cheap fix.
The Anet A8 is a very cheap 3D printer, and there is a reason for that: it is really cheap quality and one can have many troubles with it.
One of these trouble is that, at some point, the printer systematically reboots when the bed is triggered to heat up (Thingiverse forum thread, a YouTube video, another YouTube video, a third YouTube video).
If you are reading this article, you probably have this problem. The most commonly accepted answer to solve this problem is to change de power supply unit (PSU). Sometimes, upgrading the PSU to a 12V-500W actually fixes the problem but you have to spend around 80€ to fix a... 120€ 3D printer! The Anet A8 is provided with a 12V-320W PSU, it is largely enough. The Anet does not reboot because the PSU does not provide enough power but because the bed requires too much power from the board. The board is not able to "transfer" the power from the PSU to the bed and consequently crashes.
So, how to solve this issue for 5€? The idea is simple: power the bed directly from the PSU and use the Anet A8 board as a switch. This can be done using a relay or, even better, a MOSFET.
The schematics (use only one of them, preferably the one with a MOSFET):
PSU is the power unit. Red wire goes to V+ (12V), black wire goes to V- (GND).
Bed is the heating bed. Red wire goes to +, black wire goes to -.
Anet board bed socket is the socket on the Anet A8 mainboard where the bed should be connected. IT IS IMPORTANT TO KNOW WHICH ONE OF THE TWO SOCKETS TO USE. One of them varies, the other does not. The yellow wire is to be connected on the varying socket. It should be the left one but you'd better check before wiring (see the explanations section to know how to do that).
Left: the assembly as a whole. Right: same picture with annotations.
To design the two fixes, we had to know how the ANET controls the heating of the bed. To do so, we disconnected the bed from the Anet but only the power not the sensor so that the Anet can read the temperature and accept to heat the bed. We then make two measurements on the bed socket, that is between one of the socket and the GND of the board/PSU:
So, the Anet controls the bed heating by putting to the ground one of the connector. That will be our activation signal: when this signal is on, the bed does not heat, when this signal is off, the bed does heat.
A relay is a mechanical switch. The two circuitry are electricly independant and that's one of its main interest. The activation / signal part of the relay can use 5V to switch on and off a 220V circuitry. Its main drawback is being mechanical: it will break at some point. In our case, we trick somehow as we use the signal from the Anet on the ground pin. How does it work? The activation circuit receives 11V on all its pins. So it is off! When 0V gets to ground, it is powered. That's it.
A MOSFET is an electronic switch. The two circuitry are electricly binded for it to work. It can theoretically works forever. It is the best option if your two circuitries can use the same power source. Which is the case for the Anet A8 and the heat bed. In our case, we simply use a PNP MOSFET: Simulation with the MOSFET PNP. The perfect explanation for can be found in this article by James Lewis. In short, when the voltage from the Anet A8 and the PSU are equal, the MOSFET "turned off" because the difference is 0V. When the voltage from the Anet A8 is null, the MOSFET is "turned on" because the difference is -11V.
That's all folks, do not hesitate to comment if you have questions or if you successfullly used this hack!
Link: Fritzing, a great free software to design electronics
Link: Lots of Fritzing parts by Achim Pieters
Link: A good review of the Anet A8 on 3dinsider.com
Links: MOSFET on wikipedia, MOSFET for beginners by Oscar Liang, Excellent introduction to MOSFET by James Lewis