You Are Here: Home » 3D Printers » PID calibration for Prusa i3 MK2S/MK3 3D Printer

PID calibration for Prusa i3 MK2S/MK3 3D Printer


PID calibration for a Prusa i3 MK2S 3D printer.  This procedure will calibrate the extruder PID and make the temperature much more stable and static, avoiding large temperature swings of 4, 5, 6 or more degrees away from your printing temperature.

You will see that in the examples below I am using Octoprint to send commands to the Prusa i3 MK2S printer via its Terminal command tab, which also displays the results of those commands.  But you can use Pronterface or similar program to send commands and see the output.

The procedure:

M503

The M503 command reports the current settings in non-volatile EEPROM (stay after powering down and restarting).  In the middle of these settings you will find the current PID settings for the extruder.

Recv: echo:Steps per unit:
Recv: echo: M92 X100.00 Y100.00 Z400.00 E169.79
Recv: echo:Maximum feedrates (mm/s):
Recv: echo: M203 X500.00 Y500.00 Z12.00 E120.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo: M201 X9000 Y9000 Z500 E10000
Recv: echo:Acceleration: S=acceleration, T=retract acceleration
Recv: echo: M204 S1500.00 T1500.00
Recv: echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
Recv: echo: M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.20 E2.50
Recv: echo:Home offset (mm):
Recv: echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:PID settings:
Recv: echo: M301 P40.93 I4.88 D86.08
Recv: echo:PID heatbed settings:
Recv: echo: M304 P126.13 I4.30 D924.76
Recv: echo:Retract: S=Length (mm) F:Speed (mm/m) Z: ZLift (mm)
Recv: echo: M207 S3.00 F2700.00 Z0.00
Recv: echo:Recover: S=Extra length (mm) F:Speed (mm/m)
Recv: echo: M208 S0.00 F480.00
Recv: echo:Auto-Retract: S=0 to disable, 1 to interpret extrude-only moves as retracts or recoveries
Recv: echo: M209 S0
Recv: echo:Filament volumetric settings: Disabled
Recv: echo:Filament Runout Sensor: Disabled
Recv: ok

M303 E0 S250 C8

The M303 command will start the “PID Autotune start” procedure.  This will heat up the extruder to the temperature defined in the S parameter, eg, 250°C (“S250”) 8 times (“C8”) and report the result.  I would recommend choosing the same temperature that you intend to use when printing your filament.

Recv: bias: 125 d: 125 min: 243.33 max: 256.15
Recv: Ku: 24.84 Tu: 29.00
Recv: Classic PID
Recv: Kp: 14.91
Recv: Ki: 1.03
Recv: Kd: 54.03
Recv: PID Autotune finished! Put the last Kp, Ki and Kd constants from above into Configuration.h

To apply the new PID settings, use the M301 command along with the Kp, Ki and Kd values reported above, replacing the letters “Kp” with “P”, “Ki” with “I” and “Kd” with “d”.  Finally use the M500 command to store those settings to the EEPROM so that they are remembered for the future.

M301 P14.91 I1.03 D54.03
M500

You can finally use the M503 command again to check that the new values have been stored to EEPROM.

Recv: echo:Steps per unit:
Recv: echo: M92 X100.00 Y100.00 Z400.00 E169.79
Recv: echo:Maximum feedrates (mm/s):
Recv: echo: M203 X500.00 Y500.00 Z12.00 E120.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo: M201 X9000 Y9000 Z500 E10000
Recv: echo:Acceleration: S=acceleration, T=retract acceleration
Recv: echo: M204 S1500.00 T1500.00
Recv: echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
Recv: echo: M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.20 E2.50
Recv: echo:Home offset (mm):
Recv: echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:PID settings:
Recv: echo: M301 P14.91 I1.03 D54.03
Recv: echo:PID heatbed settings:
Recv: echo: M304 P126.13 I4.30 D924.76
Recv: echo:Retract: S=Length (mm) F:Speed (mm/m) Z: ZLift (mm)
Recv: echo: M207 S3.00 F2700.00 Z0.00
Recv: echo:Recover: S=Extra length (mm) F:Speed (mm/m)
Recv: echo: M208 S0.00 F480.00
Recv: echo:Auto-Retract: S=0 to disable, 1 to interpret extrude-only moves as retracts or recoveries
Recv: echo: M209 S0
Recv: echo:Filament volumetric settings: Disabled
Recv: echo:Filament Runout Sensor: Disabled
Recv: ok

The PID settings are now stored and you should have a nice stable temperature the next time you print.

 

 

Related Posts:

  • No Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.