Heaters remain on after upgrade from version 3.3 to 3.4
-
The upgrade seems to have worked. Upgrade from version 3.3 to 3.4. But I have a few questions. After I start a job, I get a successful tool pickup, however, the extruder remains parked 2.52 mm above bed, and starts to heat the extruder. When it reaches the set temperature, it lowered the selected tool/nozzle to 0.00 mm. After a short while, perhaps several seconds (5), the bed drops 5 mm, and the extruder continues to the tool cleaner/brush area, and things continued as normal.
At the end of the print, the tool was docked, but the extruder heater and bed remain at their set active temperatures defined in the print job. I checked my End G-Code in SuperSlicer and there is a M0 command in there. I can confirm that the M0 command is in the generated g-code as well. But the heaters remain on. I cycled the machine with a M999 to reboot the controller. Temperatures dropped and the fan went off once the extruder hit that magic temp.
I can see the print generated icon in the webpage, nice. Is the icon available on the screen (i7) as well?. I have the latest firmware on the screen as well.
Regards,
=== Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.0 (2022-03-15 18:58:31) running on Duet Ethernet 1.02 or later + DueX5 Board ID: 0JD0M-9P6M2-NWNS0-7J9DJ-3SJ6S-K90RJ Used output buffers: 5 of 24 (24 max) === RTOS === Static ram: 23868 Dynamic ram: 73160 of which 0 recycled Never used RAM 11524, free system stack 108 words Tasks: NETWORK(ready,23.4%,212) HEAT(notifyWait,0.1%,332) Move(notifyWait,0.6%,283) DUEX(notifyWait,0.0%,24) MAIN(running,75.8%,440) IDLE(ready,0.1%,30), total 100.0% Owned mutexes: === Platform === Last reset 00:14:13 ago, cause: power up Last software reset at 2022-03-17 15:12, reason: User, GCodes spinning, available RAM 11404, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x0c Aux0 errors 0,1,0 Step timer max interval 0 MCU temperature: min 31.7, current 39.6, max 40.0 Supply voltage: min 23.9, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/24/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0 Driver 1: ok, SG min 0 Driver 2: ok, SG min 0 Driver 3: standstill, SG min n/a Driver 4: ok, SG min 0 Driver 5: standstill, SG min n/a Driver 6: standstill, SG min n/a Driver 7: standstill, SG min 0 Driver 8: standstill, SG min n/a Driver 9: standstill, SG min n/a Driver 10: Driver 11: Date/time: 2022-03-17 15:43:51 Cache data hit count 4294967295 Slowest loop: 168.02ms; fastest: 0.16ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 3.8ms, write time 4.7ms, max retries 0 === Move === DMs created 83, segments created 28, maxWait 180410ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 769, completed 766, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], CDDA state 3 === AuxDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.2 Heater 2 is on, I-accum = 0.7 === GCodes === Segments left: 1 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is doing "G1 X136.892 Y114.526 E33.23206" in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty === DueX === Read count 1, 0.07 reads/min === Network === Slowest loop: 200.36ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 Interface state active, link 100Mbps full duplex 17/03/2022, 15:33:26 Upload of Vace cube N2 PetG.gcode successful after 1s code_text
-
That seems to be the opposite of what the M0 behaviour is described as in the changelog for 3.4
The H parameter of the M0 and M1 commands has been removed. Heaters will always be turned off when these commands are executed; except that if M1 is used to cancel a print that is paused and file cancel.g exists, cancel.g will be run and heaters will remain on unless cancel.g turned them off. Previously, M0 H1 or M1 H1 would leave heaters turned on.
-
-
@phaedrux Hi, I cut out part of the code generated by SuperSlicer near the end of the print. It's there, but has no effect.
;Drop Bed G91 G1 Z10 F1000 G90 T-1 ; Drop off the tool G29 S2 ; Disable Mesh Compensation. G1 X-30 Y200 F20000 ; Park M0 ; Turn off all heaters M84 ; disable motors
-
@trobison said in Heaters remain on after upgrade from version 3.3 to 3.4:
After reading G-Code docs again, I will add a M0 in the stop.g file and see if that yields the result I am after. Below is a snippet from the M0 page. I thought a M0 in my end gode would stop the heaters, but it did not. Perhaps the stop.g file is where it should go.
This is re-edit entry of my post. Putting the M0 in the stop.g file, the result is that it did turn off the heaters.
That introduced an error on the console after the print.
17/03/2022, 16:41:23 Error: Max open file count exceeded.
Error: Max open file count exceeded.
Error: Max open file count exceeded.
Error: Max open file count exceeded.
17/03/2022, 16:41:20 Finished printing file 0:/gcodes/cube N4 HIPS.gcode, print time was 0h 25mI have to track down the other issue where the nozzle heats up over build (ozzing filament over that area), then dropping to 0.0mm height once it reaches temperature, and then moving off the cleaning station. It didn't do that earlier.
-
If you use M0 and stop.g all you should have in your slicer end gcode is M0. Then put any commands you wish to happen in stop.g, i.e. turn off heaters, etc etc.
-
@phaedrux Can you put M0 in stop.g or does that cause a recursive call to stop.g (which might be the cause of the Max open file count exceeded messages)? If you can't put M0 in stop.g is there anyway to turn off all heaters (other than doing them one by one)?
-
@gloomyandy My understanding is that if stop.g is present, M0 will call that macro and nothing else. Also from my understanding, M0 without stop.g should turn off the heaters. Waiting for DC42 to investigate.
I'm not sure if there is another way to turn off all the heaters at once. Possibly with a loop that cycles through the heaters and turns them off?
-
-
I removed the M0 from the stop.g and inserted the commands below:
M140 H0 ; Set bed heater to 0
M568 P0 R0 S0 ; Set T0 off
M568 P1 R0 S0 ; Set T1 off
M568 P2 R0 S0 ; Set T2 off
M568 P3 R0 S0 ; Set T3 offAt the end of the print, T1 (in this test) dropped to the standby temp, and the bed remains active. I then typed in "M568 P1 R0 S0" at the console and the heater was set to 0. Typing "M140 H0" turned off the bed.
It appears that commands in stop.g are not processed at the end of a successful print, and I might have to put these in the slicer's end G-Code. -
@trobison said in Heaters remain on after upgrade from version 3.3 to 3.4:
It appears that commands in stop.g are not processed at the end of a successful print
The stop.g macro will only be invoked if your slicer puts a
M0
at the end of its file. Are you sure this gCode is there?To verify, insert this line into your stop.g file:
M291 P"stop.g is executed"
It will alert you when the macro is called. If not, I'm pretty sure there's no
M0
in your slicer's output. -
@infiniteloop
I can try that. The second paragraph of my initial post I said that I opened up the gcode generated from SuperSlicer, and there is a "M0" command in there. This was inserted from the End-gcode field in the slicer. The heaters remained on. -
The command did not echo anything to the webpage or screen at the end of print.
-
I believe I have it working. I added the following to my End-Gcode in the slicer (SuperSlicer)"
M140 H0 ; Set bed heater to 0 M568 P0 R0 S0 ; Set T0 off M568 P1 R0 S0 ; Set T1 off M568 P2 R0 S0 ; Set T2 off M568 P3 R0 S0 ; Set T3 off M84 ; disable motors M291 P"Print Finished"
The print finished and popped up a friendly message. I am still unclear why M291 P"stop.g is executed" in the stop.g didn't echo a message.
-
@trobison said in Heaters remain on after upgrade from version 3.3 to 3.4:
I added the following to my End-Gcode in the slicer (SuperSlicer)"
Instead of all these lines, simply add a
M0
to the end-gCode of SuperSlicer. -
@infiniteloop
A test print has completed with a M0 command at the end of the End-gcode, and the heaters are still on.
I typed in a M0 in the console - the heaters remain on. -
@trobison Setting the temperature to zero is not the same as turning the heater off. You can use the A-parameter of M568 to change the heater state to off:
M568 P0 A0
To turn off the bed, you need: "M140 H0 S-274".Normally, all these commands should be in stop.g while the End-gcode in the slicer should only contain a single M0.
-
@örjane Cheers. A single M0 doesn't seem to work since the firmware update. I will make the changes you have suggested.