--- tag: m0303 title: PID autotune brief: Auto-tune the PID system to find stable values. author: thinkyhead requires: PIDTEMP|PIDTEMPBED group: thermal codes: [ M303 ] notes: - Requires `PIDTEMP` or `PIDTEMPBED`. - View current PID values with [`M503`](/docs/gcode/M503.html). - If `EEPROM_SETTINGS` is enabled, all PID values are saved with [`M500`](/docs/gcode/M500.html), loaded with [`M501`](/docs/gcode/M501.html), and reset with [`M502`](/docs/gcode/M502.html). parameters: - tag: E optional: true description: Hotend index (-1 for heated bed). Default 0. values: - tag: index type: int - tag: C optional: false description: Cycles. At least 3 cycles are required. Default 5. values: - tag: count type: int - tag: S optional: false description: Target temperature values: - tag: temp type: float - tag: U optional: false description: Use PID result. (Otherwise just print it out.) values: - tag: flag type: bool - tag: D optional: false description: Toggle activation of `PID_DEBUG` output. values: - tag: flag type: bool - tag: D optional: false description: Toggle PID debug output on / off (and take no further action). (Requires `PID_DEBUG`) values: - tag: action examples: - pre: 'Auto-tune hotend at 210 °C for 8 cycles:' code: - M303 E0 C8 S210 - pre: 'Auto-tune bed at 60 °C for 8 cycles:' code: - M303 E-1 C8 S60 --- This command initiates a process of heating and cooling to determine the proper PID values for the specified hotend or the heated bed.