Temperature not settling for 10 minutes, M109 with PT1000

Basic Information:

Printer Model: Voron 2.4 Stealthchanger
MCU / Printerboard: BTTMantra M8P, BTT EBB36 via CAN
Host / SBC
klippy.log

Fill out above information and in all cases attach your klippy.log file (use zip to compress it, if too big). Pasting your printer.cfg is not needed
Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there

Describe your issue:

klippy.zip (5.4 MB)

Hi everybody,

I am having Issues with my new Trianglelab Rapido Ace Hotend with PT1000.
Sometimes it takes up to 10 Minutes for the nozzle to settle to target temp via M109. Similar to:

This is the closest to my problem i can find online. It doesnt matter if i use the MAX31865 port oder the TH0 Port on the EBB36, sometimes the temp. settles within 1-2 minutes, and sometimes 10.

In the mentioned post this solution was provided:

[gcode_macro M109]
rename_existing: M109.1
gcode:
  {% set S = params.S|float %}
  {% set actual_temp = printer.extruder.temperature|float %}
  {% set max_fuzzy = S + 2 %}

  M104 { rawparams } 
  {% if S != 0 %}
    {% if actual_temp <= S %} TEMPERATURE_WAIT SENSOR=extruder MINIMUM={S}
    {% else %}                TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={max_fuzzy} {% endif %}   
  {% endif %}

Is there a way to combine this with the stealthchanger M109 macro replacement? :



[gcode_macro M109]
rename_existing: M109.1
description: [T<index>] [S<temperature>]
  Set tool temperature and wait.
  T= Tool number, optional. If this parameter is not provided, the current tool is used.
  S= Target temperature
gcode:
  {% if params.T is defined %}
    {% set newparameters = "" %}
    {% set newparameters = newparameters ~ " T="~params.T %}
    {% if params.S is defined %}
      {% set newparameters = newparameters ~ " TARGET="~params.S %}
    {% endif %}
    SET_TOOL_TEMPERATURE WAIT=0 {newparameters}
  {% else %}
    M109.1 {rawparams}
  {% endif %}

I tried a few amateurish attempts, but of course it didnt work.

Thank you for reading…

You already do the: TEMPERATURE_WAIT SENSOR={printer.toolhead.extruder} MINIMUM=240
So, you can simply do that instead of waiting for the temperature to settle.

AFAIK, on that hotend (Trianglelab Rapido Ace Hotend), the thermistor is right behind the heater.
So, it is more or less normal, as it oscillates just because it is heating too fast (no thermal mass).
Maybe some additional attention with the thermal grease at the right place could help a little (or not).

You could play with: heaters: drop control delay by nefelim4ag · Pull Request #6706 · Klipper3d/klipper · GitHub
It could help, simply because it reacts faster.

This one could help from the other side:

You could technically reverse the average PWM level for each temperature and offset the actual value by that.
That could also stabilize the temperature.

Hope that helps.

Did you already run a PID tune?

It is strange that some users, or rather some hardware combinations, seem to suffer from PID issues. I have tried so many hotends and associated temperature probes (ranging from ‘normal’ to hopelessly overpowered) and never had real issues with them.

What you can already try without any code changes:

Hello,
thank you for your replies, i looked into them the last day and i just had time for some more testing.

@nefelim4ag

what you mention with the already existing TEMPERATURE_WAIT SENSOR: i saw that too, but thought the printer is still waiting for temp to settle and not really using it,( on the other hand its code from the tapchanger maker, so he defenitly knows what he is doing.)
thats why i asked to integrate both M109.1 code versions into one.

TY for the links, i think i understand the principles, but integrating those in my system goes beyond my abilities xD

You are right regarding the Heater/Sensor placement, the (quite strong) PTC heater is more or less in direkt contact with the sensor

@EddyMI3D

Yes i did PID tune with several temps from 150 to 250 degree Celsius without relevant changes.

@Sineos

  • Slightly reduce max_power, e.g., to 0.95 or 0.9 (retune PID after changing)
  • Increase PWM cycle time. I have observed more stable behavior with higher values, such as 0.05 (retune PID after changing)

I tried both of this, with maybe a slight improvement, but also not really satisfiying

The more i thought about it, and your responses, the more i realized i am more of a hardware , and less of a software guy :grinning_face_with_smiling_eyes:

So i took a 1mm aluminum plate, filed to the dimensions of the heater and placed it between the sensor and the heater element with some thermal paste, holding it with some cruedly bend spring wire.
This results in more thermal mass and also distance between the heater and sensor.

With temperature set to 250°C the hotend now varys between 249,6 and 250,4 degrees.
(was 147 to 254 without the mod)
To mention is a slighly longer heatup time, but this was to be expected.

I ordered some higher heat resisting thermal paste and can hopefully start some real printing tests on the weekend.

Thanks again for your input.