Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Heaters remain on after upgrade from version 3.3 to 3.4

    Beta Firmware
    firmware 3.4
    6
    17
    307
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • trobison
      trobison last edited by

      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
      
      chrishamm 1 Reply Last reply Reply Quote 0
      • Phaedrux
        Phaedrux Moderator last edited by

        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.

        Z-Bot CoreXY Build | Thingiverse Profile

        trobison 1 Reply Last reply Reply Quote 0
        • Moved from Firmware installation by  Phaedrux Phaedrux 
        • trobison
          trobison @Phaedrux last edited by

          @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
          
          1 Reply Last reply Reply Quote 0
          • trobison
            trobison last edited by trobison

            @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 25m

            I 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.

            1 Reply Last reply Reply Quote 0
            • Phaedrux
              Phaedrux Moderator last edited by

              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.

              Z-Bot CoreXY Build | Thingiverse Profile

              gloomyandy 1 Reply Last reply Reply Quote 0
              • gloomyandy
                gloomyandy @Phaedrux last edited by

                @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)?

                1 Reply Last reply Reply Quote 0
                • Phaedrux
                  Phaedrux Moderator last edited by

                  @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?

                  Z-Bot CoreXY Build | Thingiverse Profile

                  1 Reply Last reply Reply Quote 0
                  • chrishamm
                    chrishamm administrators @trobison last edited by

                    @trobison M0 and M1 turn off the heaters only if stop.g/sleep.g is NOT present. If you have stop.g or sleep.g, you must turn off the heaters in those files. You may do that using M568 and M140.

                    Since M0 invokes stop.g, it's a bad idea to put M0 in stop.g (same applies to M1 and sleep.g).

                    Duet software engineer

                    1 Reply Last reply Reply Quote 0
                    • trobison
                      trobison last edited by

                      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 off

                      At 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.

                      infiniteloop 1 Reply Last reply Reply Quote 0
                      • infiniteloop
                        infiniteloop @trobison last edited by

                        @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.

                        trobison 1 Reply Last reply Reply Quote 0
                        • trobison
                          trobison @infiniteloop last edited by

                          @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.

                          1 Reply Last reply Reply Quote 0
                          • trobison
                            trobison last edited by

                            The command did not echo anything to the webpage or screen at the end of print.

                            1 Reply Last reply Reply Quote 0
                            • trobison
                              trobison last edited by

                              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.

                              infiniteloop 1 Reply Last reply Reply Quote 0
                              • infiniteloop
                                infiniteloop @trobison last edited by

                                @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.

                                trobison 1 Reply Last reply Reply Quote 0
                                • trobison
                                  trobison @infiniteloop last edited by

                                  @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.

                                  ÖrjanE 1 Reply Last reply Reply Quote 0
                                  • ÖrjanE
                                    ÖrjanE @trobison last edited by

                                    @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.

                                    trobison 1 Reply Last reply Reply Quote 0
                                    • trobison
                                      trobison @ÖrjanE last edited by

                                      @örjane Cheers. A single M0 doesn't seem to work since the firmware update. I will make the changes you have suggested.

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post
                                      Unless otherwise noted, all forum content is licensed under CC-BY-SA