Marlin Bed Temperature Overshoot
Data
- SSR - 5 hz max reliable switching frequency. [1]. 0.5 hz recommended for heating.
- Overshoot is 10-30C on the bed. D3D_v20.04.27_Data_Collection#Hysteresis_of_Bed
Code
- M303 S50 E-1 C5 - 5 passes, set for 50C, -1 for bed
Procedure
PID Autotune - [2]
Results
Extruder
Using Lulzbot Cura, M303 with no parameters heats the extruder to about 150. Each time division is about 30 seconds:
And produces optimal values of P, I, D
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
Bed
- 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.
Errors
> M303 S50 E-1 C5
< PID Autotune start
< PID Autotune failed! Temperature too high
Failed once bed reached 70.
Links
- 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