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

    Enhancing pressure advance

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    8
    92
    6.4k
    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.
    • botundefined
      bot @dc42
      last edited by

      @dc42 I'll perform those tests today. I think people have performed similar tests in the past. @deckingman has previously determined that linearity is acceptable, but I'll see what I can set up to test again to see if we can reproduce similar findings.

      *not actually a robot

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

        I can't help but notice the words non-newtonian haven't come up yet.

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 1
        • Edgars Batnaundefined
          Edgars Batna @bot
          last edited by Edgars Batna

          @bot said in Enhancing pressure advance:

          @Edgars-Batna Nice work. Are you modifying only the unretract move or are you injecting movement somewhere else? The results look promising!

          The unretract move acts as you described it, but the extrusion rate of last move and the created underextrusion were also a factor that required some more implementation or it ended up ugly. I think I implemented it this way:

          1. The average extrusion rate of last 5 seconds is stored.
          2. Unretraction move applies your formula.
          3. The remainder of extrusion is stored for later.
          4. The next moves are adjusted by the remainder, factored by move time. 5 second moves get the most of the extrusion remainder. Remainder is passed on from move to move.

          Result is a small fixed amount of total underextrusion. There you see the time constants that could also be adjustable.

          I can definitely share a gcode file that I am using to troubleshoot this. It's the top part of a real-world print I'm attempting. The problem occurs at the very first move after the skirt (which made it convenient for testing), but it also happens at other spots in the file where a slow perimeter is preceded by a fast print move like support or infill, namely on layers form about 94 and up, where the tops of the letters are being formed as individual islands.

          Gcode here.

          I'll try it as soon as my other test is finished.

          @Phaedrux said in Enhancing pressure advance:

          I can't help but notice the words non-newtonian haven't come up yet.

          You mean we'll need a GUI to plot a graph when tuning filament by hand? Jokes aside, you mean that there might be no PA required up to a certain pressure or from a certain pressure depending on material and such? Honestly, I'm as good as Google on this topic, because I have to Google it all.

          1 Reply Last reply Reply Quote 1
          • botundefined
            bot @dc42
            last edited by

            @dc42 Print 1 of 20 is underway of the test. I will be printing a single wall cube with sudden speed changes in the middle of the faces, with no speed changes at the corners, and the speed change going from V1 to V2 then V2 to V1.

            XY Accel: 300 mm/s/s
            XY Jerk: 1.5 mm/s

            4 mm/s to 40 mm/s and vice versa
            8 mm/s to 40 mm/s and vice versa
            16 mm/s to 40 mm/s and vice versa
            32 mm/s to 40 mm/s and vice versa

            The 4 different prints will each have the following PA variations:

            S0.0
            S0.1
            S0.2
            S0.3
            S0.4

            Total 20 prints.

            Results tonight or tomorrow (Pacific Time).

            *not actually a robot

            Edgars Batnaundefined 1 Reply Last reply Reply Quote 0
            • Edgars Batnaundefined
              Edgars Batna @bot
              last edited by

              @bot My printer chirps like a bird when I print this file. Is it supposed to go super fast?

              botundefined 1 Reply Last reply Reply Quote 0
              • botundefined
                bot @Edgars Batna
                last edited by

                @Edgars-Batna Hmm the 100 mm/s parts go fast and the 6 mm/s parts go slow! There are only those two feedrates. Also, I think I have the retraction speed and the travel speed ten times higher than normal so I can scale down the speed of the print without slowing those moves down.

                Check the gcode and adjust the speeds as needed or whatever! Its a 0.2 mm line width and a 0.04 layer height (after the first layer) so I'm not sure if you'll be able to print it anyway.

                *not actually a robot

                Edgars Batnaundefined 1 Reply Last reply Reply Quote 0
                • botundefined
                  bot
                  last edited by

                  I'm changing the test prints to be one layer only. This makes observations easier. I will simply photograph the result from the top and then move on to the next. This will be faster.

                  *not actually a robot

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

                    @dc42 said in Enhancing pressure advance:

                    @deckingman said in Enhancing pressure advance:

                    In theory, PA should mean that one move finishes with zero residual pressure and the next one starts at that same residual pressure of zero.

                    Only if extrusion stops completely between moves.

                    I know. That's why, I went on to say (quote)...... "But what might balls that up is "jerk", because the print head doesn't come to a standstill between print moves, and so neither does the extruder."

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

                    1 Reply Last reply Reply Quote 0
                    • Edgars Batnaundefined
                      Edgars Batna @bot
                      last edited by Edgars Batna

                      @bot said in Enhancing pressure advance:

                      @Edgars-Batna Hmm the 100 mm/s parts go fast and the 6 mm/s parts go slow! There are only those two feedrates. Also, I think I have the retraction speed and the travel speed ten times higher than normal so I can scale down the speed of the print without slowing those moves down.

                      Check the gcode and adjust the speeds as needed or whatever! Its a 0.2 mm line width and a 0.04 layer height (after the first layer) so I'm not sure if you'll be able to print it anyway.

                      Unable to print with 2.05.1 official at all. Getting just loud extruder motor chirps. My other, normal, test print went fine, tho.

                      If you feel adventurous, here's modified firmware (rename to .zip): Duet2CombinedFirmware.txt

                      Usage: M207 C[your constant]. For multiple extruders specify a list: A:B:C...
                      M207 reports the values as "compensation".
                      Only tried on 2 extruder mixing CoreXY setup.
                      Only works with firmware retraction (G10/G11).

                      Looking at your GCode, steps with E0.0000x just plain won't work and steps with E0.000x will have tons of error because the computations in the firmware are not this precise. Maybe you are chasing a completely different beast... Could you create a test with reasonable extrusion rate?

                      I'd post source code but git is getting on my nerves regarding newlines, so this will need to wait until tomorrow.

                      botundefined 1 Reply Last reply Reply Quote 0
                      • botundefined
                        bot @Edgars Batna
                        last edited by bot

                        @Edgars-Batna Unfortunately, this is a reasonable extrusion rate and the areas I need to tune. Low resolution prints don't really need the extra attention, at least for my uses.

                        But, I suggest you generate a g-code yourself that just uses the top print speed you can achieve with a move that comes after that is the slowest speed you can achieve.

                        Also, what do you mean by the firmware doesn't compute that precise? AFAIK, the firmware uses 6 digits of precision. No?

                        *not actually a robot

                        Edgars Batnaundefined 1 Reply Last reply Reply Quote 0
                        • Edgars Batnaundefined
                          Edgars Batna @bot
                          last edited by Edgars Batna

                          @bot said in Enhancing pressure advance:

                          Also, what do you mean by the firmware doesn't compute that precise? AFAIK, the firmware uses 6 digits of precision. No?

                          Don't get me wrong. I want this to work too! But, the chirping on my printer are lost extruder steps. I'm talking from experience from digging around for weeks in the firmware a year ago.

                          Excerpt from your file:
                          G1 X20.514 Y12.885 E0.0004
                          G1 X20.514 Y12.767 E0.0004
                          G1 X20.627 Y12.767 E0.0004
                          G1 X22.028 Y14.168 E0.0066
                          G1 X22.036 Y14.168 E0.0000
                          G1 X22.036 Y14.104 E0.0002
                          G1 X22.106 Y14.104 E0.0002
                          G1 X22.124 Y14.026 E0.0003

                          So, just at a basic glance, there is like nan% up to inf% of compensation required. KABOOM the computations go.

                          botundefined 1 Reply Last reply Reply Quote 0
                          • botundefined
                            bot @Edgars Batna
                            last edited by bot

                            @Edgars-Batna Nah dude. It works fine. Trust me, it's been tested thoroughly.

                            My extruder microstep resolution is about 0.00025 mm

                            [Edit: I mean, everything else works fine and there are no hugely obvious errors. For PA, I dunno maybe this messes it up but it doesnt seem like it.]

                            *not actually a robot

                            Edgars Batnaundefined 1 Reply Last reply Reply Quote 0
                            • Edgars Batnaundefined
                              Edgars Batna @bot
                              last edited by

                              @bot said in Enhancing pressure advance:

                              @Edgars-Batna Nah dude. It works fine. Trust me, it's been tested thoroughly.

                              My extruder microstep resolution is about 0.00025 mm

                              [Edit: I mean, everything else works fine and there are no hugely obvious errors. For PA, I dunno maybe this messes it up but it doesnt seem like it.]

                              Alright, my extruders go at 0.00236 mm, but be warned. I also didn't understand why S3D only outputs 4 digits after comma...

                              I'd also be interested to see if my implementation does anything for you. For me it greatly reduced blobbing/stringing at the start of a move with C0.4, but I only ran two tests.

                              botundefined 1 Reply Last reply Reply Quote 1
                              • botundefined
                                bot @Edgars Batna
                                last edited by bot

                                @Edgars-Batna I also hate that s3d outputs only 4 decimal places, but it seems precise enough. Even though I can microstep 0.00025 mm, it wouldn't be accurate. Also, a single microstep is never going to be an issue at this scale. A tiny blob of filament is many microsteps so it evens out.

                                As for trying the firmware, I'd love to but I'm scared!!! This is my only printer right now and if I mess it up I'll be crying more than covid-19 has be crying already.

                                *not actually a robot

                                Edgars Batnaundefined 1 Reply Last reply Reply Quote 0
                                • botundefined
                                  bot
                                  last edited by bot

                                  I extended the testing up to PA value S0.8. I may need to go further.

                                  My initial reaction is that the values of PA required for different XY acceleration values seems different. I wonder if, when the firmware slows down the XY acceleration to accomodate extruder jerk, if the PA is not being scaled with the new acceleration but instead uses the un-slowed-down acceleration to calculate PA? (But this doesn't have to do with the topic at hand. I'm using the same acceleration value for all these tests, I'm just reacting based on tests I did earlier with different XY accel.)

                                  I'll post picture comparisons later.

                                  *not actually a robot

                                  1 Reply Last reply Reply Quote 0
                                  • Edgars Batnaundefined
                                    Edgars Batna @bot
                                    last edited by Edgars Batna

                                    @bot said in Enhancing pressure advance:

                                    As for trying the firmware, I'd love to but I'm scared!!! This is my only printer right now and if I mess it up I'll be crying more than covid-19 has be crying already.

                                    Understandable, I usually have the hard power button in my hands when testing new stuff. Most of it is no longer new to me due to extensive trial & crash through my other topics, so I feel comfortable implementing this part of the firmware and the printer has enough flex already to not break entirely, but, yeah, every line of code is a bug.

                                    @dc42 Could you please take a look if there is something hugely illegal:
                                    https://github.com/mdealer/RepRapFirmware/commit/841e38d9ad39dc408d785f6b75ab3e6182344f02

                                    0 mdealer committed to mdealer/RepRapFirmware
                                    Implement dynamic unretraction.
                                    https://forum.duet3d.com/topic/14927/enhancing-pressure-advance/76?_=1584866367558
                                    dc42undefined 1 Reply Last reply Reply Quote 1
                                    • dc42undefined
                                      dc42 administrators @Edgars Batna
                                      last edited by

                                      @Edgars-Batna said in Enhancing pressure advance:

                                      @dc42 Could you please take a look if there is something hugely illegal:
                                      https://github.com/mdealer/RepRapFirmware/commit/841e38d9ad39dc408d785f6b75ab3e6182344f02

                                      Please explain what the changes are intended to do.

                                      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

                                      Edgars Batnaundefined 1 Reply Last reply Reply Quote 0
                                      • Edgars Batnaundefined
                                        Edgars Batna @dc42
                                        last edited by Edgars Batna

                                        @dc42 said in Enhancing pressure advance:

                                        @Edgars-Batna said in Enhancing pressure advance:

                                        @dc42 Could you please take a look if there is something hugely illegal:
                                        https://github.com/mdealer/RepRapFirmware/commit/841e38d9ad39dc408d785f6b75ab3e6182344f02

                                        Please explain what the changes are intended to do.

                                        @Edgars-Batna said in Enhancing pressure advance:

                                        I think I implemented it this way:

                                        1. The average extrusion rate of last 5 seconds is stored.
                                        2. Unretraction move applies your formula: Adjusted_Unretract_Distance = Nominal_unretract_distance + (Target_Extruder_Speed_of_Second_Move - Target_Extruder_Speed_of_First_Move) * New_Constant
                                        3. The remainder of extrusion is stored for later.
                                        4. The next moves are adjusted by the remainder, factored by move time. 5 second moves get the most of the extrusion remainder. Remainder is passed on from move to move.

                                        Result is a small fixed amount of total underextrusion. There you see the time constants that could also be adjustable.

                                        It's basically what @bot suggested plus my implementation. I think it's just another variable for relieving or building up pressure in the hotend but bound to the unretraction move. Sorry, no hard facts or theory. This might well be just backlash of my own printer in the pics above, it only helped in that particular case and significantly reduced stringing in another test with a real print. I just ran some tests with more or less bot's problem, but it appears it just makes it worse without further investigations. I'm analyzing and will post some more pics soon.

                                        1 Reply Last reply Reply Quote 0
                                        • botundefined
                                          bot
                                          last edited by

                                          Sorry, I got a little delayed trying to find ass wipe to buy anywhere... I'm almost finished post-processing the images of all the prints so they can easily be compared. I'll post them in a matter of hours.

                                          *not actually a robot

                                          1 Reply Last reply Reply Quote 0
                                          • botundefined
                                            bot
                                            last edited by bot

                                            @dc42 I have finished the test and uploaded the results.

                                            They are here.

                                            The photos are all there, there is a readme.txt file with additional info about the tests, and the gcodes used for the tests are there.

                                            I'll refrain from stating any opinion. I'd like to hear your thoughts raw. Read the readme.txt file, though, because I do mention a note about the bed level during the tests.

                                            I realize you also wanted me to vary the V2 speed, which in this test is always 40 mm/s. If you wish I can repeat these tests with 80 mm/s instead of 40 mm/s as the top speed, and then repeat once again a test but with the slow speeds doubled and 80 mm/s as the top speed. Let me know if you would find this useful.

                                            Here is an example of one of the images. They are all formatted this way:

                                            4-40_PA_S0.0.png

                                            *not actually a robot

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