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

    Backlash compensation

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    13
    32
    6.1k
    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.
    • Loffy770undefined
      Loffy770
      last edited by

      Hi and thank you for the reply.
      1: Yes it does
      2: Nothing wrong with my DRO or scales, Been using them for years.

      Anyway, my question was about firmware support for backlash compensation and if I was implemented at some point from 1.18 that David mentioned to be on the list a year ago.

      Just want to know if it made it to implemented.

      Thanks for reading.
      Roger

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

        It hasn't been implemented yet, because other suggested improvements were more popular.

        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

        toysrfunundefined 1 Reply Last reply Reply Quote 0
        • Loffy770undefined
          Loffy770
          last edited by

          Ok thanks for the reply.
          Why its needed is because on a Z with dual screws one one belt with non anti backlash nuts you can have a hang and fall situation.

          Sitting in a Cartesian semi rigid Z carrage the scrws might not apply equal contact with both screws, one might be high and one might be low and if the play inte nuts are great it will cause a backlash no matter the gravity force.

          Of course you use and dail in the screw contact with a dail indicator and adjust the pulleys, but a backlash compensation have more use than most realize especialy when you control very precise requirements.

          Thanks for reading
          Roger

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

            Backlash compensation is never going to be perfect, because that would need the motor to move instantaneously when it reverses direction - which of course is impossible.

            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
            • vpundefined
              vp
              last edited by

              …CNC milling/router machines use a lot of ballscrews and backlash is well known there and much more a problem

              But what is the problem ? I would not "jerk", i just would correct the target end position of a move. If the direction changes, the target end position of the move has to be adjusted by a value - what is the problem to do that (at least for CNC mills etc.)?

              On 3D-printers the E-move has to stay the same (or to shift a little bit), even when the "move plan distance" gets longer or shorter. And to be honest even hiwin or TBI screws don´t have 0.00 mm backlash under load.

              All the mechanical "solutions" doesn´t work perfectly and have their own issues (e.g. more wear, less netto torque...).

              On my 3D-printer i stopped using the auto mesh bed leveling, because even < 0.05 mm backlash is too much to make it better with auto bed mesh leveling than without. Loading the nuts so heavily, that there is no backlash, just wears them off unnecessarily (i don´t do that just for the 1st layer) ....

              If hysteresis at least in z could be compensated, i would use auto bed leveling again.
              People also could use cheaper hardware, because the software would compensate it, one reason more to buy a Duet - or not to buy it.

              At least for auto bed leveling we need it also in 3D printing.

              1 Reply Last reply Reply Quote 1
              • Loffy770undefined
                Loffy770
                last edited by

                @vp:

                ..

                All the mechanical "solutions" doesn´t work perfectly and have their own issues (e.g. more wear, less netto torque…).

                On my 3D-printer i stopped using the auto mesh bed leveling, because even < 0.05 mm backlash is too much to make it better with auto bed mesh leveling than without. Loading the nuts so heavily, that there is no backlash, just wears them off unnecessarily (i don´t do that just for the 1st layer) ....

                If hysteresis at least in z could be compensated, i would use auto bed leveling again.
                People also could use cheaper hardware, because the software would compensate it, one reason more to buy a Duet - or not to buy it.

                At least for auto bed leveling we need it also in 3D printing.

                I think this is what I need to do, turn of bed leveling as it will just amplify the problem of backlash when using screws without anti backlash nuts. This machine that Im working on is for my father, I got the same machine with one differance, mine has new screws with anti backlash nuts which works great in terms of the backlash.

                On my dads machine the first layer gets screwed up and it drags the nose on spots when printing 0.10 mm first layer as it cant compensate for the uneven surface detected during bed leveling.

                I have still one 10 station VMC but have had a another bunch of "professional" CNC machines and backlash comp is a must on those.

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

                  Why not use either anti-backlash nuts, or a finer pitch on the Z leadscrews so that the backlash is tiny, or a less fine pitch so that gravity does the work? Bed compensation already adds a lot of wear to the Z leadscrews, and doing backlash compensation will increase the wear further. Even better, use a flat bed.

                  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 1
                  • Loffy770undefined
                    Loffy770
                    last edited by

                    @dc42:

                    Why not use either anti-backlash nuts, or a finer pitch on the Z leadscrews so that the backlash is tiny, or a less fine pitch so that gravity does the work? Bed compensation already adds a lot of wear to the Z leadscrews, and doing backlash compensation will increase the wear further. Even better, use a flat bed.

                    I agree with you David to use better screws and anti backlash nuts. I did upgrade mine from supplied stock but as you understand it does cost a bit to do so. (About 200 USD) But its a bit off topic..

                    For me backlash comp are a valuable function to have regardless of my specific case here. And I understand your prioirities for more pressing needs. My question was simply to find out if it ever was implemented.

                    Regards
                    Roger

                    1 Reply Last reply Reply Quote 0
                    • vpundefined
                      vp
                      last edited by

                      @dc42:

                      Why not use either anti-backlash nuts, or a finer pitch on the Z leadscrews so that the backlash is tiny, or a less fine pitch so that gravity does the work? Bed compensation already adds a lot of wear to the Z leadscrews, and doing backlash compensation will increase the wear further. Even better, use a flat bed.

                      The whole story is about - why should somebody spend > +100-200 EUR in addition (cheap vs. expensive rails, ball screws and nuts) when the problem could be solved easily in firmware ? Why does the firmware support bed mesh leveling ? Why skewness correction, why xy scaling ? ….

                      Wear appears also without backlash compensation. So the question is also, when do you have to replace the ballscrews and nuts ?
                      Anti backlash nuts increase the wear always, not only during bed leveling.

                      Could you please explain why backlash compensation by adding a delta distance to the move would increase wear ? Backlash occurs because there is no force transmitted - so how should it wear significantly when the ball screw is just rotation additionally in the region where "no force" is transferred ?

                      In addition, I don´t care about wear as long as i am able to compensate it ! On a cartesian printer it is anyhow only needed for bed mesh leveling - i don´t see the point regarding additional wear because of backlash compensation - there is no significant wear in addition and not to forget all also expensive screws wear out and the question is when do i have to replace them. Without "wear compensation" much sooner.

                      Printers are getting bigger and bigger, my bed is lightweight and > 400 x 400 mm and even with hiwin rails (which i use on my CNC mill) i would not be sure that the bed would "float" with gravity. On my 150 *150 printer i don´t need mesh bed leveling, but show me how you level a 400 x 400 mm bed to +-0.02 mm (which is already quite fuzzy for a 0.1 mm perfect 1st layer) which is heated up to 80 °C.

                      I am sorry DC42 but i dont get the point why z backlash compensation should be worse than any other "firmware compensation". As always the standard user wont use 100 % of all features, but especially bigger printers need mesh bed leveling to utilize thier potential and again ballscrews and nuts wear out. If a firmware change could elongate the life cycle of the screws and nuts it would help everybody.

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

                        I don't get this. On a Z axis the weight of the bed is always acting downwards. So the nuts are always being "pressed" against the thread form. I doesn't matter which way the screw turns, the pressure of gravity acting downwards will always keep the same part of the nut in contact with the thread. For that reason, anti backlash aren't even needed on a Z axis. The only time anti backlash nuts are of any use it when gravity isn't playing it's part - i.e. where screws are used on an X or Y axis. So on a Z axis, there isn't any backlash, therefore there is no need to compensate.

                        The only that will give the same effect as backlash in the system is if the Z axis is not free to rise and fall, throughout its entire range of travel, under it's own weight. This can be caused by misalignment of the linear guides and /or lead screws if they are constrained at the top as well as the bottom. This "sticky" behaviour may look like backlash but it isn't the same thing at all. It's likely to be variable and inconsistent throughout the Z travel and over time, and perhaps with temperature if thermal expansion is playing a part. So any attempt to compensate for a bed that "sticks" using firmware is doomed to failure.

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

                        1 Reply Last reply Reply Quote 0
                        • timcurtis67undefined
                          timcurtis67
                          last edited by

                          I agree with Ian that it is more of a binding/sticking type issue, Or the bed is crazy light in mass.

                          Backlash comp isn't a cure all fix for an axis with lower quality screws/nuts. While you can account for the clearance between a nut and lead screw, that clearance is not consistent through the entire range along the lead screw. The pitch (threads per inch) can change slightly based on the machine cutting them. The thread width will be different along the lead screw as well. Just because you get the backlash dialed in within one area of travel doesn't mean it will be right in another area.

                          Most CNC controls have a general backlash setting but also have axis comp settings for defined areas of the lead screw. One of the machines I operate at work has compensation for every 10mm of the ball screw. It is calibrated with a laser measurement system that runs the machine through a series of movements to track and correct, then repeat.

                          Obviously this is overkill for 3D printers as we are all at the mercy of the plastic melting and flowing they way we want it too.

                          1 Reply Last reply Reply Quote 0
                          • 3ddevilundefined
                            3ddevil
                            last edited by

                            Would love to have Z backlash compensation. Our beds ride on belts, so wear isn't as much of a concern.
                            Getting a flat ~20" bed is impossible. So the mesh is a requirement.
                            Where to upvote the request?

                            1 Reply Last reply Reply Quote 0
                            • timcurtis67undefined
                              timcurtis67
                              last edited by

                              I would like to see some form of a backlash compensation as well. Not for axis issues but for a different project I am working on. I'm looking to adjust my steps on a "loosely" connected stepper motor. Where I know the degrees of non-movement when my stepper changes direction.

                              So +1 for backlash compensation...

                              1 Reply Last reply Reply Quote 0
                              • mrehorstdmdundefined
                                mrehorstdmd
                                last edited by mrehorstdmd

                                Belt lifted Z axes might have a chance at becoming popular if they offered high print quality/resolution, prevent bed drop, and do it at low cost. My printer has a belt lifted Z axis, and uses a relatively expensive Rino worm gear drive ($108, used, via ebay). I experimented with some cheap gears from China (total cost for Rino replacement would be about $40) and found pretty severe, but repetitive errors with them.

                                Here's a graph of the errors I measured over two cycles of the worm gear:
                                alt text

                                If there were a way to set up a table of corrections (maybe another config file with a list error values) for one cycle of the worm gear, the repetitive errors could be eliminated by subtracting the error from the end ordinate of each Z axis move. That would allow high quality printing with cheap gears.

                                https://drmrehorst.blogspot.com/

                                dc42undefined zaptaundefined 2 Replies Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators @mrehorstdmd
                                  last edited by dc42

                                  @mrehorstdmd said in Backlash compensation:

                                  Belt lifted Z axes might have a chance at becoming popular if they offered high print quality/resolution, prevent bed drop, and do it at low cost. My printer has a belt lifted Z axis, and uses a relatively expensive Rino worm gear drive ($108, used, via ebay). I experimented with some cheap gears from China (total cost for Rino replacement would be about $40) and found pretty severe, but repetitive errors with them.
                                  ...
                                  If there were a way to set up a table of corrections (maybe another config file with a list error values) for one cycle of the worm gear, the repetitive errors could be eliminated by subtracting the error from the end ordinate of each Z axis move. That would allow high quality printing with cheap gears.

                                  That's certainly possible to do, provided that the compensation only needs to be applied to the start and end points - so the difference in height adjustment between adjacent points on the height map mesh should be no more than about one quarter of a motor revolution. From your graph, it looks like compensation using a sine wave or a triangular wave would be a good approximation, so just two values would need to be configured i.e. amplitude and phase.

                                  A limitation is that in order to use cheap gears, you need a (expensive?) dial gauge to measure the error.

                                  I wonder whether single-start leadscrews show a similar pattern?

                                  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

                                  mrehorstdmdundefined 1 Reply Last reply Reply Quote 0
                                  • mrehorstdmdundefined
                                    mrehorstdmd @dc42
                                    last edited by

                                    @dc42 If a triangle or sine were fit, it might not be necessary to use a dial gauge at all.

                                    This is a print I made with the cheapo gears:
                                    alt text

                                    The error will repeat with a single rev of the worm gear, so a single rev of the Z axis motor. If you had values for amplitude and phase in a config file, and then fit either a triangle or a sine, a few test prints might be sufficient to narrow down the values based on visual print quality.

                                    You'd have to figure out how to lock the phase setting to a specific Z height so that any and all changes to Z are equally affected. You wouldn't necessarily want to base it on Z=0 because if the user changes hot ends and Z=0 changes, the phase will change with it. Or maybe there's no way to deal with that and it will just have to be tweaked for every Z=0 change the user or even autoleveling might make.

                                    https://drmrehorst.blogspot.com/

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

                                      @mrehorstdmd said in Backlash compensation:

                                      You'd have to figure out how to lock the phase setting to a specific Z height so that any and all changes to Z are equally affected. You wouldn't necessarily want to base it on Z=0 because if the user changes hot ends and Z=0 changes, the phase will change with it. Or maybe there's no way to deal with that and it will just have to be tweaked for every Z=0 change the user or even autoleveling might make.

                                      Yes, that would be a potential problem. At power up, the firmware has no idea on the position of the stepper motors, except that they will jump to a multiple of 4 full steps that matches the initial motor currents.

                                      One possible solution might be to perform initial Z homing using a Z max switch, or a Z min switch that triggers well above Z=0, and set the compensation phase from that. Then do final Z homing using a Z probe mounted on the hot end, or a nozzle contact probe.

                                      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
                                      • mrehorstdmdundefined
                                        mrehorstdmd
                                        last edited by mrehorstdmd

                                        You could detect stall (probably not very high precision) at Zmax or bump a switch or opto interruptor somewhere far from z=0, that wouldn't change unless someone were doing major reconstruction of the machine.

                                        The frequency is obvious, so the trick would be to figure out the amplitude and phase settings. A single test print with a bunch of small towers could be made where amplitude varies along one axis and phase along the other. If you used a 10x10 array you might arrive at pretty close values with one print, then do some fine tuning from there. When the print is done, you look for the tower that has the best quality in Z, and use amplitude and phase values from that tower. I'm not sure how to generate such a file- that might be a project in itself.

                                        https://drmrehorst.blogspot.com/

                                        1 Reply Last reply Reply Quote 0
                                        • toysrfunundefined
                                          toysrfun @dc42
                                          last edited by

                                          @dc42 .., I am also interested in backlash compensation. I was unaware, my fault overlooked when our company purchased the boards that it was unavailable or to be honest I would’ve had to go a different route. If any plans, or not yet, please let me know so we can decide how to proceed with these control boards. I believe that the majority of printer consumers probably use their printer more so as a weekend hobby so they haven’t seen the difference in print quality to desire backlash compensation as a priority and are happy with prints just being a usable part or printable idea. I’m sure only a small percentage actually want to use these controls in a commercial assembled platform that prints with precision or may not have equipment that benefits from a more precise control. Perhaps those unknowing would share a different perception if they knew it was available and made BL adjustments to their printers. Please keep us posted and Thank you.

                                          Obsessed with knowledge and growth. Learning never stops and everyday equates to another day learned. Being polite isn’t always easy. The fundamental essentials in learning require patience and kindness towards others. Knowitalls knowitless.

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

                                            It's very hard if not impossible to implement backlash compensation in a way that doesn't have unpleasant side effects. Some people tried to implement it in Marlin but it has never been accepted into the main branch. See https://github.com/MarlinFirmware/Marlin/issues/3664#issuecomment-344638870 for an example of the problems. Amongst the issues are:

                                            • When reversing direction in a print, if you don't take up the backlash very quickly enough then the head will be stationary for a short while, leading to over-extrusion at that point. But if you take it up too quickly then the motors will be noisy and you risk skipped steps.

                                            • Backlash compensation ruins the acceleration profile, making it more likely to excite resonances.

                                            In some simple cases such as printing a square parallel to the X and Y axes on a Cartesian machine, backlash compensation could be done in a way that doesn't cause problems, because the slack in the X axis could be taken up gradually while printing parallel to the Y axis, and vice versa. But if you rotate the square by 45 degrees, the slack needs to be taken up instantly.

                                            What steps/mm does your machine have, and how much backlash is there? Where the compensation required is no more than about 1 full step, it may be more practical to do because the risk of skipped steps should be small.

                                            MoonshineSG created this issue in MarlinFirmware/Marlin

                                            closed Hysteresis #3664

                                            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 tenajaundefined 2 Replies Last reply Reply Quote 2
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA