Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    [3.3-rc2/3] "Change filament" Does not work correctly

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    4
    23
    904
    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.
    • Phaedruxundefined
      Phaedrux Moderator
      last edited by

      Can you share your filament change files?
      Can you share the results of M122 as well?

      Z-Bot CoreXY Build | Thingiverse Profile

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

        @phaedrux
        M122 (after a fresh start, let me know if you need one after it actually failed to switch filaments)

        === Diagnostics ===
        RepRapFirmware for Duet 2 WiFi/Ethernet version 3.3RC2 (2021-05-11 14:55:01) running on Duet WiFi 1.02 or later + DueX5
        Board ID: 08DGM-917NK-F2MS4-7J9F2-3S86N-TYTWF
        Used output buffers: 3 of 24 (22 max)
        === RTOS ===
        Static ram: 23876
        Dynamic ram: 79884 of which 16 recycled
        Never used RAM 10640, free system stack 184 words
        Tasks: NETWORK(ready,11.7%,222) ACCEL(notifyWait,0.0%,334) HEAT(delaying,0.0%,330) Move(notifyWait,0.1%,364) DUEX(notifyWait,0.0%,24) MAIN(running,86.7%,459) IDLE(ready,1.5%,29), total 100.0%
        Owned mutexes:
        === Platform ===
        Last reset 00:00:18 ago, cause: power up
        Last software reset at 2021-05-25 18:13, reason: User, GCodes spinning, available RAM 10640, slot 1
        Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
        Error status: 0x00
        Aux0 errors 0,0,0
        Step timer max interval 0
        MCU temperature: min 19.7, current 23.7, max 23.8
        Supply voltage: min 24.1, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
        Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
        Driver 0: position 0, standstill, SG min/max not available
        Driver 1: position 0, standstill, SG min/max not available
        Driver 2: position 0, standstill, SG min/max not available
        Driver 3: position 0, standstill, SG min/max not available
        Driver 4: position 0, standstill, SG min/max not available
        Driver 5: position 0, standstill, SG min/max not available
        Driver 6: position 0, standstill, SG min/max not available
        Driver 7: position 0, standstill, SG min/max not available
        Driver 8: position 0, standstill, SG min/max not available
        Driver 9: position 0, standstill, SG min/max not available
        Driver 10: position 0
        Driver 11: position 0
        Date/time: 2021-05-26 15:43:14
        Cache data hit count 657651640
        Slowest loop: 8.13ms; fastest: 0.18ms
        I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
        === Storage ===
        Free file entries: 10
        SD card 0 detected, interface speed: 20.0MBytes/sec
        SD card longest read time 0.7ms, write time 0.0ms, max retries 0
        === Move ===
        DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000
        === MainDDARing ===
        Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
        === AuxDDARing ===
        Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
        === Heat ===
        Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
        === GCodes ===
        Segments left: 0
        Movement lock held by null
        HTTP is idle in state(s) 0
        Telnet is idle in state(s) 0
        File is idle 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, 3.32 reads/min
        === Network ===
        Slowest loop: 15.57ms; fastest: 0.00ms
        Responder states: HTTP(0) HTTP(2) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
        HTTP sessions: 1 of 8
        - WiFi -
        Network state is active
        WiFi module is connected to access point 
        Failed messages: pending 0, notready 0, noresp 0
        WiFi firmware version 1.26
        WiFi MAC address b4:e6:2d:52:f2:a9
        WiFi Vcc 3.42, reset reason Turned on by main processor
        WiFi flash size 4194304, free heap 26904
        WiFi IP address 192.168.1.31
        WiFi signal strength -63dBm, mode 802.11n, reconnections 0, sleep mode modem
        Clock register 00002002
        Socket states: 0 0 0 0 0 0 0 0
        

        Filament
        config.g

        M98 P"/macros/FilamentConfig/PETG/config"
        

        load.g

        M98 P"/macros/FilamentConfig/PETG/load"
        

        unload.g

        M98 P"/macros/FilamentConfig/PETG/unload"
        

        Now the actual macros:
        config

        M207 S0.6 F3000 Z0.0 	;firmware retraction settings for PETG
        M302 S220 R150         	;Cold extrusion settings
        
        ;pressure advance depending on selected tool (different hotends/extruders)
        if state.currentTool == 0
            M572 D{tools[state.currentTool].extruders[0]} S0.0
        elif state.currentTool == 1
            M572 D{tools[state.currentTool].extruders[0]} S0.11
        elif state.currentTool == 2
            M572 D{tools[state.currentTool].extruders[0]} S0.11
        elif state.currentTool == 3
            M572 D{tools[state.currentTool].extruders[0]} S0.0
        else
            M291 P"No active tool, can't enable PA" R"PA" S1
        

        load

        M98 P"/macros/Misc/Lights/On"
        M291 P"Heating for purge" R"Filament" S0 T115
        M98 P"/macros/Toolchanging/Advanced/HomeIfNotHomed"
        M109 S250
        M98 P"/macros/Misc/Beep"
        M291 P"Insert new PETG filament" R"Filament" S2
        M98 P"/macros/Tool/Purge"
        M98 P"/macros/Tool/Cooldown"
        M98 P"/macros/Misc/Beep"
        

        unload

        M98 P"/macros/Misc/Lights/On"
        M109 S220
        M98 P"/macros/Misc/Beep"
        M291 P"Pull out filament" R"Filament" S2
        M98 P"/macros/Tool/Cooldown"
        M98 P"/macros/Misc/Beep"
        

        I kinda hope you don't need all of these other macros as well... 😀

        tecnoundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
        • tecnoundefined
          tecno @Diamondback
          last edited by

          @diamondback

          Perfect timing for me 😉

          I was justabout to ask how it is done (new user here)

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

            @diamondback Thanks. Far as we know as of RC3 it should be working. @chrishamm will have to take a look at your files.

            Z-Bot CoreXY Build | Thingiverse Profile

            Diamondbackundefined 2 Replies Last reply Reply Quote 0
            • Diamondbackundefined
              Diamondback @Phaedrux
              last edited by

              @phaedrux Thank you, I will update to RC3 and see if things persist. 👍

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

                @phaedrux Just had time to try again on RC3, same behavior as on RC2.

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

                  Would you be able to share all of your macros that are called in the filament change load and unload macros? What's actually happening is buried in there.

                  Z-Bot CoreXY Build | Thingiverse Profile

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

                    @phaedrux here you go (I replaced macro calls by the actual gcode to makes things easier to read)

                    unload

                    M42 P1 S255; lights on
                    M109 S270
                    M300 S300 P300
                    G4 P300
                    M300 S400 P300
                    G4 P300
                    M300 S500 P300
                    M291 P"Pull out filament" R"Filament" S2
                    M104 S0
                    M300 S300 P300
                    G4 P300
                    M300 S400 P300
                    G4 P300
                    M300 S500 P300
                    

                    config

                    M207 S0.3 F3000 Z0.0 	;firmware retraction settings for PETG
                    M302 S250 R190      	;Cold extrusion settings
                    

                    load (this is using the "PebbleWiper" concept with a variable amount of pebbles being extruded depending on if it's a filament load or a toolchange, so don't be surprised by the servo calls etc)

                    M42 P1 S255; lights on
                    M291 P"Heating for purge" R"Filament" S0 T115
                    if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed || !move.axes[3].homed
                      M98 P"homeall.g"
                    M109 S270
                    M302 S250 R190
                    M300 S300 P300
                    G4 P300
                    M300 S400 P300
                    G4 P300
                    M300 S500 P300
                    M291 P"Insert new Nylon filament" R"Filament" S2
                    M280 P0 S40
                    
                    if state.currentTool < 0
                    	echo "Can't Prime & Brush, no tool selected!"
                    	M99
                    
                    if heat.heaters[tools[state.currentTool].heaters[0]].current > heat.coldExtrudeTemperature
                    	M564 S0
                    	G90
                    	G53 G1 X-148.7 Y70 F25000		; Move in front of brush at safe Y
                    	G53 G1 Y149 F25000				; Quickly move in
                    	;G53 G1 Y150 F3000				; Slowly approach final Y position
                    
                    	var primeRepeats = 1
                    	if exists(var.R)
                    		set var.primeRepeats = var.R
                    
                    	while iterations < var.primeRepeats
                    		G4 P1000
                    		M280 P0 S40
                    		G4 P100
                    		M83
                    		;M280 P0 S85
                    		G1 E20 F200
                    		M106 S255
                    		G4 P7000
                    		G1 E-0.8 F2500
                    		G4 P300
                    
                    		M280 P0 S180
                    		M106 S0
                    		G4 P200
                    
                    	G91
                    	G1 Y-40 F20000 ; start of brush
                    	
                    	G1 Y35 F20000 ; start of brush
                    	G1 Y-45 F20000
                    	M280 P0 S40
                    
                    	G1 Y-40 F25000
                    	G1 X10 F25000
                    
                    	G90
                    	M564 S1
                    else
                    	echo "Skipping Prime & Brush due to unheated tool"
                    M104 S0
                    M300 S300 P300
                    G4 P300
                    M300 S400 P300
                    G4 P300
                    M300 S500 P300
                    
                    1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator
                      last edited by

                      Note that M109/M104 may cause tool changes so it would be better to use G10 S/R + M116 instead, just to be safe
                      the only reason why M701 could complain about a loaded filament is if M702 somehow deselected the tool

                      Z-Bot CoreXY Build | Thingiverse Profile

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

                        @phaedrux Thanks for the hint, will change that to be sure.
                        Just in case it got overlooked, this specific code worked fine on previous versions, as far as I know, RC2 was the first version to break.

                        1 Reply Last reply Reply Quote 0
                        • Diamondbackundefined
                          Diamondback
                          last edited by

                          Might have found the cause. As you can see, one of the last things my unload does is to display a blocking message that waits before the tool is allowed to cool down again.

                          The error appears in the console while the blocking message is still being displayed, ie before I confirmed it.

                          It reminds me of this issue: https://forum.duet3d.com/topic/23579/3-3rc3-tool-change-don-t-wait-on-m116-p/25

                          @dc42 is this possibly related?

                          1 Reply Last reply Reply Quote 1
                          • Diamondbackundefined
                            Diamondback
                            last edited by

                            Update, tested the RC3+7 from the linked thread, this does not solve the issue. Still sounds like a ver similar thing.

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

                              @diamondback Now that 3.3 final is available can you test with that?

                              Z-Bot CoreXY Build | Thingiverse Profile

                              Diamondbackundefined 2 Replies Last reply Reply Quote 0
                              • Diamondbackundefined
                                Diamondback @Phaedrux
                                last edited by Diamondback

                                @phaedrux Same thing as before, here's a screenshot showing the behavior I mentioned (error from load in the console while the dialog from unload is still being displayed)
                                2021-06-16_23-27-21.png

                                Will remove the dialog and re-test to confirm.

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

                                  @phaedrux Ok, yea when I remove the M291 S2 from the unload script, it "works", as in it successfully executes unload and then load.
                                  So looks like the blocking M291 is indeed the issue here due to M701 being executed while M702 is still "active" due to the blocking dialog.

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

                                    Thanks. Will investigate.

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    1 Reply Last reply Reply Quote 1
                                    • Diamondbackundefined
                                      Diamondback
                                      last edited by Diamondback

                                      @phaedrux Any news? This is still bugging my daily 😁

                                      dc42undefined 1 Reply Last reply Reply Quote 0
                                      • dc42undefined
                                        dc42 administrators @Diamondback
                                        last edited by

                                        @diamondback are you running in standalone or SBC mode?

                                        Duet WiFi hardware designer and firmware engineer
                                        Please do not ask me for Duet support via PM or email, use the forum
                                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                                        Diamondbackundefined 1 Reply Last reply Reply Quote 0
                                        • Diamondbackundefined
                                          Diamondback @dc42
                                          last edited by

                                          @dc42 Standalone. (Duet 2 Wifi + Duex 5)

                                          1 Reply Last reply Reply Quote 0
                                          • Diamondbackundefined
                                            Diamondback
                                            last edited by

                                            Any news about this @dc42 ?

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