PID (Proportional Integral Derivative) is the system the printers use for holding a set temperature. This system controls how fast the printer reaches the set temperature and how well it holds that temperature once it gets there. Without it, numerous problems can arise. Fortunately for us, the printer has an automatic way of tuning these values.
This guide will show you how to enable, calibrate, and then use the PID settings for your printer bed. Our Unified 2 firmware is set up to use “bang-bang” temperature regulation on the printer bed because it is very universal and easy to use. PID Bed calibration can give you more accurate results but it must be enabled and then tuned for your machine. Failure to do the full PID bed calibration guide will result in false thermal runaways and/or long heating times.
All that is needed in our firmware is to enable the “ENABLE_PIDBED” option in the firmware and then upload it to your printer board.
Every printer will have a different PID value. This is why it must be calibrated for your specific machine. Even some machines of the same model will have different values. This must be done on each machine that you want to use PID regulation for the bed on.
Connect to the serial port of your printer with your favorite gcode sender and send the following command: M303 E-1 S60 C10 U
Printing at a higher temp than 60C? If you want to tune for a higher temperature (example: if you are always printing ABS or PETG) then change the 60 after the S to whatever temperature you commonly print at. But tuning for 60C will work in most cases.
Your printer LCD will now show “PID Autotune” on it and the process will begin. This will run 10 cycles at a 60C target temperature. This will take many minutes to perform. Keep the gcode sender open while this runs as once it completes you will get an output with the PID values for your printer’s bed in the serial console and the printer LCD will show a “Click to resume…” message. Press the printer LCD button before continuing.
Using the above values you will plug them into a new command to send to the printer. In the above example, our values are 212.85 for P, 33.74 for I, and 895.11 for D. The command we would send to using the example above is: M304 P212.85 I33.74 D895.11
After that send an M500 to store those settings to the printer EEPROM. This value should be noted somewhere as clearing the EEPROM will revert the settings to the firmware default and may not work well with your printer. You can even add these above all the other lines in your slicer starting Gcode for the machine to make sure it is set before a print starts.
Once you have the values the firmware will tell you after the "PID Autotune Finished!" line what to add. These can be placed in the Configuration.h file for your printer firmware. Once entered, recompile, and update/upload to the printer board. The best place to put these is below the printer model line. Just press enter after the printer model line you uncommented and paste in the values from the firmware output.
While this is NOT needed it will ensure the PID values are kept even with an EEPROM reset. If you do not put it in the firmware, then when you reset the EEPROM the PID values you got from the Autotune will be lost.