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.
    • wilrikerundefined
      wilriker
      last edited by

      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

      burtoogleundefined 1 Reply Last reply Reply Quote 1
      • jeanmarc_Scaledundefined
        jeanmarc_Scaled
        last edited by

        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

        wilrikerundefined 1 Reply Last reply Reply Quote 0
        • wilrikerundefined
          wilriker @jeanmarc_Scaled
          last edited by

          @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
          • burtoogleundefined
            burtoogle @wilriker
            last edited by

            @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?

            wilrikerundefined 1 Reply Last reply Reply Quote 0
            • wilrikerundefined
              wilriker @burtoogle
              last edited by

              @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
              • wilrikerundefined
                wilriker
                last edited by wilriker

                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

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

                  @wilriker That's great. Just to clarify, are you getting the segment size from the E distance on a print move?

                  Z-Bot CoreXY Build | Thingiverse Profile

                  wilrikerundefined 1 Reply Last reply Reply Quote 0
                  • wilrikerundefined
                    wilriker @Phaedrux
                    last edited by wilriker

                    @phaedrux I think "segment size" was a purely chosen label. What this means is the length of a print move. Everything is calculated based on how Cura calculates the extrusion amount or better the Ennn parameter of a G1 move.

                    I confirmed that Cura is actually using my calculated values by checking multiple GCode files sliced with Cura and checked the relation between move distance and extrusion distance on print moves. This usually only varies around the 3rd to 4th decimal so is pretty stable.

                    I will add a small How-to to the post above and will probably next week add a wiki page.

                    EDIT: Instructions added to the post above.

                    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

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

                      @wilriker One more thing you could add is the maximum attainable extruder speed for the chosen micro-stepping setting. You'll likely come up against this limit for retraction moves, and possible filament loading and unloading, as these tend to be much faster than normal print moves. IIRC DC42 said that for these extruder only moves, somewhere in the region of 20KHz would be the maximum. To check, one can do M122 and for earlier firmware look at maxreps, with later firmware, look at Hiccups. I can tell you that with 256x micro-stepping on my machine, I can retract at 1,800mm/sec with max reps of 40 but not 3,600 which has max reps of 744. But if I set micro-stepping to 128x, then I can retract at 3,600 mm/sec without any problems (max reps down to 40).

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

                      dc42undefined wilrikerundefined 2 Replies Last reply Reply Quote 0
                      • dc42undefined
                        dc42 administrators @deckingman
                        last edited by

                        @deckingman said in Extruder Linearity:

                        IIRC DC42 said that for these extruder only moves, somewhere in the region of 20KHz would be the maximum.

                        It's more likely that I said 200kHz.

                        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

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

                          @dc42 oops - typo

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

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

                            One other thing to bear in mind is that with high micro-stepping, you do lose torque. At least I seem to be when exploring the upper melt rate of what the hot end is capable of. It might be a problem if your extruder motor(s) is/are a bit borderline to start with.

                            Edit. Scratch that. Losing torque at high micro-stepping probably is the case but in this instance I had been testing Capricorn tubing and it had slipped back out of the heat sink a few mm. This left a gap for molten filament to get into and cause a partial blockage., which was why the extruder was struggling.

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

                            1 Reply Last reply Reply Quote 0
                            • wilrikerundefined
                              wilriker @deckingman
                              last edited by

                              @deckingman I will add max and desired extruder speed to it, that's a good idea! 👍 Not sure if I try to do this before Monday, though.

                              I think there is another typo in your post as I doubt you actually retract with 1,800mm/second than rather per minute, don't you? 😂 But then retracting in less than one millisecond could considerably reduce print time when doing lots of retractions. 😂

                              What I also want to do is to transform the spreadsheet into a small web page that @dc42 is hopefully interested in integrating into reprapfirmware.org. 🙂

                              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

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

                                @wilriker Yes you are right. Should have been 1,800 mm/minute (30mm/sec). Same with 3,600 mm/sec which should have been 3,600 mm/min. I blame it on a lack of caffeine ☺

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

                                wilrikerundefined 1 Reply Last reply Reply Quote 0
                                • wilrikerundefined
                                  wilriker @deckingman
                                  last edited by

                                  @deckingman Oooh, no more cold coffee?! That's bad! That would be like out of tea for me. 😁

                                  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

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

                                    @wilriker Just a temporary hiccup. The Tassimo machine has been working overtime to rectify the situation.

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

                                    1 Reply Last reply Reply Quote 0
                                    • wilrikerundefined
                                      wilriker
                                      last edited by

                                      See https://forum.duet3d.com/topic/6156/guide-how-to-select-extruder-microstep-setting.

                                      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

                                      Phaedruxundefined 1 Reply Last reply Reply Quote 3
                                      • Phaedruxundefined
                                        Phaedrux Moderator @wilriker
                                        last edited by

                                        @wilriker good stuff. I look forward to playing around with that.

                                        Z-Bot CoreXY Build | Thingiverse Profile

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