Temperature setpoint problem



  • Good morning to all,

    Is there any configuration in the firmware for the preheating of the bed and the hotend?

    Currently my bed temperature setpoint is 80 ° C, and the hotend 240 ° C.

    When the bed temperature is 78 ° C gives permission to heat the hotend, and when the hotend temperature is 238 ° C, printing begins.

    I want it to not take the next step until it reaches the set temperatures.

    Before when I used MKS Sbase 1.3 / MKS Base2 1.2 this did not happen, so I understand that it may be something from the firmware.

    I am using Duet Ehtrenet with1.18.1, but I have also tested it with 1.19beta8 and the same thing happened.

    a greeting



  • I think its a slicer function, by default the bed heats first (open the gcode file and have a look how your slicer sends the heating commands). If you place heating commands in your start gcode then the slicer does not automatically add them before. Enabling you to control things as you want.

    So this is the start of a gcode with no temperature commands in my start gcode in slic3r

    ;..........................
    ................................
    M107
    M190 S85 ; set bed temperature and wait for it to be reached
    M104 S245 ; set temperature
    
    ; Filament gcode
    
    M109 S245 ; set temperature and wait for it to be reached
    G21 ; set units to millimeters
    G90 ; use absolute coordinates
    M83 ; use relative distances for extrusion
    G1 E-1.00000 F3000.00000
    

    If I run this (im using beta9 but I don't think it makes any difference) then the bed starts heating first.

    However If I add
    M104 S245
    M190 S85

    to my start gcode in slic3r I get the following gcode :

    M107
    M104 S245
    M190 S85
    
    ; Filament gcode
    
    G21 ; set units to millimeters
    G90 ; use absolute coordinates
    M83 ; use relative distances for extrusion
    G1 E-1.00000 F3000.00000
    G1 Z0.500 F7200.000
    

    When I run this it heats the bed and extruder at the same time. However since the heat extruder command is M104 (which doesnt wait until heating is complete this needs to have an M109 after the M190, so that the nozzle reaches set temp before printing begins. This wouldnt normally be a problem if your bed is slow to heat up but my bed heats faster than my nozzle.

    So in start gcode put

    M104 Sx ;heat hotend don't wait
    M190 Sx ;heat bed
    M109 Sx ;heat hotend and wait for temp to stabilise

    x being whatever temps you want/need. And then whatever other functions, like homing/probing you need.


  • administrators

    RRF treats the set temperature as having been reached when it is within 2.5C of the target temperature. Waiting for it to be reached exactly would be a bad idea, because if the PID settings are tuned for undershoot then the set temperature would in principle take an infinite amount of time to be reached.

    What are you doing that is so critical that you need the bed temperature to be closer than 2C?

    Some users like to add a delay after the bed is up to temperature, not because they want it to get closer than 2C but to allow the heat to permeate through a layer of glass on top of the bed heater. This can be done by providing your own commands to set the temperatures in the slicer start gcode script, and adding a G4 Pnnn command to pause after the M190 command.



  • OK,

    I will try to add the code G4 Pxxxx.

    I just saw that P is for milliseconds S is for seconds.

    Could you use G4 S120, to indicate that you wait 2 minutes?

    Thanks and greetings


  • administrators

    Yes, G4 S120 will wait for 2 minutes.

    I've checked what Marlin does. By default it first waits until the temperature is within 1C of the target, then it starts a timer and checks that the temperature remains within 3C of target for 10 seconds. This seems rather complicated to me and I presume it is intended to allow for noisy temperature readings. These 3 figures can be changed in Configuration.h but I've never seen any suggestion to change them on the RepRap forum.

    Anyway, I am inclined to change RRF to consider that a heater is up to temperature when it is within 1C of target instead of within 2.5C. The only issue I can see with this is if you use a temperature sensor with a resolution worse than 2C at a temperature that you might want to use as a setpoint. What do other users think? I could make this figure configurable, but I suspect that would be overkill.



  • I always presumed the firmware moved on to the next gcode as this was some sort of look ahead function given that at 2.5 deg C below the set heater temp, it was heading in that direction, so might as well save time and move on to the next command.

    Ignore my message above, I got the wrong end of the stick.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.