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

    [3.5b1+] Inaccurate print dimensions

    Scheduled Pinned Locked Moved
    Beta Firmware
    6
    43
    2.3k
    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
      last edited by Diamondback

      I'm currently trying to print housings for my magnetic filament monitors and I am battling with some very strange issues.
      All the prints that come out are weirdly scaled in Z (maybe also X and Y, hard to tell due to the Z issues), this means that my prints do not come out with the expected heights.
      Sometimes they are compressed a bunch, sometimes they are slightly too high (haven't found any rule as to when happens what). We are talking about like one 1mm of error over 15mm of print height (rough numbers).
      Circles in Z are noticeably out of shape due to compression (or extension) as well.
      If things are compressed in Z, X and Y also look pretty bad due to the overextrusion.

      Switching back to 3.4.5 immediately fixes the issue with no other changes.

      Setup:

      • Duet 3 6HC as CAN master + Duet 3 Mini in Expansion Mode (I kept the Mini on 3.5b1+ due to the memory leak issue on 3.4.5)
      • X, Y and all 3 Z steppers are connected to the 6HC
      • 3 individual Z screws with active bed leveling
      • Bed mesh active

      The generated gcodes look fine and work fine on 3.4.5, but not on 3.5b1.

      config.g

      ;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 Toolchanger"                      ; set printer name
      
      ; Enable network
      M552 P0.0.0.0 S1
      
      M669 K1                                         ; select CoreXY mode
      
      G4 S2 ; wait for expansion boards to start
      
      ; Drives
      ;XY1: back left
      ;XY2: back right
      M569 P0.2 S0                                      ; stepper XY1
      M569 P0.3 S0                                      ; stepper XY2
      M569 P0.4 S1                                      ; stepper Coupler
      M569 P100.0 S0                                    ; stepper E0
      M569 P100.1 S0                                    ; stepper E1
      M569 P100.2 S0                                    ; stepper E2
      M569 P100.3 S0                                    ; stepper E3
      M569 P0.0 S0                                      ; stepper Z1
      M569 P0.1 S0                                      ; stepper Z2
      M569 P0.5 S0                                      ; stepper Z3
      
      M584 X0.3 Y0.2 C0.4                               ; set drive mapping (motion system X Y C)
      M584 E100.0:100.1:100.2:100.3                     ; set drive mapping (extruders)
      M584 Z0.0:0.1:0.5                                 ; set drive mapping (motion system Z)
      ;Leadscrew order (starting back center, then clockwise):
      ;1: back center
      ;2: front right
      ;3: front left
      M671 X-12:216:-203 Y222:-179:-179 S30             ; set Z leadscrew positions
      
      
      ; 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
      M208 C0:250 Z-2:270                             ; set axis minima & maxima
      
      M92 X80.00 Y80.00                               ; X/Y: 1.8°/step
      ;M92 X160.00 Y160.00                            ; X/Y: 0.9°/step
      M92 C200.00                                     ; C: E3D coupler
      M92 Z800.00                                     ; Z: TR8x4 leadscrews
      M350 X16 Y16 I1                                 ; configure microstepping with interpolation
      M350 C16 Z16 I1                                 ; configure microstepping with interpolation
      M566 X600 Y600 C2 Z50                           ; set maximum instantaneous speed changes (mm/min)
      M203 X30000 Y30000 C10000 Z2000                 ; set maximum speeds (mm/min)
      M201 X5000 Y5000 C500 Z350                      ; set accelerations (mm/s^2)
      M204 P500 T5000
      ;M204 P5000 T5000
      
      M906 X2000 Y2000 I50                            ; set motor currents (mA) and motor idle factor in per cent
      M906 C700 I30                                   ; set motor currents (mA) and motor idle factor in per cent
      M906 Z1500 I100                                  ; set motor currents (mA) and motor idle factor in per cent
      M906 E500:500:500:500 I20                       ; 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"0.io0.in"                          ; configure active-high endstop for high end on X via pin xstop
      M574 Y1 S1 P"0.io1.in"                          ; 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 = 300
      	global zProbeSpeedFeedLevel = 2000
      	global zProbeSpeedTravel = 20000
      	global zProbeDiveHeightLevel = 30
      	global zProbeDiveHeightMesh = 3
      	global zProbePin = "0.io2.in"
      	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}  ; Z Endstop/probe
      M558 K2 P8 C"0.io4.in" H10 F100 T20000  ; tool length switch
      
      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"100.temp0" Y"thermistor" T100000 B3950           ; configure sensor 0 as thermistor 
      M950 H0 C"100.out0" T0 Q10                                 ; create bed heater output 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"0.temp1" Y"thermistor" T100000 B4725 C7.06e-8    ; configure sensor 1 as thermistor
      M950 H1 C"0.out1" T1                                       ; create nozzle heater output and map it to sensor 1
      M143 H1 S301                                               ; set temperature limit for heater 1 to 301C
      
      M308 S2 P"0.temp2" Y"thermistor" T100000 B4725 C7.06e-8    ; configure sensor 2 as thermistor
      M950 H2 C"0.out2" T2                                       ; create nozzle heater output and map it to sensor 2
      M143 H2 S301                                               ; set temperature limit for heater 2 to 301C
      
      M308 S3 P"100.temp1" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 3 as thermistor
      M950 H3 C"100.out1" T3                                     ; create nozzle heater output and map it to sensor 3
      M143 H3 S301                                               ; set temperature limit for heater 3 to 301C
      
      M308 S4 P"100.temp2" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 2 as thermistor
      M950 H4 C"100.out2" T4                                     ; create nozzle heater output 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"0.out7"                                 ; Hotend Fan Tool 0
      M106 P0 S255 L255 H1 T50 C"T0 Hotend"             ; Hotend Fan Tool 0
      M950 F1 C"0.out4" Q50                             ; Layer Fan Tool 0
      M106 P1 S0 H-1 C"T0"                              ; Layer Fan Tool 0
      
      M950 F2 C"0.out8"                                 ; Hotend Fan Tool 1
      M106 P2 S255 L255 H2 T50 C"T1 Hotend"             ; Hotend Fan Tool 1
      M950 F3 C"0.out5" Q50                             ; Layer Fan Tool 1
      M106 P3 S0 H-1 C"T1"                              ; Layer Fan Tool 1
      
      M950 F4 C"100.out5"                               ; Hotend Fan Tool 2
      M106 P4 S255 L255 H3 T50 C"T2 Hotend"             ; Hotend Fan Tool 2
      M950 F5 C"100.out3" Q50                           ; Layer Fan Tool 2
      M106 P5 S0 H-1 C"T2"                              ; Layer Fan Tool 2
      
      M950 F6 C"100.out6"                               ; Hotend Fan Tool 3
      M106 P6 S255 L255 H4 T50 C"T3 Hotend"             ; Hotend Fan Tool 3
      M950 F7 C"100.out4" Q50                           ; Layer Fan Tool 3
      M106 P7 S0 H-1 C"T3"                              ; Layer Fan Tool 3
      
      ;Static layer fan
      M950 F8 C"0.out0" 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"0.io7.in"                              ; Tool 0 Dock switch
      M950 J1 C"0.io8.in"                              ; Tool 1 Dock switch
      M950 J2 C"100.io5.in"                            ; Tool 2 Dock switch
      M950 J3 C"100.io6.in"                            ; Tool 3 Dock switch
      
      ;additional tool related switches
      ;M950 J4 C"0.io3.in"                             ;potential toolhead tool present switch, not installed atm, but already wired up inside the box
      
      ;Filament sensors, not installed atm, but already wired up inside the box
      ;M591 D0 P3 C"100.io0.in" S0
      ;M591 D1 P3 C"100.io1.in" S0
      ;M591 D2 P3 C"100.io2.in" S0
      ;M591 D3 P3 C"100.io3.in" S0
      
      M950 S0 C"0.out9" Q333                          ;PebbleWiper Servo
      M280 P0 S70                                     ;Servo in idle position
      M950 P1 C"0.io5.out"                            ;Light switch PWM
      
      ;Toolhead Dotstar
      M150 X0
      
      ;Accelerometer
      M955 P0 C"spi.cs2+spi.cs3"
      
      ;Inputshaping
      ;M593 P"zvddd" F70 S0.2 
      
      ; Miscellaneous
      M98 P"/macros/Misc/Lights/On"
      M98 P"/sys/config-tools.g"
      
      if !exists(global.hasRunInit)
      	global pebbleFeedSpeedDefault = 300
      	global pebbleFeedSpeed = global.pebbleFeedSpeedDefault	
      	global deactivateToolAfterFilamentChange = false
      	global hasRunInit = true
      

      Any ideas? Someone else with the problem?

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

        @Diamondback that's an odd fault! My best guess is that the Z motors are skipping steps. Some suggestions to try when running 3.5beta1:

        1. Send M98 P"config.g" to check for any error messages. It's possible that parsing has been tightened up and a command in config.g that was accepted before is no longer being accepted.
        2. Send M201, M203, M566 and M906 commands without parameters, and check that the reported values for Z are the same as you have set in config.g.

        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 2 Replies Last reply Reply Quote 1
        • Diamondbackundefined
          Diamondback @dc42
          last edited by

          @dc42 Yea Z skipping steps is really the only issue that I can think of as well other than the motion system going all crazy internally...

          Will test these things when I have time to give 3.5 a spin again. 👍

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

            @dc42

            Upgraded to 3.5b1+ again to test:

            1. config.g does not produce any error apart from warnings about the reached hotend temps.
            M98 P"config.g"
            Warning: Heater 0 predicted maximum temperature at full power is 258°C
            Warning: Heater 2 predicted maximum temperature at full power is 470°C
            Warning: Heater 3 predicted maximum temperature at full power is 492°C
            
            1. M201, M203 output the expected values
              M566 has a bit of a difference:
            M566 X600 Y600 C2 Z50                           ; set maximum instantaneous speed changes (mm/min)
            M566 E500:500:500:500
            

            output:

            M566
            Maximum jerk rates (mm/min): X: 600.0, Y: 600.0, Z: 50.0, C: 6.0, E: 500.0:500.0:500.0:500.0, jerk policy: 0
            

            Note the difference in the C axis (coupler), not sure where that comes from, but unlikely to affect anything? Unless the coupler doesn't close correctly and the tool is therefore loose? Will check that.

            M906 possibly has another interesting bit:

            M906 X2000 Y2000 I50                            ; set motor currents (mA) and motor idle factor in per cent
            M906 C700 I30                                   ; set motor currents (mA) and motor idle factor in per cent
            M906 Z1500 I100                                  ; set motor currents (mA) and motor idle factor in per cent
            M906 E500:500:500:500 I20                       ; set motor currents (mA) and motor idle factor in per cent (4x LGX)
            
            M906
            Motor current (mA) - X:2000, Y:2000, Z:1500, C:700, E:500:500:500:500, idle factor 20%
            

            Note how my different axes use different idle factors while the print only reports the last (?) one? Is that just a cut down print or does it only apply the last one?

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

              @Diamondback thanks. There is currently a single idle factor, which is applied to all motors.

              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 Diamondback

                @dc42 Ok, so it might be that the 20% that then is also applied for Z might not be enough and it loses microsteps or something? Is there anything different in 3.4.5 about this since this very same config works fine there?

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

                  On the other hand, since mesh bed is active (and used), Z really shouldn't stay completely still for any amount of time for the first few mm, so not sure why it would enter idle?

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

                    @Diamondback the motors only go into idle mode when there has been no motion at all (on any motor) for the idle period. So the Z motor will not go idle during a print, except when the print is paused or waiting for something to heat up.

                    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 I see, that is good to know. I guess, this is not the issue then. Any further ideas?

                      IndeX4Dundefined 1 Reply Last reply Reply Quote 0
                      • IndeX4Dundefined
                        IndeX4D @Diamondback
                        last edited by

                        @Diamondback
                        I have a similar problem on 2 different machines. Both were working correctly with 3.4.5 , now I have some Z high issues on both.
                        Multiple / 4 z-axis at work.

                        Richard

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

                          @dc42
                          Here's two example prints, same gcode, 3.5b1+ printed first, then back to 3.4.5. Both were printed directly after the other as quickly as possible, no changes to config etc, purely the firmware was changed.

                          3.5b1+:
                          IMG_20230112_084113.jpg

                          3.4.5:
                          IMG_20230112_084141.jpg

                          The height difference is fairly small here (~0.6mm) compared to my previous issues with the MFM housing, so it looks like the issue somewhat depends on the actual print file.

                          @IndeX4D since you also mention multiple Z steppers, maybe something related to that?

                          IndeX4Dundefined 1 Reply Last reply Reply Quote 1
                          • IndeX4Dundefined
                            IndeX4D @Diamondback
                            last edited by IndeX4D

                            @Diamondback

                            I had 2 prints with machine 1 (GeneralG) where I had little extrusion problems..... after a little pause, the nozzle crashed into the model.
                            Objekt high 90mm. Problem started at about 50mm.
                            Extrusion problems -> may missing z steps?
                            Nozzle crash into model after PAUSE --> missing offset or much more z steps were missing? (about 4mm-->like other problem with machine 2)

                            I thought somthing is wrong with my axis and because I wanted to change the x gantry, I stopped printing with machine 1 (Generalg).

                            Then --->

                            1.--> Machine 2 (Black Flamingo) lost steps after every print, because I had to readjust z every print start something between 0.2 and
                            0.6mm. Missing z steps in this case are NOT shown in the model but It was a 10mm high print only. May it´s losing steps by any other action. Finish print or start print?
                            It´s definetely not normal to readjust z offset after every 45min print. Print looks nice but Z offset needs to readjust? Strange

                            --> 2 . Nozzle crashed into heatbed when executing ´´print again´´ - I think printer ´´forgot´´ the z offset. (4mm). Tool was already coupled from print before.

                            R.G.

                            1 Reply Last reply Reply Quote 1
                            • IndeX4Dundefined
                              IndeX4D
                              last edited by IndeX4D

                              EDIT: when resuming after pause, the offset? is not applied anymore... nozzle crash.

                              Maybe --> same behaviour when execute print again or tool change. I Will test a bit more.

                              1 Reply Last reply Reply Quote 0
                              • Philippe71undefined
                                Philippe71
                                last edited by Philippe71

                                I have exactly the same problem with a Duet3-6HC + exp3HC + 3.5b1+.
                                Same problem as on the pictures.
                                I went back to version 3.4.5, everything works again (same GCode, same configuration).
                                Currently my machine is printing, I will switch back to 3.5b1+ and send an M98 P "config.g" and M201, M203, M566 and M906 when it is finished.

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

                                  @Diamondback it looks to me that at some layers Z has not moved as far as it should, hence the extrusion bulges. Can you tell if it is all three Z motors that have not moved, or just one of them? If you can't tell, are you able to print e.g. a large hollow cuboid so thay you can tell?

                                  @Philippe71 do you have a single Z motor, or more than one?

                                  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 Philippe71undefined 2 Replies Last reply Reply Quote 1
                                  • Diamondbackundefined
                                    Diamondback @dc42
                                    last edited by

                                    @dc42 The bulged lines go around the whole print at the same heights, so I would guess that it's all 3 motors? Do you want the cube in vase mode or normal? What wall thickness?

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

                                      Hi @Diamondback, vase mode is different (Z changes continuously) so it might not show the same effect.

                                      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 2 Replies Last reply Reply Quote 1
                                      • Diamondbackundefined
                                        Diamondback @dc42
                                        last edited by Diamondback

                                        @dc42 So I printed a 75x75x50 empty cuboid on 3.4.5 (came out perfectly as expected) and I am now printing the exact same gcode on 3.5b1+.
                                        Interestingly there does not appear to be any issue whatsoever this time around. The print looks exactly the same.
                                        Things to note:

                                        • Wall thickness of 1.2mm/3 walls @0.4mm
                                        • There's no retractions going on (the previous prints with issues did have retractions)
                                        • I do not use Z-hop with retractions, Z only ever changes with completed layers and the active mesh leveling
                                        1 Reply Last reply Reply Quote 0
                                        • Diamondbackundefined
                                          Diamondback @dc42
                                          last edited by Diamondback

                                          @dc42 Two more images. The first shows the difference between a "well" printed (3.4.5) MFM housing variation and a faulty (3.5b1+) one, note the stark difference in the height of the posts, this is not a result of the viewing angle. Also note the bulging extrusion again. (one is rotated 180°, so don't be confused by the different sides being visible)
                                          IMG_20230113_182118.jpg

                                          This one is the faulty one alone, note how clearly the hole in the front is not round at all, again this not an illusion from the photo.
                                          IMG_20230113_182153.jpg

                                          (Sorry for the weird colors in the photos, looks like my phone is doing some over the top HDR stuff or something...)

                                          1 Reply Last reply Reply Quote 1
                                          • Philippe71undefined
                                            Philippe71 @dc42
                                            last edited by

                                            @dc42
                                            There are 2 Z motors

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