The firmware doesn't wait for the temperature to drop
-
I'm trying to do something simple. I just want the firmware to pause until the temperature drops below a certain number. I wrote a simple macro like this to check it:
M109 S50
M117 Hello WorldThis works when the initial temperature is below 50. But when it is above 50, it doesn't wait and executes the next line which is the message "Hello World".
I've also tried this which doesn't work either:M109 R50
M117 Hello Worldneither does this:
M116
M104 S50
M106
M117 Hello WorldThe firmwares are up-to-date (Firmware Version:1.18.1 (2017-04-09) / WiFi Server Version:1.03 (ch fork) / Web Interface Version:1.15). Any idea why it's not working?
-
M109 R50 should work. I will test it. So should M104 S50 followed (not preceded) by M116 if you have a tool selected already. Did you mean to use M116 not M106?
-
I'm using M109 R in my current tests and it works for me.
-
M109 R50 should work. I will test it. So should M104 S50 followed (not preceded) by M116 if you have a tool selected already. Did you mean to use M116 not M106?
Yes, I meant M116. The tool is selected but still doesn't work for me.
-
Here is my config file. It might helpful for debugging:
; Configuration file for Duet WiFi (firmware version 1.17)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Thu Jan 19 2017 13:13:50 GMT-0800 (Pacific Standard Time); General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M555 P1 ; Set firmware compatibility to look like RepRapFirmareM584 X0 Y1 Z2 U3 V4 E5:6:7:8:9 ; Create U and V axes
M208 X0 Y0 Z-10 U-210 V-210 E0:0:0:0:0 S1 ; Set axis minima
M208 X250 Y615 Z50 U150 V150 E1:1:1:1:1 S0 ; Set axis maxima
; Endstops
M574 X1 Y1 Z1 U1 V1 E1:1:1:1:1 S0 ; Define active S0=LOW or S1=HIGH microswitches; Drives
M569 P0 S0; Drive 0 goes forwards
M569 P1 S0; Drive 1 goes forwards
M569 P2 S1; Drive 2 goes forwards
M569 P3 S0; Drive 3 goes forwards
M569 P4 S0; Drive 4 goes forwards
M569 P5 S1; Drive 5 goes forwards
M569 P6 S1; Drive 6 goes forwards
M569 P7 S1; Drive 7 goes forwards
M569 P8 S1; Drive 8 goes forwards
M569 P9 S1; Drive 9 goes forwardsM350 X16 Y16 Z16 U16 V16 E16:16:16:16:16 I1 ; Configure microstepping with interpolation
M92 X320 Y320 Z640 U1066.66 V1066.66 E100100100 ; Set steps per mm
M566 X500 Y500 Z500 U300 V300 E1000:1000:1000:1000:1000 ; Set maximum instantaneous speed changes (mm/min)
M203 X5000 Y5000 Z500 U500 V500 E1000:1000:1000:1000:1000 ; Set maximum speeds (mm/min)
M201 X200 Y200 Z200 U200 V200 E200:200:200:200:200 ; Set accelerations (mm/s^2)
M906 X1200 Y1900 Z800 U1600 V1600 E800:800:800:800:800 I20 ; Set motor currents (mA) and motor idle factor in per cent
M84 S10 ; Set idle timeout
; Heaters
M307 H0 A-1 C-1 D-1
M307 H1 A-1 C-1 D-1
M307 H2 A-1 C-1 D-1;M307 H3 A-1 C-1 D-1
M307 H3M307 H4 A-1 C-1 D-1
M307 H5 A-1 C-1 D-1
M307 H6 A-1 C-1 D-1
M307 H7 A-1 C-1 D-1; Tools
M563 P0 D2 H3 ; Tool 0 drive 2 Heater 5; Detach Fans
;I'm using these as IOsM106 P0 H-1
M106 P1 H-1
M106 P2 H-1
M106 P3 H-1
M106 P4 H-1
M106 P5 H-1
M106 P6 H-1
M106 P7 H-1; Network
M550 PAAA ; Set machine name
M551 Paaa ; Set password
M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP; Custom settings are not configured
T0 -
I just tested M109 R80 followed by M117 in a macro, and it did wait for the hot end to cool down (to 82.5C, which it considers near enough). Then I tried M109 R50 followed by M117, and again it waited for the hot end to cool down before displaying the message.
-
I found the issue!
M109 RXX works for any number greater than or equal to 40. Any number below 40 doesn't work. In my application, I need to wait for the heater to get to the room temperature. Is there any way I can do that?
-
Maybe as a short term workaround, wait until it gets to 40C and then pause for X seconds?
-
Maybe as a short term workaround, wait until it gets to 40C and then pause for X seconds?
Thanks, that's what I'm doing now, but that pause doesn't get me back to the same temperature each time. As you said, it's a good short-term workaround.
-
I found the issue!
M109 RXX works for any number greater than or equal to 40. Any number below 40 doesn't work. In my application, I need to wait for the heater to get to the room temperature. Is there any way I can do that?
That's right, 40C is considered low enough that it might be close to room temperature in a hot climate and cooling below that might be impossible. But you said you were commanding 50C. The Duet doesn't know what your room temperature is.
-
I was commanding a lot of numbers and was confused what was going on. I wrote 50 here as an example because I thought there was something wrong with my setup and the number doesn't actually matter. Anyway, thanks for the replies. I think I need to figure out a workaround for what I want to do.
-
I'm encountering a similar problem with tool change
tfree0.g
G10
G91
G1 F5000 Z2
G90
M106 S255
M116tfree1.g
G10
G91
G1 F5000 Z2
G90
M106 S255
M116tpost0.g
M116tpost1.g
M116it doesn't wait fro temp stabilisation, it just goes straight through, i.e. the print doesn't wait on the tool change to sort its temp before restarting
-
What active and standby temperatures have you set in your G10 commands?
-
Active for both is 190 Standby for both is 170
-
Hi, any ideas on this as I want to use for my dual extrusion work?
-
My dual extrusion machine is down to single extrusion at present, but I'll try to get the second extruder working again and test it over the weekend.
-
Brilliant, thanks
-
Hi DC, any update as want to try and move to tool macros but need this to work.
-
I'm sorry, I re-installed my send extruder but I didn't get any further than that.
Please can you confirm exactly what problem you are getting on a tool change.
-
Hi, yes it may be my interpretation of M116, but I thought that "wait for temperatures to stabilise would mean that on a dual extruder system where you set both extruders to have an active temp of 190 and a standby temp of 170 the firmware would pause during the extruder change for the standby tool to reach 170 and the active to reach 190.
So in my macros (above) issue M116 on tfre would wait for the currently active but soon to be inactive tool to reach 170, then another M116 in the tpre or tpost would wait for the active tool to reach 190 before restarting the print. This is not happening, so although the tools swap, the original tool is still cooling and the new tool starts to print at 170 and the temperature rises to 190.