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

    Firmware 3.4b7 - firmware retraction bug

    Scheduled Pinned Locked Moved
    Beta Firmware
    7
    57
    3.5k
    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.
    • Diamondbackundefined
      Diamondback @dc42
      last edited by Diamondback

      @dc42 I just had it happen two times (with two different tools) for the first time during a longer move when changing filaments (it was a long retract in the unload macro). Interestingly enough, it spawned these errors:

      Driver 4 warning: phase A may be disconnected, phase B may be disconnected
      

      and then with a different tool a minute or so later:

      Driver 5 warning: phase A may be disconnected, phase B may be disconnected
      

      Both times the stepper did actually turn, just way too fast. The extruders weren't gripping the filament at this point (LGX) so they had basically zero resistance and therefore didn't stall like the other times.

      Maybe that rings any bells?

      PS: Using 3.4.2-rc1 in standalone on Duet 2 + Duex 5

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

        The errors are likely just from back emf caused by the motors spinning too fast.

        Still no way to trigger it at will though?

        Z-Bot CoreXY Build | Thingiverse Profile

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

          @phaedrux said in Firmware 3.4b7 - firmware retraction bug:

          The errors are likely just from back emf caused by the motors spinning too fast.

          Still no way to trigger it at will though?

          Is that something i need to worry about? Can it damage the drivers or the board if it does that?

          And no, unfortunately it still seems absoluetly random, in the last days I'm printing a lot of filament samples/swatches with 3 tools, so lots of filament loading/unloading in DWC (which is still the only place where this ever happens to me) and there appears to be zero pattern to it...

          I'm having it happen roughly in like 1 out of 5 cases or so, if I can help with some custom firmware with different logging or something, it would probably be fairly easy for me to get it to happen.

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

            @Diamondback No it shouldn't damage anything. I think what happens is that the back emf equals the input voltage and the driver basically detects that as a possible disconnect.

            Have you shared your full config.g yet?

            Z-Bot CoreXY Build | Thingiverse Profile

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

              @phaedrux said in Firmware 3.4b7 - firmware retraction bug:

              @Diamondback No it shouldn't damage anything. I think what happens is that the back emf equals the input voltage and the driver basically detects that as a possible disconnect.

              Have you shared your full config.g yet?

              Here you go:

              ; Configuration file for Duet WiFi (firmware version 3)
              ; executed by the firmware on start-up
              ;
              ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun May 10 2020 15:03:19 GMT+0200 (MitteleuropƤische Sommerzeit)
              
              ; General preferences
              ;M929 S3                                        ;enable debug logging
              M575 P1 S1 B57600                               ;Enable PanelDue Port
              G90                                             ; send absolute coordinates...
              M83                                             ; ...but relative extruder moves
              M550 P"V-Core Pro"                              ; set printer name
              
              M669 K1                                         ; select CoreXY mode
              
              ; Network
              M552 S1                                         ; enable network
              
              ; Drives
              M569 P0 S0                                      ; stepper X/Y
              M569 P1 S0                                      ; stepper X/Y
              M569 P2 S1                                      ; stepper Coupler
              M569 P3 S0                                      ; stepper E1
              M569 P4 S0                                      ; stepper E2
              M569 P5 S0                                      ; stepper E3
              M569 P6 S0                                      ; stepper E4
              M569 P7 S0                                      ; stepper Z1
              M569 P8 S0                                      ; stepper Z2
              M569 P9 S0                                      ; stepper Z3
              
              M584 X0 Y1 C2 Z7:8:9                            ; set drive mapping (motion system)
              M584 E3:4:5:6                                   ; set drive mapping (extruders)
              
              ; Axis Limits
              if !exists(global.hasRunInit)
              	global minY = -266
              	global maxY = 115
              
              M208 X-148:160 Y{global.minY,global.maxY}       ; set axis minima & maxima				RRF 3.4
              M208 C0:250 Z-2:270                             ; set axis minima & maxima
              
              M671 X-203:-12:216 Y-179:222:-179 S30             ; set Z leadscrew positions
              
              M92 X80.00 Y80.00 C200.00 Z400.00               ; set steps per mm
              M350 X16 Y16 I1                                 ; configure microstepping with interpolation
              M350 C16 Z16 I1                                 ; configure microstepping with interpolation
              M566 X600 Y600 C2 Z70                           ; set maximum instantaneous speed changes (mm/min)
              M203 X30000 Y30000 C10000 Z3000                 ; set maximum speeds (mm/min)
              M201 X5000 Y5000 C500 Z500                      ; set accelerations (mm/s^2) was: 2k
              M204 P600 T5000
               
               
              M906 X2100 Y2100 I50                            ; set motor currents (mA) and motor idle factor in per cent
              M906 C500 I30                                   ; set motor currents (mA) and motor idle factor in per cent
              M906 Z1800 I50                                  ; set motor currents (mA) and motor idle factor in per cent
              M906 E500:500:500:500 I30                       ; set motor currents (mA) and motor idle factor in per cent (2x Flex3Drive 2x LGX)
              M84 S30                                         ; Set idle timeout    
              
              ;=================== Extruder ======================
              M92 E408:408:408:408                            ; set steps per mm 
              M350 E16:16:16:16 I1                            ; configure microstepping 
              M566 E500:500:500:500                           ; set maximum instantaneous speed changes (mm/min) ; used to be at 1200
              M203 E15000:15000:15000:15000                   ; set maximum speeds (mm/min) 
              M201 E3000:3000:3000:3000                       ; set accelerations (mm/s^2)
              ;====================================================
              
              ; Endstops
              M574 X2 S1 P"xstop"                             ; configure active-high endstop for high end on X via pin xstop
              M574 Y1 S1 P"ystop"                             ; configure active-high endstop for high end on Y via pin ystop
              M574 Z0                                         ; No Z-Endstop (use as probe instead)
              
              ; Z-Probe
              if !exists(global.hasRunInit)
              	global zProbeSpeedFeed = 250
              	global zProbeSpeedFeedLevel = 2100
              	global zProbeSpeedTravel = 20000
              	global zProbeDiveHeightLevel = 30
              	global zProbeDiveHeightMesh = 3
              	global zProbePin = "zstop"
              	global zProbeType = 8
              	global zProbeTriggerValue = 200
              	global minXMesh = -146 
              	global maxXMesh = 150
              	global minYMesh = -150
              	global maxYMesh = 150
              	global meshPointSpacing = 30
              
              M558 K0 P{global.zProbeType} C{global.zProbePin} H{global.zProbeDiveHeightMesh} F{global.zProbeSpeedFeed} T{global.zProbeSpeedTravel}  ; default Z probe with slow speed
              ;M558 K0 P8 C"zstop" H3 F250 T20000  ; default Z probe with slow speed
              ;M558 K1 P8 C"zstop" H30 F2100 T20000  ; high speed Z probe for initial leveling and homing runs
              M558 K2 P8 C"duex.e5stop" H10 F100 T20000  ; set Z probe type to unfiltered switch and the dive height + speeds
              
              G31 K0 X0 Y0 Z0 P200 
              ;G31 K1 X0 Y0 Z0 P200
              G31 K2 X0 Y0 Z0 P200 
              
              ;G31 K0 X0 Y0 Z0 P{global.zProbeTriggerValue}                               ; set Z probe trigger value, offset and trigger height, offsets here are hardcoded in leveling macro as well
              
              M557 X{global.minXMesh, global.maxXMesh} Y{global.minYMesh, global.maxYMesh} S{global.meshPointSpacing}   ; define mesh grid
              M376 H30                                        ; Set bed correction taper
              
              ; Heaters
              M308 S0 P"bedtemp" Y"thermistor" T100000 B3950  ; configure sensor 0 as thermistor on pin bedtemp
              M950 H0 C"bedheat" T0 Q10                       ; create bed heater output on bedheat and map it to sensor 0
              M143 H0 S121                                    ; set temperature limit for heater 0 to 121C
              M307 H0 B0 R0.676 C345.1 D2.68 S1.00 V24.3      ; Bed PID Tuning
              M140 H0                                         ; map heated bed to heater 0
              
              M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 1 as thermistor on pin e0temp
              M950 H1 C"e0heat" T1                            ; create nozzle heater output on e0heat and map it to sensor 1
              M143 H1 S301                                    ; set temperature limit for heater 1 to 301C
              
              M308 S2 P"e1temp" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 2 as thermistor on pin e1temp
              M950 H2 C"e1heat" T2                            ; create nozzle heater output on e1heat and map it to sensor 2
              M143 H2 S301                                    ; set temperature limit for heater 2 to 301C
              
              M308 S3 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 3 as thermistor on pin e2temp
              M950 H3 C"duex.e2heat" T3                            ; create nozzle heater output on e2heat and map it to sensor 3
              M143 H3 S301                                    ; set temperature limit for heater 3 to 301C
              
              M308 S4 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 2 as thermistor on pin e3temp
              M950 H4 C"duex.e3heat" T4                            ; create nozzle heater output on e3heat and map it to sensor 2
              M143 H4 S301                                    ; set temperature limit for heater 2 to 301C
              
              
              M302 S190 R190                                  ;Cold extrusion settings
              
              M307 H1 R4.637 K0.673:0.218 D2.31 E1.35 S1.00 B0 V24.2 ; PID Tuning T0
              M307 H2 R4.174 K0.555:0.276 D1.96 E1.35 S1.00 B0 V24.2 ; PID Tuning T1
              M307 H3 R4.301 K0.536:0.105 D1.89 E1.35 S1.00 B0 V24.2 ; PID Tuning T2
              M307 H4 R3.780 K0.576:0.060 D1.57 E1.35 S1.00 B0 V24.2 ; PID Tuning T3
              
              ; Fans
              M950 F0 C"fan0"                                 ; Hotend Fan Tool 0
              M106 P0 S255 L255 H1 T50 C"T0 Hotend"           ; Hotend Fan Tool 0
              M950 F1 C"duex.fan3" Q50                        ; Layer Fan Tool 0
              M106 P1 S0 H-1 C"T0"                            ; Layer Fan Tool 0
              
              M950 F2 C"fan2"                                 ; Hotend Fan Tool 1
              M106 P2 S255 L255 H2 T50 C"T1 Hotend"           ; Hotend Fan Tool 1
              M950 F3 C"duex.fan4" Q50                        ; Layer Fan Tool 1
              M106 P3 S0 H-1 C"T1"                            ; Layer Fan Tool 1
              
              M950 F4 C"duex.fan5"                            ; Hotend Fan Tool 2
              M106 P4 S255 L255 H3 T50 C"T2 Hotend"           ; Hotend Fan Tool 2
              M950 F5 C"duex.fan6" Q50                        ; Layer Fan Tool 2
              M106 P5 S0 H-1 C"T2"                            ; Layer Fan Tool 2
              
              M950 F6 C"duex.fan7"                            ; Hotend Fan Tool 3
              M106 P6 S255 L255 H4 T50 C"T3 Hotend"           ; Hotend Fan Tool 3
              M950 F7 C"duex.fan8" Q50                        ; Layer Fan Tool 3
              M106 P7 S0 H-1 C"T3"                            ; Layer Fan Tool 3
              
              ;Static layer fan
              M950 F8 C"duex.e4heat" Q65535                   ; static layer fan
              M106 P8 S0 H-1 I1 L0.2 C"RSCS"
              
              ; Tools
              M563 P0 D0 H1 F1                                ; define tool 0
              G10 P0 R0 S0                                    ; set initial tool 0 active and standby temperatures to 0C
              
              M563 P1 D1 H2 F3                                ; define tool 1
              G10 P1 R0 S0                                    ; set initial tool 1 active and standby temperatures to 0C
              
              M563 P2 D2 H3 F5                                ; define tool 2
              G10 P2 R0 S0                                    ; set initial tool 2 active and standby temperatures to 0C
              
              M563 P3 D3 H4 F7                                ; define tool 3
              G10 P3 R0 S0                                    ; set initial tool 3 active and standby temperatures to 0C
              
              M563 P4 S"Pen"                                  ; define tool 4 (Pen)
              
              ;Dock present switches
              M950 J0 C"e0stop"                               ; Tool 0 Dock switch
              M950 J1 C"e1stop"                               ; Tool 1 Dock switch
              M950 J2 C"duex.e2stop"                          ; Tool 2 Dock switch
              M950 J3 C"duex.e3stop"                          ; Tool 3 Dock switch
              
              ;additional tool related switches
              ;M950 J4 C"duex.e4stop"                          ;potential toolhead tool present switch
              ;M950 J5 C"duex.e5stop"                          ;Z Offset Calibration switch
              
              M950 S0 C"duex.pwm4"                            ;PebbleWiper Servo
              M950 P1 C"duex.pwm5"                            ;Light switch PWM
              
              ;Accelerometer
              M955 P0 C"spi.cs3+spi.cs4"
              
              ;M593 P"zvd" F60 ; Inputshaping
              
              ; Miscellaneous
              M98 P"/macros/Misc/Lights/On"
              M98 P"/sys/config-tools.g"
              
              if !exists(global.hasRunInit)
              	global pebbleFeedSpeedDefault = 400
              	global pebbleFeedSpeed = global.pebbleFeedSpeedDefault	
              	global deactivateToolAfterFilamentChange = false
              	global hasRunInit = true
              

              macros/Misc/Lights/On

              M42 P1 S230
              

              config-tools.g

              if !exists(global.hasRunInit)
              	global tool0NozzleSize = "0.0"
              	global tool1NozzleSize = "0.0"
              	global tool2NozzleSize = "0.0"
              	global tool3NozzleSize = "0.0"
              	
              	global tool0NozzleMaterial = ""
              	global tool1NozzleMaterial = ""
              	global tool2NozzleMaterial = ""
              	global tool3NozzleMaterial = ""
              
              M98 P"/sys/config-tools-size.g"
              M98 P"/sys/config-tools-material.g"
              
              
              ;Z-Offset: 	If nozzle is too close to bed _reduce_ offset (negative number becomes more negative)
              ;		If nozzle is too far away, _increase_ offset (negative number becomes less negative)
              ;Tool offsets
              G10 P0 X-8.400 Y39.180 Z-4.100
              G10 P1 X-8.340 Y39.260 Z-4.080
              G10 P2 X-7.880 Y38.880 Z-4.310
              G10 P3 X-7.810 Y39.040 Z-4.576
              
              G10 P4 X0 Y46.5 Z-20.000                        ; set tool 4 axis offsets
              

              config-tools-size.g
              (This file is auto generated from my nozzle size selection UI in BtnCmd)

              set global.tool0NozzleSize = "0.4"
              set global.tool1NozzleSize = "0.4"
              set global.tool2NozzleSize = "0.4"
              set global.tool3NozzleSize = "0.4"
              
              

              config-tools-materials.g
              (This file is auto generated from my nozzle material selection UI in BtnCmd)

              set global.tool0NozzleMaterial = "brass"
              set global.tool1NozzleMaterial = "brass"
              set global.tool2NozzleMaterial = "brass"
              set global.tool3NozzleMaterial = "nozzlex"
              
              
              dc42undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @Phaedrux
                last edited by

                @phaedrux said in Firmware 3.4b7 - firmware retraction bug:

                @Diamondback No it shouldn't damage anything. I think what happens is that the back emf equals the input voltage and the driver basically detects that as a possible disconnect.

                That's correct.

                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

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

                  @diamondback are you using mesh bed compensation with taper when this issue occurs?

                  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 1
                  • Diamondbackundefined
                    Diamondback @dc42
                    last edited by

                    @dc42 said in Firmware 3.4b7 - firmware retraction bug:

                    @diamondback are you using mesh bed compensation with taper when this issue occurs?

                    I am indeed using a tapered mesh bed compensation, however, that only gets activated prior to starting a job. I don't think it gets deactivated afterwards though, so it might very well be active sometimes when this happens.
                    Maybe that explains the seemingly random nature, doing filament changes after power-up vs after a print job...
                    If you suspect that the mesh has something to do with it, is there a specific gcode I should try to put in my post print macro that deactivates the mesh again?
                    Or would changing something abuot the taper help?
                    I can't really turn off the mesh for actual printing I'm afraid.

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

                      @diamondback thanks. One of our collaborators has tracked down a cause of extruder-only moves happening too fast, but he can only make it occur when bed compensation taper is in use. I am working on a fix to include in 3.4.2. Meanwhile can you try disabling bed compensation taper, to see if the problem still occurs?

                      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 2
                      • Diamondbackundefined
                        Diamondback @dc42
                        last edited by

                        @dc42 said in Firmware 3.4b7 - firmware retraction bug:

                        @diamondback thanks. One of our collaborators has tracked down a cause of extruder-only moves happening too fast, but he can only make it occur when bed compensation taper is in use. I am working on a fix to include in 3.4.2. Meanwhile can you try disabling bed compensation taper, to see if the problem still occurs?

                        Ok, will disable it and see what happens šŸ‘

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

                          @diamondback one more question: does the tool concerned have a nonzero Z offset?

                          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 1
                          • Diamondbackundefined
                            Diamondback @dc42
                            last edited by

                            @dc42 said in Firmware 3.4b7 - firmware retraction bug:

                            @diamondback one more question: does the tool concerned have a nonzero Z offset?

                            It's a toolchanger where all 4 tools have non-zero offsets in all axis. (the toolhead/coupling/toolplate system is the one from E3D)

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

                              @diamondback @natthapol-v @danzaywer I have put new 3.4.2rc2+ firmware builds to fix this at https://www.dropbox.com/sh/7tf55ax00ky1pyx/AAA_eVJE20oYUON_gjKhCHsja?dl=0. I have tested the fix on the Duet 3 MB6HC build.

                              I was only able to reproduce this issue after when using tapered mesh bed compensation. Thanks for your patience.

                              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

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

                                @dc42 said in Firmware 3.4b7 - firmware retraction bug:

                                @diamondback @natthapol-v @danzaywer I have put new 3.4.2rc2+ firmware builds to fix this at https://www.dropbox.com/sh/7tf55ax00ky1pyx/AAA_eVJE20oYUON_gjKhCHsja?dl=0. I have tested the fix on the Duet 3 MB6HC build.

                                I was only able to reproduce this issue after when using tapered mesh bed compensation. Thanks for your patience.

                                Awesome, so with that updated firmware, using a taper shouldn't be an issue anymore?

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

                                  @diamondback said in Firmware 3.4b7 - firmware retraction bug:

                                  Awesome, so with that updated firmware, using a taper shouldn't be an issue anymore?

                                  Correct.

                                  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

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

                                    So far, no issues. šŸ‘ But haven't printed/changed filaments a lot yet

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