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

    Microstepping and extruder performance

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    8
    2.2k
    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.
    • OwenDundefined
      OwenD
      last edited by

      I post this both to get some feedback as to why my journey so far has been as it has, and also to maybe help others undertaking the same journey. Apologies for the length of the post.
      Some weeks ago I bought a Duet Wifi & 7" PanelDue to upgrade my Flsun I3 clone which was running a MKBase GEN L.
      In the process, I also changed to a 24 volt PSU, added an enclosure and a few other things, so I fully expected a it of tweaking would be needed.
      I read all the tutorials etc and ran the configurator using as much of the old Marlin data as was applicable along with any recommendations for various settings, such as using relative extrusion, firmware retracts etc etc. and set my drivers to 16 microsteps plus interpolation with currents around 80% (I have all metal mounts so a little hot running shouldn't be a problem).
      My initial print tests were simple test cubes and I was really excited about the results with very little ringing evident and with how quiet it was.
      But as soon as I tried to print a benchy, the results were horrendous in any area where any amount of retraction was evident.
      Also there was massive amounts of stringing and bridges were horrible.
      This led me down a long path of reducing temps, changing retaction speeds, distances, accelerations, pressure advance, coasting, z hop etc etc until I had a a dozen benchys and extraction towers ranging from complete print failures to just horrible but still nowhere near as good as the GEN L + Marlin. I'd also rechecked steps per mm and tightened and adjusted everything on the printer half a dozen times.
      In desperation I finally decided to try to go back to as close to my GEN L configuration (which printed fairly well) as I could and turned off firmware retraction and relative extrusion.
      The results were much better, although there was still more stringing than I'd like on the retraction towers, but the benchy was not bad.
      Finally I decided that the only thing left was microstepping, so I changed the extruders from 16 + interpolation to straight 256 microsteps (leaving extrusion to absolute).
      The results were immediately vastly improved.
      To see what was the major contributor I switched back to relative extrusion and the results were also very good.
      There's still some tweaking to do and I'll probably go back over accelerations etc, but I'm no longer doubting why I bought this thing.
      Now I HAD read of several people having issues with very short moves when using pressure advance and certain microsteps etc, but never figured that a "simple" benchy would bring these issues to bear.

      I post my configurations and images for information, but as I said I'll now have to go back over these as I had made many changes chasing this rabbit.
      I appreciate any comments that might help me and others get our heads around this issue.

      General

      Firmware Name: 	RepRapFirmware for Duet 2 WiFi/Ethernet
      Firmware Electronics: 	Duet WiFi 1.02 or later
      Firmware Version: 	2.02RC7(RTOS) (2018-12-22b2)
      WiFi Server Version: 	1.21
      Web Interface Version: 	1.22.6
      
      

      Config.g

      ; Configuration file for Duet WiFi (firmware version 1.21)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2 on Sun Jan 06 2019 15:30:46 GMT+1000 (Australian Eastern Standard Time)
      
      ; General preferences
      G90                                                  ; Send absolute coordinates...
      M83                                                  ; ...but relative extruder moves
      
      
      ; Network
      M550 P"Flsun I3 Duet"                                ; Set machine name
      M552 S1                                              ; Enable network
      M586 P0 S1                                           ; Enable HTTP
      M586 P1 S0                                           ; Disable FTP
      M586 P2 S0                                           ; Disable Telnet
      
      ; Drives
      M569 P0 S1                                           ; Drive 0 goes forwards
      M569 P1 S0                                           ; Drive 1 goes backwards 
      M569 P2 S1                                           ; Drive 2 goes forwards 
      M569 P3 S1                                           ; Drive 3 goes forwards
      M569 P4 S0                                          ; Drive 4 goes backwards
      M350 X16 Y16 Z16 E256:256 I1                           ; Configure microstepping with interpolation
      M92 X100.00 Y100.00 Z400.00 E1433.47:1433.47        ; Set steps per mm
      M566 X600.00 Y500.00 Z60.00 E900.00:900.00           ; Set maximum instantaneous speed changes (mm/min)
      M203 X40000 Y30000 Z1500 E3600:3600      ; Set maximum speeds (mm/min)
      M201 X1800.00 Y1600.00 Z200.00 E1200.00:1200.00           ; Set accelerations (mm/s^2)
      M906 X1250.00 Y1250.00 Z1300.00 E1300.00:1300.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
      M84 S30                                              ; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y-13 Z0 S1                                     ; Set axis minima
      M208 X213 Y185 Z180 S0                               ; Set axis maxima
      
      ; Endstops
      M574 X1 Y1 S1                                        ; Set active high endstops
      
      ; Z-Probe
      M574 Z1 S2                                           ; Set endstops controlled by probe
      M307 H3 A-1 C-1 D-1                                  ; Disable heater on PWM channel for BLTouch
      M558 P9 H5 F120 T6000                                ; Set Z probe type to bltouch and the dive height + speeds
      G31 P500 X-5 Y-37 Z2.34                              ; Set Z probe trigger value, offset and trigger height
      M557 X10:180 Y0:155 S20                             ; Define mesh grid
      
      ; Heaters
      M307 H0 B0 S1.00                                     ; Disable bang-bang mode for the bed heater and set PWM limit
      M305 P0 T100000 B4138 R4700                          ; Set thermistor + ADC parameters for heater 0
      M143 H0 S130                                         ; Set temperature limit for heater 0 to 130C
      M305 P1 T100000 B4138 R4700                          ; Set thermistor + ADC parameters for heater 1
      M143 H1 S280                                         ; Set temperature limit for heater 1 to 280C
      M305 P2 T100000 B4138 R4700                          ; Set thermistor + ADC parameters for heater 2
      M143 H2 S280                                         ; Set temperature limit for heater 2 to 280C
      
      ; Calibrate MCU temp
      M912 P0 S-4
      
      ; Set PID autotune parameters
      M307 H0 A94.1 C310.3 D14.7 S0.60 V24.0 B0
      M307 H1 A211.2 C89.3 D3.6 S0.70 V24.0 B0
      M307 H2 A266.9 C105.6 D4.3 S0.70 V24.0 B0
      
      
      ; Fans
      M106 C"Part Cooling_Fan" P0 S0.5 I0 F500 H-1 B0.5                              ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
      M106 C"Hotend_Fan" P1 S1 I0 F500 H1:2                           ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
      M106 C"Control_Fan" P2 T40:65 H100:101:102 L0.3			; Set fan 3 value, PWM signal inversion and frequency. Thermostatic control is turned on
      
      ; Tools
      M563 P0 S"Left_Nozzle" D0 H1                         ; Define tool 0
      G10 P0 X-18 Y0 Z0                                    ; Set tool 0 axis offsets
      G10 P0 R0 S0                                         ; Set initial tool 0 active and standby temperatures to 0C
      M563 P1 S"Right_Nozzle" D1 H2                        ; Define tool 1
      G10 P1 X0 Y0 Z0                                     ; Set tool 1 axis offsets
      G10 P1 R0 S0                                         ; Set initial tool 1 active and standby temperatures to 0C
      
      ;Set pressure advance 
      ;M572 D0:1 S0.4
      
      ; Set retraction
      M207 S2.5 F3000 T3000 Z0.2
      
      ; Custom settings
      M200 D1.75                                                      ; set all extruder filament diameters to 1.75mm
      G29 S1                                                          ; Load previously set bed map
      M376 H10                                                        ; set bed compensation taper (H10 means taper over 10mm)
      
      
      ; Automatic saving after power loss is not enabled
      
      ; Custom settings are not configured
      
      ; Miscellaneous
      T0                                                   ; Select first tool
      

      Cura Start G Code

      G4 S4 ; Wait 4 Seconds for PanelDue
      G21 ;metric values
      M106 P0 S0;start with the fan off
      M280 P3 S160; Turn off BL Touch Alarm
      G92 X0 Y0 Z0 ; set co-ordinates to zero to allow movement before homing
      G91 ; Switch to use Relative Coordinates
      G1 Z+10 ; makes sure the nozzle & BL Touch isn't going to hit the bed or clips when it homes
      G90 ; Switch back to using Absolute Coordinates
      G10 P0 R{material_standby_temperature} S{material_print_temperature} (set standby and active temperatures for tool 0)
      G10 P1 R{material_standby_temperature} S{material_print_temperature} (set standby and active temperatures for tool 1)
      M291 S0 T3  Homing...
      G28; Home All
      M190 S{material_bed_temperature_layer_0} 	; heat bed
      M291 S0 T3  Waiting for temps...
      M116
      G01 X0 Y0 Z0.2 F1200 ; move to edge to wipe any oozed filament
      G0 X1 Y100 F1200 E3 ; wipe and extrude
      G0 Z15 ; lift head
      M291 S0 T3  Printing...;Put printing message on screen
      M83 ; Set extruder to relative movment
      G92 E0 ; reset extruder
      

      4_1549020085955_IMG_1120.jpg 3_1549020085955_IMG_1119.jpg 2_1549020085955_IMG_1118.jpg 1_1549020085955_IMG_1095.jpg 0_1549020085954_IMG_1094.jpg

      deckingmanundefined 1 Reply Last reply Reply Quote 0
      • deckingmanundefined
        deckingman @OwenD
        last edited by

        @owend That all makes perfect sense. You might find this post I did on my blog interesting https://somei3deas.wordpress.com/2018/06/08/why-16x-micro-stepping-is-a-bad-idea-with-mixing-hot-end/

        It was aimed at mixing hot ends where extrusion amounts can be down to 1% of the total. But a quick check on your config.g shows that your steps per mm @16x would be (1433/256x16) 89. That would indicate a direct drive extruder so if you do the maths, you'll see why you need higher micro-stepping for small segment lengths.

        The argument about absolute vs relative extrusion is an old and endless one, but if you think about, the firmware must convert absolute extruder move to relative moves.

        Ian
        https://somei3deas.wordpress.com/
        https://www.youtube.com/@deckingman

        1 Reply Last reply Reply Quote 0
        • OwenDundefined
          OwenD
          last edited by

          @deckingman
          I had actually read your blog in my search for answers, but as I said it didn't really seem it could apply.
          After all, I was getting very good results with my GEN L / Marlin setup with 16 microsteps.
          In fact fixed 16 microsteps would have been my next test.

          I'm a little surprised I couldn't find more people having the same issues, because there must be LOTS of direct drive extruders in use and anyone going to a board capable of 256 interpolated steps is almost certainly going to try it believing it has to be better.
          So I'm still unsure what the difference is between the way Marlin and RRF handle movement that gives such different results.
          It may also go some way to explaining why I didn't think the TMC2130 driver upgrade I tried on the GEN L before going to Duet didn't live up to the hype, because in that case I was using interpolation on that as well.

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

            @OwenD , are you certain that you were running firmware 2.02RC7 throughout all this testing, or did you upgrade part way through? You have very low extruder steps/mm @ x16 microstepping, and there was a bug fix for low extruder steps/mm at 2.02RC6.

            As your extruder has such a low steps/mm value, it's a good idea to use higher than x16 microstepping. You may find that your maximum extruder speed is restricted at x256 microstepping. If so then I suggest you use x128 microstepping so as to put your extruder steps/mm in the 400 to 900 range.

            You are running release candidate firmware, and I recommend that you upgrade to the current stable release, which is 2.02. If you wish to test your printer with x16 microstepping on firmware 2.02, and you get the same bad results, then I'll revisit the bug fix for low extruder microstepping. I tested its effect using artificial moves not an actual print, because only one of my printers has an extruder drive with low microstepping, and that one doesn't show any problems at x16 microstepping.

            It's also possible that it was microstep interpolation that was causing the issues. The interpolation on Trinamic drivers only works well when the steps/second rate changes only slowly, and that might not be the case when printing short segments using extruders with low microstepping. So x16 without interpolation might have worked better than x16 with interpolation.

            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 0
            • OwenDundefined
              OwenD
              last edited by

              @dc42
              Hi David
              No, initially I was running 2.02. I installed 2.02RC7 when no amount of tweaking seemed to be getting me anything close to a good print.
              I'll switch back to 2.02 stable over the weekend and run tests at 16 without interpolation, 128 & 256 and post the results.
              Just to confirm this is the recommended firmware to carry out these tests?
              https://github.com/dc42/RepRapFirmware/releases/download/2.02/Duet2Firmware-2.02a.zip

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

                Yes, that's the current stable firmware.

                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 0
                • OwenDundefined
                  OwenD
                  last edited by

                  OK..
                  I reinstalled 2.02 and ran the exact same G Code with various micro-stepping settings.
                  This is with a direct drive extruder with aprox 350mm bowden.
                  Unfortunately I ran out of orange after the first test, so had to change to black.
                  Overall, I think 128 microsteps gave the best results.
                  On 256, some underextrusion seems evident around the bow directly in line with the anchor chain hole.
                  Both the 16 microstep tests seem over extruded in this area.

                  I didn't stay and watch most of the prints, but I was nearby during the 16 microstep without interpolation test and I noticed that on occasion there seemed to be steps being missed during un-retract (G11) moves.

                  Based on this I'll now stick with 128 microsteps on the extruders and 16 with interpolation on X, Y & Z and start playing with pressure advance and non linear extrusion to fine tune it.

                  It might be worth putting some information in the setup pages to the effect that with direct drive extruders, users should select higher range fixed microsteps rather than use interpolation.

                  3_1549162438637_256 benchy.jpg 2_1549162438637_128 benchy.jpg 1_1549162438637_16 benchy no int.jpg 0_1549162438637_16 benchy with int.jpg

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

                    Thanks, I've added a note on extruder microstepping to https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter?revisionid=HEAD#Section_Movement_section.

                    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 0
                    • First post
                      Last post
                    Unless otherwise noted, all forum content is licensed under CC-BY-SA