Extruder PID Tuning

Description

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 also be changed to use PID which can yield better results after running the PID Tuning command for a set temperature.

Process

  1. If you want to take the simple route then jump right to the PID Tuning Files Section and download the PID GCode for the temperature you would like to run your extruder at. This file has been modified to automatically change the EEPROM settings to use PID and also change the Max Drive settings to help get to the higher temperatures that some have reported having problems reaching. Turn your fan on manually to the desired “Normal” printing speed before printing this file. I could automat that part also but some may not run with their fan on. Save the file then “Print” it just like any other gcode file. It will show the progress on the screen and when it has completed you are set to go. Skip the rest of the listed processes if you go this route.
  2. Using Repetier Host go into the EEPROM settings and change the Ext1. Heat Manager to 1 and then save the settings (or use the LCD menu and go to Configuration->Extruder and change it there the save the settings to EEPROM )
  3. 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.  See the Files section for pre-configured gcode that you can load on an SD card and “print” in order to run the PID Tuning.
  4. Go to the Manual Control tab.  In the GCode box type: M303 S220 C5 where Sxxx is the temperature you want to use (200, 210, 220, etc) and Cx is the number of cycles to run then press Enter or Send.   (Note: Some older versions of the firmware take a P instead of C for the number of cycles. If it doesn’t like it you can leave it off and it should default to 3 cycles.)
  5. 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 (Note: Your values will be different!):
    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
  6. 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.
  7. 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 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.

Files

These gcode files are setup to automatically change your EEPROM settings to Extruder Heat Manager PID (1) and Extruder Max Drive 255 (which helps get to the higher temperatures) then runs the PID Tuning for the specified temperature and automatically save the new PID settings to EEPROM once the tuning has completed. It does not turn the fan on so if you want to use the fan during printing you should manually set the fan to your “Normal” speed before printing the file. Simply save the gcode file by right-clicking and selecting Save File or Download Link and print from SD or a Host program such as Repetier.

PID Tune Screen

Video Guide

Skip to toolbar