PID Tuning

Extruder PID Tuning

The default heat manager for the I3 printer is using the DeadTime method which usually works pretty well. I found that I had to change the PID Gain / Deadtime setting to 3 to get better results without the over an undershooting of the temperatures. The heat manager can be changed to use PID which can yield better results after running the PID Tuning command for a set temperature.

Changing to PID and running a PID Tune:

  • Using Repetier Host go into the EEPROM settings and change the Ext1. Heat Manager to 1 and then save the settings
  • With the extruder at room temperature we will need to issue the PID Tuning command. This consists of the Temperature that you want to reach (print at) and the number of cycles of tuning to run. Go to the manual Send GCode box and type in: M303 S220 P5 where Sxxx is the temperature you want to use (200, 210, 220, etc) and Px is the number of cycles to run then press Enter or Send.
    (note) I have seen some version of the firmware take a C? instead of P? for the number of cycles. If it doesn't like it you can leave it off and it should default to 3 cycles.
  • Once you hit send, the auto tune function will take about 15 minutes to complete. You will see the following information in your log appear multiple times with different numeric values:
bias: 103 d: 103 min: 147.98 max: 152.02
Ku: 65.06 Tu: 30.67
Classic PID
Kp: 39.04
Ki: 2.55
Kd: 149.66
  • Wait until you see the message about PID Tuning being complete or having finished. You will see one last set of numbers.
  • The values you are looking for are Kp, Ki, and Kd. Write these values down, they will be your new PID values. You can use the EEPROM menu to enter these values to the Ext1. P-gain, Ext1. I-gain and Ext1. D-gain (the kp, ki, kd values respectively) or enter the following two lines of code as we did earlier, substituting your experimental values for the ones below:
M301 P39.04 I2.55 D149.66 (press Enter or click Send)
M500 (press Enter or click Send)

The "M301" command sets the values to the running configuration, and "M500" saves that configuration to EEPROM.