My printer has stopped waiting on M109
-
@dc42 thanks, but I'm confident it's not that:
There is a 'T0' at the end of config.g.
Why does adding two 'echo' statements make it work?
This one fails too, and I've added a T0:
block40_no_wait_withT0.gcode -
@achrn your G10 S215 command is lacking a P parameter.
btw this isn't relevant to the M109 behaviour, because M109 will select a tool implicitly if necessary.
-
@dc42 Thanks. I've added a P0 to my S215 and it makes no difference (that I can discern).
This is the (latest) file that does not wait:
block40_no_wait_withT0_addP0.gcodeHere's the DWC screen while the printer is doing the calibration moves, i.e. after it has supposedly received a M116.
It has identified T0, set it to 215C, and not waited.The console, a little while later:
The print starts at 12:36:24. The nozzle priming fails (because at 12:37:46 it was still too cold - see below), and then I cancelled it.The temperature graph after I cancel
.
This file (which uis identical except I have added the line
echo "T"
with a text editor) works perfectly:
block40_no_wait_withT0_addP0_addecho.gcode -
@achrn I have tested this on my setup as best i could quickly and cannot recreate the fault with the block40_no_wait_withT0_addP0.gcode
I had to comment out some elements so the code i ran was:M107 ;TYPE:Custom ; printer start gcode for delta IMS ;M80 ; power on T0 G21 ; set units to mm G90 ; use absolute coordinates M140 S60 ; set target bed temperature G10 P0 S215 ; set target nozzle temperature ;G28 ; home M116 ; wait for all temperatures G1 F9000 ; set speed G1 X0 Y-120 ; move head to front G4 S2 ; wait 2 seconds ;G32 ; auto calibrate ;G29 ; mesh bed levelling G1 X0 Y-120 ; move head to front M83 ; relative extruder G1 E20 F120 ; extrude 20mm to prime
Can you also try commenting out the home command in between temperature setting and M116 and see if the wait works in that case. (home your printer before hand so its safe).
Cheers
-
@t3p3tony Thanks for testing.
With all teh identified items except the home immediately after setting temperatures commented out, it shows the same behaviour - doesn't wait for temperature, now tries to start printing immediately so I get lots of 'not driven' messages:
block40_no_wait_withT0_addP0_adj.gcode
gives
My workflow was:
- use ATX power on button on DWC dashboard (this switches on my 24V - the duet itself has external 5V supply)
- use home all button on DWC dashboard
- select delta calibration from DWC dashbvaord
- select run mesh compensation from DWC dashboard
- issue
G1 Z200
via box in top window border - pick the file from Files - Jobs in DWC
However, if I comment out that G28 command, i.e.
M140 S60 ; set target bed temperature G10 P0 S215 ; set target nozzle temperature ;G28 ; home M116 ; wait for all temperatures G1 F9000 ; set speed
and otherwise as above, then it works OK and waits. I've also tried it both with the G28 commented out and with the G28 line completely removed. Both work the same (i.e. work OK - the printer waits for temperatures).
I've tried various combinations of resets and print sequence - e.g.
- M999 then one with the G28 in place fails
- M999 then one without the G28 goes OK
- M999, then without G28 (goes OK) then one with the G28 fails
- M999, then with G28 (fails), without G28 (goes OK), then with G28 (fails)
So as far as I can make out, having the G28 after setting the temperatures and before the M116 causes a fail (no waiting), but having a G28 and an echo (even of only one character) works OK (it waits).
-
@achrn thanks for confirming that. Can you post your homeall.g and any of the files that it calls.
-
@t3p3tony I must admit it didn't occur to me to look into that!
I don't have a homeall.g, it's a delta and I have a homedelta.g.As it happens, I don't see anything that I think would upset it:
; homedelta.g ; called to home all towers on a delta printer ; ; M80 ; drive power on G4 S1 ; wait one second for power to stabilise G91 ; relative positioning M913 X50 Y50 Z50 ; set X Y Z motors to 50% of their normal current G1 H1 X750 Y750 Z750 F1800 ; move all towers to the high end stopping at the endstops (first pass) G1 H2 X-5 Y-5 Z-5 F1800 ; go down a few mm G1 H1 X10 Y10 Z10 F240 ; move all towers up once more (second pass) more slowly M913 X100 Y100 Z100 ; motors back to normal current for full speed moves G1 Z-5 F10000 ; move down a few mm so that the nozzle can be centred G90 ; absolute positioning G1 X0 Y0 ; centre
-
@achrn thanks. Can you do me a favour and try inserting the contents of those commands into the test print, in place of G28. If that does not work try commenting out the
G4 S1
. I am not sure but of all the commands that's the only one that's less frequently seen in a homing file AFAIK so its top candidate for the cause of this issue. -
My printer has been physically off all day (real life intruded). Now I've copied the previous file as it was (i.e. known bad behaviour), power on the duet, use ATX power on manually, run delta calibration manually, lifted the head to z=200, sent the file, and it fails to wait. So far this is as previously tested (just a change in filename).
block40_no_wait_adj.gcode
homedelta.gThen I've copied that file and removed the G28 replacing it with the full code content of my homedelta.g (but not the comments on lines by themselves). That gives me
block40_no_wait_adj_ noh1.gcodeIf I follow the same workflow (ATX power on, delta calibration, G1 Z200, send file) it honours the M116 and waits for temperatures to hit the specified values.
Repeating the exercise with the suspect
G4 S1
removed seemed to be something to try in the event that the option above still didn't wait. However, I've tried it anyway.
block40_no_wait_adj_ noh2.gcodeIf I follow the same workflow, this also waits for temperatures to hit the specified values.
For completeness I've then returned to the file at the top of the page and followed the same workflow again, and it still doesn't wait for temperatures to be reached.
-
Would you be willing to upgrade to the 3.4 beta on the unstable branch to test the most recent code to see if the issue remains?
See here for switching to and from the test branch on the pi.
https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Software_Installation -
@phaedrux 3.4.0b6 works as I think it should, i.e. the file block40_no_wait_adj.gcode from my posting yesterday now does wait for the temperatures to reach the commanded values before proceeding with the rest of the file.
I did try a full update of the pi (i.e. sudo apt update; sudo apt upgrade;) but remaining at 3.3 first, and that made no difference - still didn't wait.
Having upgraded to 3.4b6, I had to change my config.g to define a pin in my M81 command but otherwise made no changes to eitehr config or the print file and my file works.
Thanks.
-
undefined Phaedrux marked this topic as a question
-
undefined Phaedrux has marked this topic as solved
-
Thanks for testing and verifying that it works correctly in 3.4b6