1 (edited by adrian 2013-05-10 14:20:25)

Topic: Backlash, Hysterisis and Wobble; an exploration of the topic

With all the 'hacks' and quick fixes going around, I think people including myself are starting to get confused of what causes what and why certain things are done or work. Consider this me thinking aloud. smile

Firstly, it needs to be said that Backlash and Hysteresis are inter-related. If we venn diagrammed them, we could put backlash wholly inside the hysteresis circle.

Backlash is the specific term used within mechanical engineering of gears and drive trains to relate to the clearance between *mating interfaces*. In the context of the Z axis on a Solidoodle, this is referring to the clearance/tolerance between the threads in the nut and the threads on the screw. There is 'play', which in something with large tolerances, could allow you to wiggle and wobble the nut on a thread as the interface is so sloppy. This slop, in a precision environment, would be measured in 1000th's of an inch, if not 10,000 of an inch. In an off-the-shelf-parts printer, we can measure these tolerances in 100's and sometimes 10's of an inch. Backlash also exists in the X and Y axis, as the standard belts dont fit *precisely* into the groves on the pulleys - there is wiggle room present which is also decidedly non-linear.

Heres a diagram; http://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Backlash.svg/348px-Backlash.svg.png

That gap between the faces of the teeth ("backlash" as labelled in the diagram) has to get 'soaked up' when you change directions. If you kept rotating that top gear anti-clockwise, it would remain pressed against the face of the lower cogs and you'd get precise movements in that direction. However, when you *change direction*, the initial bit of moving the top cog is going to be wasted 'catching up' to the other cogs face.. during that time, the motor driving the top cog might think its moved 1mm, but the lower cog its 'driving' might only move .9mm's...

The concept of an anti-backlash system is to essentially preload the faces of the nut to the faces of the thread in one constant direction - hence the common use of a spring trapped between two nuts to force both nuts to mate opposite faces to the thread (the lower nut has its bottom faces forced agains the thread, the upper nut will have its top faces forced against the thread). The way threads are cut into nuts also means wedging two of them together (but not locking them against each other) can 'soak up' the clearance issues, as the start of threads on one nut wont align with the start of the threads on another. This is why wedging two nuts together on a bolt can stop either of them from turning on the bolt.

Hysteresis in the case of the Solidoodle is another term thats used to refer to the 'lag behind of a system to its input'. The context here is "Move Z+ 10mm then Move Z- 10mm" *should* result an object moving clearly up 10mm, then down 10mm to *exactly the same point*.  As a result of backlash described above, what you see actually happen is the table move up 10mm's, then perhaps down only 9.8mm's. This could be referred to as ".2mm's hysteresis" is its the 'lag' between what was input, and what happened.  However, as its a mechanical interface, it is much more common to have this referred to as 'backlash of .2mm's'. The more you change direction on the axis concerned, the more 'out of position' it will get. Whilst backlash is loosely a constant, it isn't necessarily, as different weights, velocities, etc can all influence if it remains a constant backlash or instead perhaps varies between .1mm or .2mm etc. This means that doing 4 moves for example (up/down/up/down) isn't going to necessarily get you back to your starting point exactly. This is also because obviously the distance between each thread face isn't perfectly the same.. given we are talking already in 10's and 100's of an inch, it should be obvious that a 'small' tolerance change on a thread of only 0.01mm can start having different effects.  This is also impacted by Wobble, described below, as the elliptical movement causes the clearance distances within the nut to change.

Backlash therefore comes into play primarily as a result of when you start a print (as the table moves up to home, then starts moving down during the print. This initial change from up to down can result in the system believing its moved down .3mm's but in reality its only moved .2mm's). It also has a huge effect if you use 'Z-Lift', as the system is going through an Up/Down cycle, and thus trying to soak up clearances, on every layer.  As noted earlier, this effect is also present in the belts + pulleys as the teeth on the belt dont precisely mesh into the teeth on the pulleys. And this is why when your belts are loose the backlash becomes worse, as a movement command can in fact be entirely soaked up slackening or tensioning the belt and not in axis movement.

Wobble is pretty simple. Because the lead screw is mounted rigidly to the motor, it needs to be perfectly straight and square to the axis its trying to move. If its not, as the motor rotates, that offset will be converted into an eliptical motion instead of turning in a perfect circle.  In big CNC world, as the axis is normally bolted to a huge/heavy table which refuses to yield to this movement, it results in breaking your motor or motor coupling (weakest point in the connection). This is what flex couplings are designed to fix - if you can't gurantee a perfectly square mating between motor and axis, you use a coupler with flex so that any movement can be soaked up in flexing the coupler and the lead screw/rod moves in a nice circle without busting your motor or mounts.  This is true when you have a good solid supported connection on the lead screw like you'd see on a 'proper' CNC.  However on the Solidoodle, as the top end of the Z-Axis is 'unsupported' and its only connection to *anything* is to the table via a tiny little nut, its free to 'flop about in the breeze' so to speak. Even a small 0.1mm offset from center can result in a much much greater 'wiggle' at the top of the screw clearly visible to the eye. Throw in even a 0.05mm bend in the rod, and it gets further amplified. 

Adding better support to the axis, through a taller nut, multiple nuts, or supporting the end, would reduce the influence of this wobble. You do however, risk moving it to something else entirely - for example, making the lead screw rigid would mean that the forces would end up moving the motor itself, potentially causing fatigue issues with how its bolted to the sheet metal case (mine already moves a fair bit and its 'stock'.. making the screw rigid would see the motor having to absorb all that movement instead of half of it disappearing in movement of the screw...) . Solving the motor movement by securing it 'better' to the case would mean that the movement now gets soaked up in the motor shaft and bearing, leading to premature stepper motor death.

Wobble will also cause movements to not be linear, as some of the movement is again lost in a sidewards traverse of the lead screw instead of driving the table up or down. Going back to Backlash, Wobble clearly also influences the amount of backlash, and can even sometimes force the thread to move away from the face it was currently mated with inside the nut, meaning the next successive move doesn't actually move as much as it was supposed to. This causes the following layer to potentially be more 'squished' than the previous one and creating that tell-tale 'banding'.

The end result is the 'multiple' ways to 'fix' banding. For some people who have a negligible amount of backlash, reducing the wobble by use of either a flexible coupling, or taller nut making the interface between screw and table stronger, can resolve the issue. For others, the backlash is much greater, meaning that unless you eliminated the wobble all together, you'd never get linear motion anyway. This is where changing the rods out to a finer pitched rod can greatly improve things, not to mention that most people end up resorting to using a flexible coupling which also helps resolve the issue.  Reducing just the backlash by having a proper anti-backlash nut etc, can greatly reduce the banding as it increases the prospect of linear movements of the table, but removing backlash without wobble will still leave you with potentially non-linear travel due to the side loading of the screw as it moves side-to-side instead of moving the table purely up and down.

And thus we have the result that the reason its 'not a simple fix' is because there is actually many inter-related issues going on at once. Fixing the wobble wont remove backlash, and fixing backlash wont remove wobble. And banding seems to be effected by both. How much so depends on the tolerance of your nut to your threads, how well centered your motor is to the table nut, and how well centered the lead screw is to the motor shaft. All of these things come together to determine if you need to 'fix' it with just a flex coupling, a taller table nut, an anti-backlash nut, or a new entire screw.

Simple huh ? wink

Keen for anyone thats still reading for input on what I hypothesized above smile

2

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

cracking read adrian!

3

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Well done!  I'd add that there are potentially software-based approaches to mitigating some of these effects.  The recent addition to lawsy's firmware of the "hysteresis" code seems very promising in my early tests.

Matt

4 (edited by adrian 2013-05-10 12:07:44)

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

saymo606 wrote:

cracking read adrian!

Thanks!

mconsidine wrote:

Well done!  I'd add that there are potentially software-based approaches to mitigating some of these effects.  The recent addition to lawsy's firmware of the "hysteresis" code seems very promising in my early tests.

Matt

Cheers! Indeed there is some good in firmware solutions (used both of them to good effect), however all of them will only deal with backlash effectively if its a constant.  I'm over-simplifying it, but all the solutions basically take this backlash constant and then add or subtract that from an axis's prescribed moves as part of the Motion Planner component of Marlin. In essence, you configure '.1mm' of X/Y/Z/E backlash into the firmware, then every time the firmware detects its changing direction, it will add the additional movement to that axis.  So what that does is if you are moving say 2 down and 2 up on the z-axis from home, it will make the first downward move 1.1mm, then the second 1mm. Then the first up move of 1mm will be actually made as a 1.1mm, then the next one will be just 1mm.  Both the patches result in a single extra line in Planner.cpp (but a whole lot of uber-math in their own files, however the definitive interaction with the main firmware is but a single line in motion planning.... )

So it works really well if your backlash is more or less a constant, as you can effectively compensate for the extra movement needed to cancel it out. If your backlash is non-linear as a result of wobble moving the clearances within the thread/nut interface, then the firmware fixes will 'help' but not 'remove' the issue (unless your wobble is at a perfectly predictable frequency that doesn't vary as the bed moves up and down and thus changes the tension loading on the lead-screw).

If only everything in life could be a constant.... wink I consider the firmware solutions therefore a good place to explore the solution, but believe the only way to effectively eliminate something that is non-constant (as the backlash in the SD can be prone to be) is to minimise the tolerances as much as possible. Firmware will only 'smooth over' the issue, not 'fix it' so to speak.

5

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

@adrian Agreed.  Thanks again for taking the time to explain the different issues.

6

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Wow, thank you for posting that.  I think I got about 90% of it and I'm sure when I come back and read it a few months from now I'll get more.  I dutifully put the extra nut and "nut hugger" onto the top of my Z axis without any idea how it would help or how I'd even know if it did, and at least now I have some idea of both, even if far from perfect.

7

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Hunter Green wrote:

Wow, thank you for posting that.  I think I got about 90% of it and I'm sure when I come back and read it a few months from now I'll get more.  I dutifully put the extra nut and "nut hugger" onto the top of my Z axis without any idea how it would help or how I'd even know if it did, and at least now I have some idea of both, even if far from perfect.

No worries - glad that it at least interested a few people. And my explanations are far from perfect as well, so it kinda evens out smile smile

8 (edited by mconsidine 2013-05-10 15:42:55)

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

An aspect of this that hasn't been covered is the potential for asymmetric backlash, i.e. different values showing up when reversing from one direction versus the other.

Here's data I took for the y-axis, after following the belt-tightening/perfect circle video posted by Solidoodle.

After homing the x- and y-axes I set up a Mitutoyo digital indicator (good to 0.001mm) and moved the extruder head to it, moving in what I'm calling the "neg" y direction.

Then, I zeroed the indicator : initial reading = 0           

I then reversed direction and manually (via R-H) instructed the printhead to move 1mm in the positive "pos" y direction.  Recorded the dial indicator value (-0.954).  Then I issued 4 more 1mm move instructions and reversed direction.  Here is the output :

DIRECTION         DIAL READOUT    DELTA     DELTA_ASSOCIATED_WITH_BACKLASH
pos    reversed        -0.954            0.954
            -1.952        0.998   
            -2.974        1.022   
            -3.966        0.992   
            -4.992        1.026   
neg    reversed        -4.03            0.962
            -3.03        1   
            -2.015        1.015   
            -1.007        1.008   
            0        1.007   
pos    reversed        -0.958            0.958
            -1.958        1   
            -2.98        1.022   
            -3.97        0.99   
            -4.997        1.027   
neg    reversed        -4.032            0.965
            -3.031        1.001   
            -2.015        1.016   
            -1.008        1.007   
            -0.002        1.006   
pos    reversed        -0.958            0.956
            -1.96        1.002   
            -2.982        1.022   
            -3.969        0.987   
            -4.999        1.03   
neg    reversed        -4.032            0.967
            -3.032        1   
            -2.015        1.017   
            -1.01        1.005   
            -0.002        1.008   
pos    reversed        -0.959            0.957

Note the last column.  These are the measurements where backlash would show up.  It's not a statistically significant sample, but the values obtained when moving in the "neg" direction are consistently different than those found in a reversal to the positive.

Another dataset, taken after modifying the y-steps per mm based on the above data shows a similar pattern, albeit with a higher standard deviation.

Food for thought ...

Matt

9

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

interesting data mate, thanks for sharing ! Its indeed interesting how it seems to measure up on your SD.

10 (edited by dteck 2013-05-12 05:05:24)

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

I had a thought about creating a simple support for the top of the z-rod. My idea is to modify lawsys extended filament guide so it can hold a thrust or ball bearing. Then print a piece to couple the rod and the bearing. I'm attaching a picture for a better explanation.

but my question is do you think it would make much difference?

Post's attachments

wobble.png
wobble.png 98.84 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

11

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

It would potentially help if you combined it with a flex coupling, otherwise it will just cause added stress to the stepper motor and its internal bearings. But with a flex couple it would help. Won't solve backlash for you though as you know... For that you need to do stuff on the table side of the connection

12

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Well for my backlash I'm going to try the poor mans well nut fix to see how it does. Since I just got this thing a few weeks ago I've been avoiding doing any real mods to it. I was just curious if adding a support to the top of the z was worthwhile. But like you said since the rod is rigidly attached it probably wouldn't be a great idea. Maybe one day I'll follow Necromant and just do a full z replacement.

13

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Very nice post, it's a great explanation. 

It seems to me that Z-backlash on the Press opens up a whole new can of worms with its "standard issue" non-level bed.  Due to that slope, wouldn't it effectively apply the Z-backlash problem to changes in Y movement as well? 

So anyway, I was wondering, has anyone ever tried to fix backlash by simply shimming the z-nut on one side just enough so that one side is in contact with the upper thread face & the other contacts the lower?  It seems to me that it would accomplish the same thing as an anti-backlash nut (as long as it wasn't shimmed so much it tried to tilt/bend the rod & put it in a bind). 

A side effect would be that it should reduce friction since it wouldn't be contacting the entire thread faces.  The down side to that is that it would also wear those points of contact more quickly.  The question is, how quickly would it wear down to the point it allowed backlash again?

SD Press
Modeling software: 123D Design

14

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Yep it's been covered on a few occasions wink
I put one of these on every SD printer I've ever owned.
http://i.imgur.com/71tbpke.jpg

Printit Industries Model 8.10 fully enclosed CoreXY, Chamber heat
3-SD3's & a Workbench all fully enclosed, RH-Slic3r Win7pro, E3D V6, Volcano & Cyclops Hot End
SSR/500W AC Heated Glass Bed, Linear bearings on SS rods. Direct Drive Y-axis, BulldogXL
Thanks to all for your contributions

15

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

I'm not sure that is doing what I was thinking about.  I thought what you pictured uses compression/pressure to keep the load on a single side of a thread face on 2 different nuts.

Here's a picture of my Press Z screw/nut (grease and all).  I was talking about simply loosening the 4 screws that hold the brass nut and adding a thin washer under one of them so it would tilt it when tightened back down.  This way a single nut would have contact with both an upper & lower thread face like the cross section shown in the 2nd picture below.
http://soliforum.com/i/?HW1yspp.jpg
http://soliforum.com/i/?j2Ww7sd.jpg

SD Press
Modeling software: 123D Design

16

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

I see what your saying and see no reason to not try it.  Short of switching to a precision ballscrew I think any of these fixes will yield fairly ok results.

Printit Industries Model 8.10 fully enclosed CoreXY, Chamber heat
3-SD3's & a Workbench all fully enclosed, RH-Slic3r Win7pro, E3D V6, Volcano & Cyclops Hot End
SSR/500W AC Heated Glass Bed, Linear bearings on SS rods. Direct Drive Y-axis, BulldogXL
Thanks to all for your contributions

17

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

I don't know why the slicing software doesn't automatically take up the Z backlash like you would in a knee mill by dropping the bed past and creeping back up to the target so you are always engaging the same surfaces on the threads.  Won't work for X&Y but seems like an easy, free SW fix for the Z.

18 (edited by adrian 2015-03-31 14:10:35)

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Because the software is generic for all printers and few printers are as bad as the solidoodle is the simple answer....

There's software solutions via firmware available though.. Search the site for some..  But by standard it's a very niche issues specific to the solidoodle and it's mechanical construction

19 (edited by pirvan 2015-03-31 18:44:22)

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

mwille wrote:

I'm not sure that is doing what I was thinking about.  I thought what you pictured uses compression/pressure to keep the load on a single side of a thread face on 2 different nuts.

Actually, in that setup, you have 2 screws, one built into the bed, the other into the well nut.  The compression in the rubber wants to push the 2 nuts in opposite directions, So the bed nut presses downward into the upper surface of rod threads, the well nut, pushes upward into the lower surface of the rod threads. This is how most anti-backlash nuts work, except they use a spring between the 2 nut sections.

The springiness of the rubber (or the spring), prevent undue wear on the parts, yet take up the slop.

Something like what you're suggesting might work for a period of time, but it will eventually wear out ends of the threads on both the nut and the screw to the point of becoming sloppy.

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

20

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

In theory, yes.  In practice, no.
That well nut has thousands of hours on it and I keep it properly lubed.  Since the threads in the well nut are brass (rod and other nut are steel) they will be the first to go.   I just pulled the well nut off and the threads look great.  I would guess the rest of that printer will be in the garbage before I wear out any of the threads.  Even if the threads begin to wear (which is inevitable) simply tightening the well nut will solve the problem.  When the well-nut fails I will have no problem spending another couple bucks to replace it. 
Is this the most precise solution? NO
Is this a simple cost effective solution? YES

Printit Industries Model 8.10 fully enclosed CoreXY, Chamber heat
3-SD3's & a Workbench all fully enclosed, RH-Slic3r Win7pro, E3D V6, Volcano & Cyclops Hot End
SSR/500W AC Heated Glass Bed, Linear bearings on SS rods. Direct Drive Y-axis, BulldogXL
Thanks to all for your contributions

21

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

mwille wrote:

I'm not sure that is doing what I was thinking about.  I thought what you pictured uses compression/pressure to keep the load on a single side of a thread face on 2 different nuts.

Here's a picture of my Press Z screw/nut (grease and all).  I was talking about simply loosening the 4 screws that hold the brass nut and adding a thin washer under one of them so it would tilt it when tightened back down.  This way a single nut would have contact with both an upper & lower thread face like the cross section shown in the 2nd picture below.

Could you clarify whether or not that is a metric rod? Considering it's built in china I see no reason to suspect it is imperial - is that an M5 rod?

22

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

I'm not the best at using calipers yet, so I can't be positive one way or the other.  With that disclaimer out of the way, I do think that it is an M8 instead of 5/16.

SD Press
Modeling software: 123D Design

23 (edited by pirvan 2015-03-31 23:09:23)

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

wardjr wrote:

In theory, yes.  In practice, no.
That well nut has thousands of hours on it and I keep it properly lubed.  Since the threads in the well nut are brass (rod and other nut are steel) they will be the first to go.   I just pulled the well nut off and the threads look great.  I would guess the rest of that printer will be in the garbage before I wear out any of the threads.  Even if the threads begin to wear (which is inevitable) simply tightening the well nut will solve the problem.  When the well-nut fails I will have no problem spending another couple bucks to replace it. 
Is this the most precise solution? NO
Is this a simple cost effective solution? YES

I wasn't referring to the well nut wearing off.  I was referring to the wear he (mwille) would put on the screw & nut, if he were to tilt the nut by shimming it on one side, as he's proposing on post #15 above.

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

24

Re: Backlash, Hysterisis and Wobble; an exploration of the topic

Got it.

Printit Industries Model 8.10 fully enclosed CoreXY, Chamber heat
3-SD3's & a Workbench all fully enclosed, RH-Slic3r Win7pro, E3D V6, Volcano & Cyclops Hot End
SSR/500W AC Heated Glass Bed, Linear bearings on SS rods. Direct Drive Y-axis, BulldogXL
Thanks to all for your contributions