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 S85to 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 stabilisex being whatever temps you want/need. And then whatever other functions, like homing/probing you need.
-
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
-
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.