Heater extruder temperature decoupling

Heater cartridge 65w 24V power 
ramps 1.4 Arduino 2560 
maybe it's is the 1.0 firmware? As i don't remember it doing with 0.94 

24v 65w heater, at 1st power on set point is 230 C Max is set @330 ;
it overruns the 230@C preset by at least 35 Degrees, decoupling By oi at 265-280 
seems to always overrun at the 1st power on to 230C 

at which point it decuples at 265C  Clear the warning, it comes down the set temperature of 230C after the overrun as long as i clear the error no power reset required. 

I tried changing PID but does not seem to have any effect just continues to over run the preset of 230C 
Open to suggestions


  • adding initial or 1st power on is always an overrun and requires an acknowledgement.
    subsequent new prints after the initial power on overrun  are
    ie 2nd 3rd usually over runs,  but at 266 starts then starts to drop back down to the 230 setpoint 

  • edited December 2022
    /** PID control only works target temperature +/- PID_CONTROL_RANGE.
    If you get much overshoot at the first temperature set, because the heater is going full power too long, you
    need to increase this value. For one 6.8 Ohm heater 10 is ok. With two 6.8 Ohm heater use 15.
    #define PID_CONTROL_RANGE 20

    above text is copied from github configuration.h
    as i guess 20  is your selected value i suggest  to increase to 40 or just play around a bit
  • edited December 2022
    Excellent Will give that a check and set (Tests) sound like the place to start :>)
    found it was set @20 changed, Now set @40 ;
    Thank you much appreciated 
  • played with this value up to 80, still same result. Changed it  back to 40
    Looked into the config tool version 1.xx and found this item 

    said, mine being over by at least 35 Degree C 
    changed this to 35 Degree C 

    also changed extruder decouple time period from 12 to 30 
    if it over runs it cools down to the preset rather then alarm decouple 
    will continue to try variations to minimize over run
    not the best fix but working 
  • Set heat manager to bang-bang and see how much it swings just by enabling power and disabling. Especially on first heat up you see when it crosses target temp it disables heater. Then you see how much it overshoots without any extra heat. I think that is the minimum variance. Actually pid will not start with no power so has more overshoot. You can also drop it if you reduce max. pid value so it does not use 65W for heating, which is why the swings are so big - just pure overpowered.
  • agree, 
    set at 250 C  (PetG) the overshoot was 30C 281C then dropped back down.
    The 35C is just high enough for the overshoot 
    going to re configure with the tool when i Have some more time to test :>) 

  • Switched to bang-bang also set max pid to 225 from 255 left decoupling max hold at 35 and pid control range at 40 
    very little change still overshoots as long as the alarm is not re-occurring. 

    going to keep testing to see what if anything drops the overrun temperature. 
  • I assume you already did a pid calibration with M303 to check different combos of PID values? I think to reduce first overshoot you need to have a big damping. Also check in a temperature graph the output power over temperature. It shows max pid until target-control range and then it gets interesting how fast it reduces output and when it reactivates it to prevent going down too far.
  • actually doing that now :>) 

    Of course this after the fact.
    My most recent prints have been failing, seems to overshoot then undershoot then decouple after having started printing. 

    So i am being super hopeful that the auto tune, helps fix this issues 
    Happy New Year!
  • autotuned came up with this 
    M303 E0 S250 C10 
    Ki 0.02

    2nd pass 
    just m303 

    Looks real close 
  • Ran this routine after reading anther autotune Pid 
    M303 P0 S250 X0 R10 C1
    KD 30.31 

    If i read this program sequence correctly it seems to have autosave to Eeprom

  • - M303 P<extruder/bed> S<printTemerature> X0 R<Repetitions> C<method>- Auto
    detect pid values. Use P<NUM_EXTRUDER> for heated bed. X0 saves result in
    EEPROM. R is number of cycles. method 0 = classic, 1 = some overshoot, 2 = no
    overshoot, 3 = pessen, 4 = Tyreus-Lyben

    So yes X0 would save result to eeprom. You should see it then in eeprom editor of your host.
  • Yes, That worked my prints and Extruder temperature are back to Normal. 
    Makes sense since i changed to higher wattage heater :>) 
    thank You 
Sign In or Register to comment.