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

Extruder Linearity

Scheduled Pinned Locked Moved
General Discussion
7
40
6.0k
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.
  • undefined
    Phaedrux Moderator @deckingman
    last edited by 18 Jul 2018, 23:00

    @deckingman Thanks for the tips.

    I haven't noticed any retraction issues yes in the limited testing I've done so far (it's 3 hours through a 4 hour print) and I'm retracting 0.8mm @ 7200mm/min.

    Just checking M122:

    Slowest loop: 121.14ms; fastest: 0.08ms
    === Move ===
    Hiccups: 3995951, StepErrors: 0, LaErrors: 0, FreeDm: 152, MinFreeDm: 120, MaxWait: 139866ms, Underruns: 0, 0
    Scheduled moves: 143654, completed moves: 143624

    I'm not sure if that's a lot of hiccups and missed moves or not. @dc42?

    Z-Bot CoreXY Build | Thingiverse Profile

    undefined 1 Reply Last reply 19 Jul 2018, 00:30 Reply Quote 0
    • undefined
      Phaedrux Moderator @Phaedrux
      last edited by 19 Jul 2018, 00:30

      And by the end of the print

      Slowest loop: 156.84ms; fastest: 0.08ms
      === Move ===
      Hiccups: 1478554, StepErrors: 0, LaErrors: 0, FreeDm: 240, MinFreeDm: 150, MaxWait: 172ms, Underruns: 0, 1
      Scheduled moves: 3, completed moves: 3

      Z-Bot CoreXY Build | Thingiverse Profile

      1 Reply Last reply Reply Quote 0
      • undefined
        dc42 administrators
        last edited by 19 Jul 2018, 05:57

        Yes that is a lot of hiccups, which are caused by the step pulse generator being unable to generate steps fast enough. When hiccups occur, step pulses are no longer generated at uniform intervals, making missed steps more likely. I suggest you reduce microstepping or maximum speed.

        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

        undefined 1 Reply Last reply 19 Jul 2018, 06:01 Reply Quote 0
        • undefined
          Phaedrux Moderator @dc42
          last edited by 19 Jul 2018, 06:01

          @dc42 thanks. I'll go back to 16 with interpolation. I wasn't able to notice any difference in print quality one way or the other.

          Z-Bot CoreXY Build | Thingiverse Profile

          1 Reply Last reply Reply Quote 0
          • undefined
            dc42 administrators
            last edited by 19 Jul 2018, 06:04

            You may find that reducing extruder microstepping to 128 is sufficient.

            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

            undefined 1 Reply Last reply 19 Jul 2018, 06:38 Reply Quote 0
            • undefined
              Phaedrux Moderator @dc42
              last edited by 19 Jul 2018, 06:38

              @dc42 thanks. I'll give that a try first.

              I understand from some of the work shown by @deckingman that higher microstepping can actually give better extrusion accuracy in certain situations. And if any axis could benefit from it, I would think it the extruder.

              Z-Bot CoreXY Build | Thingiverse Profile

              undefined 1 Reply Last reply 19 Jul 2018, 12:32 Reply Quote 0
              • undefined
                T3P3Tony administrators
                last edited by 19 Jul 2018, 12:08

                If noise is not a consideration I assume that "real" microstepping is preferable to interpolation?

                www.duet3d.com

                1 Reply Last reply Reply Quote 0
                • undefined
                  deckingman @Phaedrux
                  last edited by 19 Jul 2018, 12:32

                  @phaedrux said in Extruder Linearity:

                  @dc42 thanks. I'll give that a try first.

                  I understand from some of the work shown by @deckingman that higher microstepping can actually give better extrusion accuracy in certain situations. And if any axis could benefit from it, I would think it the extruder.

                  Only if you are using a mixing hot end where one filament could be extruding as little as 1% of the total. I wouldn't imagine there would be all that much to gain by using higher than (say) x32 micro-stepping or 0.9 degree motors and 16x. It's easy enough to check. Just look at the extrusion amount you get for small segments in mm, then divide your steps per mm that to see how many micro-steps you get. IIRC the numbers I was looking at for a small 0.5mm segment gave an extrusion amount of around 0.025mm. Which at 415 micro-steps per mm (16x for a 3:1 geared extruder like Bondtech BMG or E3D Titan) is about 10 micro-steps which ought to be fine. But if you want to extrude 1% of that with a mixing hot end, then it's only 0.1 micro-step and ain't gonna work.

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

                  undefined 1 Reply Last reply 19 Jul 2018, 17:48 Reply Quote 1
                  • undefined
                    Phaedrux Moderator @deckingman
                    last edited by 19 Jul 2018, 17:48

                    @deckingman yes those are the specific circumstances I eluded to, thank you for summerizing then far more accurately and concisely than I could have.

                    I guess another way to think about it isn't that microstepping is providing more accuracy, but rather that in this instance there aren't enough steps to capture the movement slices. Higher stepping means more step pulses and each step can capture a smaller movement slice so nothing gets lost to rounding.

                    In my case with a single extruder I don't think this applies to me.

                    Z-Bot CoreXY Build | Thingiverse Profile

                    undefined 1 Reply Last reply 19 Jul 2018, 18:55 Reply Quote 0
                    • undefined
                      deckingman @Phaedrux
                      last edited by 19 Jul 2018, 18:55

                      @phaedrux said in Extruder Linearity:

                      @deckingman yes those are the specific circumstances I eluded to, thank you for summerizing then far more accurately and concisely than I could have.

                      I guess another way to think about it isn't that microstepping is providing more accuracy, but rather that in this instance there aren't enough steps to capture the movement slices. Higher stepping means more step pulses and each step can capture a smaller movement slice so nothing gets lost to rounding.

                      In my case with a single extruder I don't think this applies to me.

                      Exactly so. But do the maths. My typical usage case is with 0.3mm layer height and 0.5mm nozzle diameter. With smaller layer heights and nozzle widths, the extrusion amount for a given segment length will be less, and there may be a case for using say 32x or 64x micro-stepping in order to capture those small movements. Bear in mind that 0.9 degree motors @ 16x micro-stepping will give the same steps per mm as 1.8 degree motors @32x micro-stepping. But 1/16th micro-step will have more torque than a 1/32 micro-step all other things being equal (like the torque rating of the motors).

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

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        Phaedrux Moderator
                        last edited by 19 Jul 2018, 19:46

                        @deckingman Yes I'll have to dig into it a little deeper. I do print at low layer heights down to 0.05 at 0.4 extrusion width.

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          wilriker
                          last edited by 20 Jul 2018, 07:39

                          Reading all of this forms the question in me: is there a desirable minimum number of steps/mm for the extruder? Or even better have a calculator that can provide a recommendation based on layer height and nozzle size/extrusion width.

                          Manuel
                          Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                          with probably always latest firmware/DWC (incl. betas or self-compiled)
                          My Tool Collection

                          undefined 1 Reply Last reply 20 Jul 2018, 09:32 Reply Quote 0
                          • undefined
                            deckingman @wilriker
                            last edited by 20 Jul 2018, 09:32

                            @wilriker said in Extruder Linearity:

                            Reading all of this forms the question in me: is there a desirable minimum number of steps/mm for the extruder? Or even better have a calculator that can provide a recommendation based on layer height and nozzle size/extrusion width.

                            What I was concerned about was that with very small extrusion amounts (i.e. when using mixing ratios of 1%) then the amount of material to be extruded was less that one micro step at the 16x setting that I was using. So the desirable micro-stepping would be that which allows the smallest extruder move to be accomplished. I did do a spread sheet but it's specific to my printer/layer height/nozzle diameter. Looking through some old gcode files, I found that for a 300mm carriage move, the extruder move was about 15mm so it kind of follows that the extruder moves are about 5% of the carriage move. I used that 5% as a basis and calculated the extruder move for a realistically small segment move of 0.5mm giving me 0.025 mm of extrusion. Then of course with a mixing ratio of 1% of that, it moves the decimal point two places to the left. It's easy enough then to compare that amount of movement with what 1 micro-step will give at different micro-stepping settings.

                            For a more universal calculator, I'd say that you've talked yourself into a job ☺

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

                            undefined 1 Reply Last reply 20 Jul 2018, 09:49 Reply Quote 0
                            • undefined
                              wilriker @deckingman
                              last edited by 20 Jul 2018, 09:49

                              @deckingman said in Extruder Linearity:

                              For a more universal calculator, I'd say that you've talked yourself into a job ☺

                              I saw that one coming. 😂 So, I guess I gotta do what I gotta do then. 😁

                              Manuel
                              Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                              with probably always latest firmware/DWC (incl. betas or self-compiled)
                              My Tool Collection

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                wilriker
                                last edited by 20 Jul 2018, 13:09

                                OK, created a spreadsheet to calculate minimum microstepping factor for a given line width, layer height, filament diameter, flow rate and segment size. To get reliable extrusion lengths I sliced a small disc in Cura with varying line width and took their source code as a basis for how they calculate how much the extruder should move to get the required amount of plastic pushed through the nozzle.

                                My only problem is: somewhere in Cura there seems to be a multiplication factor of slightly more than 57.1% that I cannot find anywhere. I have no clue where it is coming from but it is consistent between line widths of 0.4, 0.45 and 0.5mm.

                                E.g. for a line width of 0.5mm and a layer height of 0.3mm and a filament diameter of 1.75mm it would take 0.10913mm of extruder movement to extrude 1mm of filament through the nozzle. But instead Cura will write 0.06237mm.

                                Has anyone any idea? Maybe @burtoogle?

                                Manuel
                                Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                                with probably always latest firmware/DWC (incl. betas or self-compiled)
                                My Tool Collection

                                undefined 1 Reply Last reply 20 Jul 2018, 17:36 Reply Quote 1
                                • undefined
                                  jeanmarc_Scaled
                                  last edited by 20 Jul 2018, 14:47

                                  You could re-slice with Slic3r, then use the flow calculations from the manual: http://manual.slic3r.org/advanced/flow-math

                                  Jean-Marc Giacalone
                                  Scaled

                                  undefined 1 Reply Last reply 20 Jul 2018, 14:51 Reply Quote 0
                                  • undefined
                                    wilriker @jeanmarc_Scaled
                                    last edited by 20 Jul 2018, 14:51

                                    @jeanmarc_scaled Thanks! I will definitely look at this. 👍

                                    As all slicers do basically the same (don't hit me 😂) this might already explain where this strange multiplier is coming from.

                                    But still, if anyone else has an idea I am willing to hear that. Especially since I followed the source code trail in CuraEngine on how this amount is calculated - but clearly I missed something.

                                    Manuel
                                    Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                                    with probably always latest firmware/DWC (incl. betas or self-compiled)
                                    My Tool Collection

                                    1 Reply Last reply Reply Quote 0
                                    • undefined
                                      burtoogle @wilriker
                                      last edited by 20 Jul 2018, 17:36

                                      @wilriker said in Extruder Linearity:

                                      OK, created a spreadsheet to calculate minimum microstepping factor for a given line width, layer height, filament diameter, flow rate and segment size. To get reliable extrusion lengths I sliced a small disc in Cura with varying line width and took their source code as a basis for how they calculate how much the extruder should move to get the required amount of plastic pushed through the nozzle.

                                      My only problem is: somewhere in Cura there seems to be a multiplication factor of slightly more than 57.1% that I cannot find anywhere. I have no clue where it is coming from but it is consistent between line widths of 0.4, 0.45 and 0.5mm.

                                      E.g. for a line width of 0.5mm and a layer height of 0.3mm and a filament diameter of 1.75mm it would take 0.10913mm of extruder movement to extrude 1mm of filament through the nozzle. But instead Cura will write 0.06237mm.

                                      Has anyone any idea? Maybe @burtoogle?

                                      Maybe, I do. Let's see now. The line cross section is 0.3 x 0.5 and it is 1mm long so that is 0.15 mm^3 of plastic that needs to be extruded. The filament diameter is 1.75 so that has a cross sectional area of PI x 0.875^2 = 2.405... Therefore, you will need 0.15/2.405 mm of filament to pass through the extruder which comes to 0.06236... Makes sense?

                                      undefined 1 Reply Last reply 20 Jul 2018, 17:44 Reply Quote 0
                                      • undefined
                                        wilriker @burtoogle
                                        last edited by 20 Jul 2018, 17:44

                                        @burtoogle I did the same calculations in my spreadsheet. I just now realized that I had a pair of parentheses missing when calculating the cross sectional area of the filament and this evaluated to a wrong value. 🤦

                                        Manuel
                                        Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                                        with probably always latest firmware/DWC (incl. betas or self-compiled)
                                        My Tool Collection

                                        1 Reply Last reply Reply Quote 0
                                        • undefined
                                          wilriker
                                          last edited by wilriker 20 Jul 2018, 18:24

                                          OK, error fixed, some formatting, some short instructions and here it is:

                                          EDIT

                                          This has been moved to microstep-calculator

                                          Below only for reference but outdated

                                          Microstep_Calculator.xlsx v1.01

                                          I had to convert this with LibreOffice into Excel format to be able to upload it here. This might lead to slight formatting inconsistencies... Alternatively use Microstep_Calculator.ods in my Dropbox.

                                          Instructions

                                          You only enter values in the cells that are bordered in green. Most of these will probably be self-explanatory but still I describe all of them:

                                          1. Enter your extrusion width
                                          2. Enter your layer height
                                          3. Enter your flow rate - or mixing ratio. Whatever applies.
                                          4. Enter your filament diameter
                                          5. Enter a length for a print move. This should be less or equal to 0.5mm. You can look at a sliced GCode file and search for very small moves or just take a guess here. Sometimes this value can also be adjusted in the slicer to never be smaller than this (Slic3r has such a setting).
                                            If you are unsure leave the default 0.2 in there.
                                            If you want to be extra safe replace it with 0.1 - smaller values should only be used if found in sliced GCode.
                                          6. Enter your extruder steps/mm for 16x microstepping

                                          All other values update automatically.

                                          Check the table on the right side. It will give you information on what amount of steps/mm you will have at which microstepping-factor, how many mm of filament will be pushed into the hotend by the extruder with one microstep and (the most important) last column: how many microsteps are required to extrude the filament for the move selected in step 5 above.
                                          If this value is less than 1 the cell will be marked red, green otherwise.

                                          You should choose a microstepping-factor with a green value in the last column because otherwise for such a move no extrusion might happen at all which would lead to under-extrusion and loss of print quality.


                                          @T3P3Tony or @MSquared: I originally wanted to upload an .ods file as I made this spreadsheet with LibreOffice but the forum does reject this filetype. Maybe this can be added to the whitelist, too?!

                                          Manuel
                                          Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                                          with probably always latest firmware/DWC (incl. betas or self-compiled)
                                          My Tool Collection

                                          undefined 1 Reply Last reply 20 Jul 2018, 18:37 Reply Quote 0
                                          18 out of 40
                                          • First post
                                            18/40
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA