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

    Input Shaping driving me nuts

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    10
    38
    3.6k
    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.
    • Exerqtorundefined
      Exerqtor @Al_Capwn
      last edited by Exerqtor

      @Al_Capwn those prints look more or less exactly like mine does now. I haven't had enough time or energy to try sorting it out. Since i did more than one change at once when this artifact got introduced (changed to a "ultra lightweight" x-axis beam, and upgradred to rrf 3.5b1).

      I'm not saying this is a RRF/IS issue, or if it's a mechanical issue in my case because of what i've mentioned above. BUT, i've ran a plethora of tests now, with (IS and PA off) accelerations ranging from 800-5000mm/s2 (going up with 500mm/s2 increments from 1000mm/s2).
      Then i choose the acceleration that yelded the best result and ran the test again with all the different shapers. Then i choose the best looking result/IS and aplied that.
      Ran PA calibration (the "Ellis" style one), applied everything based on those tests and printed the test model again (only 20mm tall this time). And the surfaces look like 💩.

      At that point i kinda got fed up and lost all interest for a while tbh (was having some other RRF 3.5b1 issues as well that added to the annoyance-pool).

      I'm thinking about trying to tackle this again now that RRF3.5b2 has been released, which should let me work out those other issues i was having. If that's the case i'll run a new set of tests in the same manner as I mentioned above and try take some good pics of each result then post it.

      My theory as of now is that it's either RRF/IS/PA thats shitting the bed, that the new x-beam i installed has to much ressonance OR that my y-axis linear rails are binding/bad.

      Just out of curiosity, what kind of machine are you running? (Looks like you're trying to print some Voron parts atleast).

      Al_Capwnundefined 1 Reply Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @Al_Capwn
        last edited by

        @Al_Capwn your X and Y jerk is set quite high for IS. You do need to have it high enough so you don’t get stuttering around curves. It may be high jerk that is causing ringing, and IS is having no effect as it can’t control the initial acceleration due to the jerk. Try M566 X300 Y300.

        Ian

        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

        Exerqtorundefined Al_Capwnundefined 2 Replies Last reply Reply Quote 1
        • Exerqtorundefined
          Exerqtor @droftarts
          last edited by Exerqtor

          @droftarts said in Input Shaping driving me nuts:

          @Al_Capwn your X and Y jerk is set quite high for IS. You do need to have it high enough so you don’t get stuttering around curves. It may be high jerk that is causing ringing, and IS is having no effect as it can’t control the initial acceleration due to the jerk. Try M566 X300 Y300.

          Ian

          Interesting, are you sugesting 300mm/min ass a "lowball" to rule it out as an issue, or is 300mm/min a reasonable real life value to be using?

          Reason i'm asking is that I've got mine set to 700mm/min and experience the same issues 😅

          1 Reply Last reply Reply Quote 0
          • Al_Capwnundefined
            Al_Capwn @Exerqtor
            last edited by

            @Exerqtor its a hyper cube, I'm using linear rods and bearings and I'm printing in PC, I get that PC is not going to be the fastest printing material in the world but I'm trying to avoid 12+ hour prints as we keep having power outages and PC is not the cheapest plastic.

            I feel you on being fed up... I see people with their hyper cubes printing to the moon at speeds of 100-200mm/s and its making it so I conquer one problem... only to find another... then leave it alone for a week.... then come back.... and this I think is the last hurtle. I mean my ender 3 I got printing faster.... WITHOUT input shaping... at a better quality then I'm getting with a machine I put together using better parts then creality even looks at -_-;

            Why not use the ender 3? not trying to jump into getting it to print at 270C hot end and 120C bed temp 😄
            Also there is the fact that it would be admitting defeat and accepting that I wasted ALL of my money in trying to build my own printer VS just continuing to mod a bed slinger 😕

            Also Also, just getting up after little sleep so please tell me what you mean by PA?

            Exerqtorundefined 1 Reply Last reply Reply Quote 0
            • Al_Capwnundefined
              Al_Capwn @droftarts
              last edited by

              @droftarts I have been working down the list of calibration and while tuning linear advance I was using jerk to counter the... idk how to put it... rounding? bulging? of corners. so hopefully this is not yet a rabbit hole in a hole of rabbit holes for me >_<

              The interesting thing to me though is, in slicer "Cura" which is what I'm using/used to print the voron parts, my jerk is 2mm/s, will lowering my M566 x and y values have any effect given that i'm using so little jerk in slicer?

              Also thank you and everyone else for taking the time to reply and pitch and or field questions ^_^

              1 Reply Last reply Reply Quote 0
              • Exerqtorundefined
                Exerqtor @Al_Capwn
                last edited by

                @Al_Capwn said in Input Shaping driving me nuts:

                @Exerqtor its a hyper cube, I'm using linear rods and bearings and I'm printing in PC, I get that PC is not going to be the fastest printing material in the world but I'm trying to avoid 12+ hour prints as we keep having power outages and PC is not the cheapest plastic.

                I feel you on being fed up... I see people with their hyper cubes printing to the moon at speeds of 100-200mm/s and its making it so I conquer one problem... only to find another... then leave it alone for a week.... then come back.... and this I think is the last hurtle. I mean my ender 3 I got printing faster.... WITHOUT input shaping... at a better quality then I'm getting with a machine I put together using better parts then creality even looks at -_-;

                Why not use the ender 3? not trying to jump into getting it to print at 270C hot end and 120C bed temp 😄
                Also there is the fact that it would be admitting defeat and accepting that I wasted ALL of my money in trying to build my own printer VS just continuing to mod a bed slinger 😕

                Also Also, just getting up after little sleep so please tell me what you mean by PA?

                Haha yeah, i totally relate to that feeling. I'm on a Voron Trident myself, and i feel like i see the klipper guys churning out quality prints with lower quality gear at 5x the speed i run 🤣

                PA = Pressure Advance ✌️

                1 Reply Last reply Reply Quote 0
                • PeterH1500undefined
                  PeterH1500 @jay_s_uk
                  last edited by

                  @Al_Capwn This may be a too simple explanation for the lack of input shaping effect in your prints, but I can't see an M593 in your config.g. You may have issued this input shaping command through the console, or included it in your gcode (you haven't said, or I've missed it in the thread), but you won't see any input shaping effect on your prints unless you've included M593 somewhere. I would guess that you'd intend
                  M593 P"EI2" F50
                  in order to replicate the effect in your accelerometer graphs.

                  1 Reply Last reply Reply Quote 0
                  • Exerqtorundefined
                    Exerqtor
                    last edited by Exerqtor

                    Ok, so I've finally updated from RRF 3.50b1+ too 3.5.0b2 and sorted out the issues i was having regarding that and moved over to giving IS tuning a new go.

                    Lowered the jerk to 300mm/min as per @droftarts suggestion.

                    My printers movement config is as follows (350x350 corexy):

                    ; Axis accelerations and speeds
                    M566 X300.00 Y300.00 Z30.00 P1                                                 ; Set maximum instantaneous speed changes (mm/min) and jerk policy (XY WAS 700)
                    M203 X18000.00 Y18000.00 Z900.00                                               ; Set maximum speeds (mm/min)
                    M201 X6000.00 Y6000.00 Z150.00                                                 ; Set accelerations (mm/s²)
                    
                    ; Extruder accelerations and speeds
                    M566 E8000.00 P1                                                               ; Set maximum instantaneous speed changes (mm/min) and jerk policy
                    M203 E15000.00                                                                 ; Set maximum speeds (mm/min)
                    M201 E1800.0                                                                   ; Set accelerations (mm/s²)
                    
                    ; Reduced accelerations
                    M201.1 X500 Y500 Z80 E500                                                      ; Set reduced acceleration for special move types (mm/s²)
                    

                    The first test i tried finding the ideal M204 / printing acceleration. Both IS and PA turned off, starting with 500mm/s² stopping at 5000mm/s² in 500mm/s² increments @ 100mm/s print speed:
                    alt text
                    alt text

                    Judging by those result i think 3500mm/s² seems "ok", so i changed my config to:

                    M201 X4500.00 Y4500.00 Z150.00                                                 ; Set accelerations (mm/s²)
                    M204 P3500 T4500                                                               ; Set printing acceleration and travel accelerations (mm/s²)
                    

                    Then let the print chamber heat ut to around 60-65C, so that everything is in the "state" where i normally do my prints. Hoping that the accelerometer outputs would be as close as possible to what a real life printing scenario would be.

                    Recorded two motion profiles with IS off and about 2min pause between them to let things settle:
                    Profile1
                    Profile2

                    With a 48Hz shaper center frequenzy, the plugin suggested ZVD:
                    Suggested shaper

                    I'm currently doing a new test print with the new accelerations settings, going thru all the shapers @ 48Hz. I'll post the results of that as soon as it finishes👀

                    Exerqtorundefined 1 Reply Last reply Reply Quote 0
                    • Exerqtorundefined
                      Exerqtor @Exerqtor
                      last edited by

                      @Exerqtor
                      And the results:
                      alt text
                      alt text

                      IMO, the best result is ZVDDD. Even though it's not "perfect".

                      Al_Capwnundefined 1 Reply Last reply Reply Quote 0
                      • Al_Capwnundefined
                        Al_Capwn @Exerqtor
                        last edited by

                        @Exerqtor Thank you very much for the effort and posting of your results.

                        Now for the question, what did you do to have the print broken down into different types of IS from EI3 to None? when it stops raining (too much humidity 😞 ) I'll set up and do the same to post my results and findings

                        Hoping that lowering the jerk gives me what I'm looking for

                        Exerqtorundefined 1 Reply Last reply Reply Quote 0
                        • Exerqtorundefined
                          Exerqtor @Al_Capwn
                          last edited by Exerqtor

                          @Al_Capwn
                          Np, hope it can help you a little bit.

                          I'm using Prusaslicer, so you have the option to incert custom g-code at what layer/height you wish.
                          So i add M593 commands manually with that each 5mm 😃

                          Thought i should add that i'm going to run another test print @ 35Hz as well and see how that turns out. Since it's the Y-axis thats having the most visible ghosting that might be a better frequency for me to shape. I'll post the results tomorrow 🤟

                          Adamfilipundefined 1 Reply Last reply Reply Quote 1
                          • Adamfilipundefined
                            Adamfilip @Exerqtor
                            last edited by

                            @Exerqtor I get this frustration. Im at the point where I want to stop tinkering so much to get my printer to just print "normally" Bambu machines are looking better and better lol

                            hestiahuangundefined 1 Reply Last reply Reply Quote 0
                            • hestiahuangundefined
                              hestiahuang @Adamfilip
                              last edited by

                              @Adamfilip said in Input Shaping driving me nuts:

                              @Exerqtor I get this frustration. Im at the point where I want to stop tinkering so much to get my printer to just print "normally" Bambu machines are looking better and better lol

                              Bambu is Klipper base?

                              Adamfilipundefined 1 Reply Last reply Reply Quote 0
                              • Adamfilipundefined
                                Adamfilip @hestiahuang
                                last edited by

                                @hestiahuang dont know. its a closed firmware

                                1 Reply Last reply Reply Quote 0
                                • Al_Capwnundefined
                                  Al_Capwn
                                  last edited by

                                  UPDATE:

                                  Finally got around to trying things again now that there is a day of not rain, hail or near freezing temps.. only ran one test but it seems to have had large affect.

                                  @droftarts , lowering the jerk seemed to do the trick, i have them down to 150/150, i'm only able to push it to 2000 m/s accel though including pictures

                                  [link text](bc97f2b2-bb2c-4e05-8538-7c629e572c2d-image.png link url)

                                  alt text

                                  Here is a picture of the much better looking (imo) input shaping and a picture of the final product, the second ring from the bottom is 2000m/s and after it goes up 500 about every ring, there is a huge change from 2000 to 2500 which seems odd to me and it goes as high as 7000m/s.

                                  Anyway, tomorrow going to print (if its not raining) another set of speed tests to see if i can go faster then 50m/s in print speed, wish me luck and thanks all for the help ^_^ (Will post how that turns out as well, probably with another print for the voron to give a compare/contrast.

                                  dc42undefined Exerqtorundefined 2 Replies Last reply Reply Quote 0
                                  • dc42undefined
                                    dc42 administrators @Al_Capwn
                                    last edited by dc42

                                    @Al_Capwn I'm glad you are getting better results now.

                                    Large values of XY jerk do indeed reduce the effect of input shaping, so reducing XY jerk was the right thing to do. The main effect of low XY jerk is that curves that are made up of course segments will print more slowly.

                                    Extruder jerk does not need to be reduced for input shaping, so it should be kept fairly high in order not to reduce acceleration when pressure advance is used.

                                    You may also wish to try reducing the damping factor. I have a feeling that a damping factor of zero may be best when using the higher order input shapers, and the damping factor only really needs to be tuned when using the more basic shapers. On one of my printers, damping factor 0.0 certainly gives better results than 0.1.

                                    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

                                    Al_Capwnundefined 1 Reply Last reply Reply Quote 1
                                    • Exerqtorundefined
                                      Exerqtor @Al_Capwn
                                      last edited by

                                      @Al_Capwn
                                      Glad to see you getting some visible results! I've started testing with 150mm/min jerk today too.
                                      Spewing out some test prints atm ✌


                                      @dc42

                                      Maybe it should be covered in the jerk documentation now that input shaping has become a thing.
                                      What you just said would be valuable info for alot of us when we start tuning 😅

                                      Exerqtorundefined droftartsundefined 2 Replies Last reply Reply Quote 0
                                      • Exerqtorundefined
                                        Exerqtor @Exerqtor
                                        last edited by Exerqtor

                                        Ok so in the quest to get this ghost into the proton pack I've and still being able to run high(ish) accelerations on most of the print WITHOUT using the PrusaSlicers built in acceleration control (I want to handle as much as possible in RRF) i think I've come up with a working solution.

                                        By using regex in the PS G-code substitutions I'm now setting global.line_type to represent what kind of line/extrusion the printer is performing. Im doing this with Find: ^;TYPE:(.*) Replace with ;TYPE:$1\nset global.line_type = "$1".

                                        Now that RRF know what's going on we have a bit more freedom to "manipulte" what happens. As of now i'm only changing what happens for External perimeters & Top solid infill since that's what we end up seeing anyways Ii'm also lowering the first layer acceleration, but that's for bed adhesion purposes).

                                        The changes are done with daemon.g, who looks like this:

                                          ; Print acceleration & input shaping controll
                                          if global.accel_controll
                                            if global.layer_number = 1
                                              M204 P500                                                                ; Set printing acceleration(mm/s²)
                                            else
                                              if global.line_type = "External perimeter"
                                                if move.printingAcceleration != global.low_accel
                                                  M204 P{global.low_accel}                                             ; Set printing acceleration(mm/s²)
                                                if move.shaping.type != global.input_shaper
                                                  M593 P{global.input_shaper}                                          ; Configure input shaping
                                              elif global.line_type = "Top solid infill"
                                                if move.printingAcceleration != global.low_accel
                                                  M204 P{global.low_accel}                                             ; Set printing acceleration(mm/s²)
                                              else
                                                if move.printingAcceleration != global.def_print_accel
                                                  M204 P{global.def_print_accel}                                       ; Set printing acceleration(mm/s²)
                                                if move.shaping.type != "none"
                                                  M593 P"none"                                                         ; Disable input shaping
                                        

                                        The globals referenced in daemon.g get set in globals.g at startup and look like this:

                                        if !exists(global.input_shaper)
                                          global input_shaper = (move.shaping.type)
                                        
                                        if !exists(global.def_print_accel)
                                          global def_print_accel = (move.printingAcceleration)
                                        
                                        if !exists(global.low_accel)
                                          global low_accel = 1500
                                        
                                        if !exists(global.accel_controll)
                                          global accel_controll = true
                                        
                                        if !exists(global.line_type)
                                          global line_type = "N/A"
                                        
                                        if !exists(global.layer_number)
                                          global layer_number = 0
                                        

                                        global.layer_number is also set automatically by PS by the "After layer change G-code" seciton with set global.layer_number = {layer_num+1}

                                        Note that everything else is set like usual in config.g except global,low_accel,

                                        Haven't gotten time to do more any test prints yet, only some preliminary 2-3minute test's to see that the code works.

                                        Anyhow this should allow us to bump up the accelerations for everything that's not visible in the finished print without relying on the slicer doing the "right" thing.

                                        CCS86undefined 1 Reply Last reply Reply Quote 0
                                        • droftartsundefined
                                          droftarts administrators @Exerqtor
                                          last edited by

                                          @Exerqtor said in Input Shaping driving me nuts:

                                          @dc42

                                          Maybe it should be covered in the jerk documentation now that input shaping has become a thing.
                                          What you just said would be valuable info for alot of us when we start tuning 😅

                                          Yes, we've been discussing this. I'll update the documentation next chance I get.

                                          Ian

                                          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                                          Exerqtorundefined 1 Reply Last reply Reply Quote 2
                                          • Exerqtorundefined
                                            Exerqtor @droftarts
                                            last edited by

                                            @droftarts said in Input Shaping driving me nuts:

                                            @Exerqtor said in Input Shaping driving me nuts:

                                            @dc42

                                            Maybe it should be covered in the jerk documentation now that input shaping has become a thing.
                                            What you just said would be valuable info for alot of us when we start tuning 😅

                                            Yes, we've been discussing this. I'll update the documentation next chance I get.

                                            Ian

                                            Glad to hear! 🙂


                                            Out of curiosity, if we take a look at this motion analysis:
                                            alt text

                                            What would be the best shaper center frequency? My logic wants me to put it somewhere in the middle of the X / Y spikes at 39Hz, is that reasonable? Putting it at the X-axis peak / highest frequency totally smooth's out one axis (like one would suspect), but leaves something to be desired on the other in the test prints.

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