Standby Temperature
-
I'm working with a custom build IDEX and Prusaslicer. Is it possible to have my standby temperature set in my startup .gcode to 10 degrees less than my active temp? I don't want to run a custom startup for every filament type so I'd like the temps set by the filament in the slicer. It sets the active temp on both extruders and for both Active/standby. I have to change the standby manually on the screen. Any suggestions would be helpful. TYIA! My current startup .gocde is as follows:
T0 ; make T0 active
M568 P0 S[first_layer_temperature]T0 R[first_layer_temperature] ; Set E0 active and standby temperatures (G10 is alternative to M568)
M568 P1 S[first_layer_temperature]T1 R[first_layer_temperature] ; Set E1 active and standby temperatures
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M116 ; wait for all temps
G28 ; home all axis
G29 ; probe bed mesh
G1 T0 X5 Y10 F3000 ; move to prime T0
G1 Z0.2 F3000 ; get ready to prime
G1 X50 E25 F500 ; Extrude 25mm of filament in a 4cm line
G1 X80 F4000 ; Quickly wipe away from the filament line
G28 X ; home X
T1 ; make T1 active
G1 T1 U220 Y10 F3000 ; move to prime T1
G1 Z0.2 F3000 ; get ready to prime
G1 U270 E30 F500 ; Extrude 30mm of filament in a 5cm line
G1 U295 F4000 ; Quickly wipe away from the filament line
G28 U ; home U -
-
@SonnyD1 The only thing I have in my slicer custom start and end codes is an M98 call to macros that I've created using meta commands and conditional gcode which makes things like your question easy enough to do. So I don't know if this would work but have you tried M568 P0 S[first_layer_temperature] R[first_layer_temperature] - 10 in Prusa slicer? Or variations thereof using different brackets? BTW, you don't need the Tn parameters in your M568 commands - the tool number is referenced by the "P" value.
-
@deckingman Thank you for the reply. That didnt work. Any other ideas?
-
@SonnyD1 said in Standby Temperature:
@deckingman Thank you for the reply. That didnt work. Any other ideas?
So it seems that the slicer doesn't allow you to do maths on it's variables. It doesn't surprise me. That being the case, then my only suggestion would be to move away from the slicer and use meta commands and conditional gcode wrapped up in a macro which you call from the slicer start code. That's what I do.
......although maybe you could use code within the filaments section of the slicer. You'd need to hard code the active and standby temperatures for each filament type rather than use internal variables but once you've done that, whenever you switch between filaments in the slicer, the correct active and standby temperatures would be set. You might have to set the first and subsequent layer temperatures to zero which will suppress any other temperature setting commands that the slicer generates.
-
You are saying that you use PrusaSlicer - PrusaSlicer lets you do all kinds of things including math on variables. Are you maybe using an ancient version of PrusaSlicer? If you are using a current version then you have something wrong.
@deckingman suggested:
M568 P0 S[first_layer_temperature] R[first_layer_temperature] - 10I don't know for sure but you might be running into a syntax problem with brackets. I do not think that PrusaSlicer will know what to do with the '-10'.
You might try:
M568 P0 S[first_layer_temperature] R{[first_layer_temperature] - 10}
but this might not be correct either .... you will need to do some digging to get the exact syntax required. -
It seems that @jens55 is correct and that you can indeed do all sorts of maths on variables (Prusa Slicer calls them "placeholders"). A quick internet search led me to this https://help.prusa3d.com/article/macros_1775
A quick scan through that shows that you could use something like M568 P0 S{first_layer_temperature[0]} R{first_layer_temperature[0] -10} or something like that. I did say in my first post that you might need to experiment with brackets etc.
-
@jens55 I wasn't aware of how to input variables in Prusaslicer. I'm using 2.6.1 ATM. Let me do some additional reading and I'll get back with you. I may be able to resolve this. Thank you.
-
@deckingman I'm gonna try that out, do some reading and some experimenting and I'll get back with you. Thank you again!
-
@deckingman said in Standby Temperature:
M568 P0 S{first_layer_temperature[0]} R{first_layer_temperature[0] -10}
So this worked. The only thing it didn't do was to turn my T1 to standby upon print start. I had to do it manually on the Dashboard in the DWC. What am I missing for that? I'd like to be able to hits start and walk away knowing that everything is right. T0 should go active and T1 should go to standby with temps set when I start the print. Would adding the A1 to the M568 line fix this?
-
@SonnyD1 said in Standby Temperature:
Would adding the A1 to the M568 line fix this?
Yes that would be the easiest way to do it I think.
-
@Phaedrux Yup that fixed it. So my M568 lines now read as:
M568 P0 S{first_layer_temperature[0]} R{first_layer_temperature[0] -15} A2 ; set E0 active/standby temp
M568 P1 S{first_layer_temperature[0]} R{first_layer_temperature[0] -15} A1 ; set E1 active/standby tempThank you for your help everyone. I'm still having other issues with my startup code but I will address those in another post. I don't want to flood this post. I consider this particular issue resolved.
-