Marlin Bed Temperature Overshoot

From Open Source Ecology
Jump to: navigation, search



  • M303 S50 E-1 C5 - 5 passes, set for 50C, -1 for bed


PID Autotune - [2]



Using Lulzbot Cura, M303 with no parameters heats the extruder to about 150. Each time division is about 30 seconds:

PID Autotune.png

And produces optimal values of P, I, D

PID Autotune2.png

M503 displays current values:

< M503


< echo:PID settings:

< echo: M301 P22.20 I1.08 D114.00

You can save the values from PID Autotune by going into configuration.h


  • PID autotune would have to be enabled for the bed in configuration.h.
  • If one is using an SSR, can this be used with default switching frequency of Marlin? Let's look inside Marlin - Configuration.h
  • SSR heats up when conducting via voltage drop. The switching doesn't cause much heat. [3]. See SSR Lifetime. It is not clear if fast switching (only 8 hz) reduces lifetime over say 4 hz in PWM switching?
  • Start by turning on PID for the bed: uncomment #define PIDTEMPBED in configuration.h
  • SOFT_PWM - sets PWM frequency?
  • Can also add PID autotune to menu via configuration.h: //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result. But does this save the result?
  • Configuration.h can also use slow PID - //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
  • M500 should work in Cura to save PID settings, or Save Settings in LCD? Or save in configuration.h for the common OSE characteristics.


> M303 S50 E-1 C5

< PID Autotune start

< PID Autotune failed! Temperature too high

Failed once bed reached 70.


  • Marlin software - PID autotune - [4]
  • RepRap wiki - [5] - how to set values manually - understanding the proportional, integral, derivative terms.
  • D3D_v20.04.27_Software - Marlin change log