Dealing with Asymmetric Backlash in CNC and my OCD Brain

IHateMayonnaise

Registered
Registered
Joined
Jul 3, 2016
Messages
21
Hey guys and gals,

I am new to machining and in particular CNC -- you've been warned! Anywho, I have an Rong-Fu RF-25 that I've been piddling around with for several years as a manual machine, and recently took the leap into the world of CNC by attaching steppers to my three axes. In preparing for this, I replaced all the bearings in the system, repacked the spindle, poured the base/column with epoxy-granite, and added some magnetic scale-type DROs to all three axes. For home switches I have some of those dandy magnetic-induction sensors. In rebuilding the machine, I took great care to minimize sources of error (in particular backlash) as much as possible, however keep in mind that I still have the original ACME leadscrews -- ballscrews will happen eventually, however I need a CNC in order to finish making my CNC, and so here I am. For motion control, I have Mach3.

The point of discussion that I bring to you has to do with asymmetric/non-reproducable backlash, in particular with my X/Y axes. Obviously, as I'm using lead screws, a certain degree of this is unavoidable, and while I understand this completely, I would like feedback on mitigation strategies, and in particular, when good enough is, in fact, good enough. Like I said, I'm new to machining/CNC and so I need help setting the guideposts for my brain, and where to draw the line between being overly meticulous, and moving forwards and making progress.

Having said this, let me explain what I'm trying to do and what I've done thus far to accomplish my goal. My main goal is to be able to create circular pockets for press-fitting bearing assemblies. I've chosen this as a way to benchmark/optimize my new system, as it incorporates several items which need to be addressed/mastered: backlash, steps/unit, and feeds/speeds. Additionally, there are several parts that I'm interested in making which will have press-fit components, and I'm eager to optimize my machine for this purpose. I only work with Aluminum on this machine, and I am sticking to 2-flute endmills (HSS/Carbide). The holes I'm trying to pocket for these tests are nominally 1" in diameter, and I am using a 1/2" endmill. I am not using coolant, not taking heavy cuts (in my mind, please correct me if I'm wrong). I'm measuring the holes with a set of Tesa Intrimik bore gages (awesome CL find!), which take direct measurements down to two tenths using three measurement points 120 degrees apart. I also have a set of carbide grade 0 gage blocks which I use to calibrate my steps/unit. My dial indicator is a brand new Compac 0.0005.

The way that I calculate steps per unit is straightforward -- I set up a hefty (~20lb) angle plate, and in front of it I place gage blocks wrung together to set my desired length (10" for the x-axis and 5" for the y-axis). I approach the end of the last gage block until my indicator reads zero, I pull the z-axis up, and use the built-in optimization wizard to move the stage to the desired distance, and based on the difference that the indicator indicates upon reaching the angle plate, it calculates the new steps/unit. I test it several times in different ways to make sure my new values are consistent, and they appear to be in the x/y axes down to less than a thou over the entire range.

Backlash is a bit more involved to quantify I've learned, and so I approached this in a couple different ways. First, I simply indicated off my hefty angle plate (which is aligned to be orthogonal to the axis being measured). I approached the plate from one direction until my indicator hits zero which is aligned to be in the middle of its range. With backlash compensation turned off, I set my axis to single-step jog mode with steps of 0.001", and I reversed the axis and counted the number of steps until I reached -0.001". This was my initial backlash value. I then refined the value using the same methodology, at different points along the indicators range and contact point angle to ensure it was correct. I found that this got me pretty close, within a thou. I wasn't satisfied with this approach, because I found that my backlash was different when I did this approaching from the + side and the - side. Because Mach3 doesn't allow me to enter two values for the backlash, I decided to try another way to measure it without taking a simple average.

The other way that I tried was to turn the backlash compensation off, and then mill a square 1" pocket. I measured the pocket in two ways: using a telescoping gage and measuring the length using my bench micrometer (takes direct measurements down to 0.0001"), and then using gage blocks. Both yielded similar results, however I ended up going with the latter out of convenience. I did this test several times in order to hone-in the value. Once I determined the precise length of the pocket in one direction, I subtracted the length from 1" and then used that for my backlash. In order for this to work, I needed to carefully measure the actual cutter diameter, otherwise it would introduce error. I thought that this would be an interesting method because it incorporates a load to the measurement of the backlash due to the table slop, which isnt accounted for by using a DTI. It also has the benefit of effectively averaging the measurement, since each axis has to change direction twice. It turns out that this method was a slight improvement over the other method. My primary metric for this is by seeing the flat spots in a circular pocket at 0, 90, 180, and 270 degrees. These flat spots were "much" smaller with the new method (much meaning something like ~10-20% the length. Couldn't find a way to measure this effectively). As a side note, in using this method I discovered that I got slightly different results when I did this test via conventional milling vs climb milling, which surprised me a bit. My feed rate was excruciatingly slow (~3 IPM) for each, and the workpiece was very secure, so I can't exactly account for this. In any case, I figure that my finishing pass will always be climb milling for critical surfaces, and so I just used that value.

This is all well and good, however this only works if I do my work in the immediate vicinity of where I calibrated the backlash. Unfortunately, my backlash varies along the lead screw, and in the case of my y-axis, can be off by as much as 2.5 thou when measured 5" apart. My total backlash for the y-axis is about approximately ~20 thou (x-axis is about 5 thou). I of course tried tightening the lead screw nut, however at a certain point it starts to limit movement and causes a lot of wear in the nut, which I'm not-so-sure I can find a replacement for. My maximum operational speed of both my x and y axes is about 8 in/min, so I don't have much room to spare on the lower end, anyway.

So what happens when I use my newly-calibrated axes to mill a circular pocket? I'm still getting ovals, but much less so than before. Because I don't have a pin-gage set, I have to use my Intramiks, which are not ideal for measuring ovals (although I suppose pin gages wouldn't fare any better). Nonetheless, with these I can measure my major/minor dimensions (NOT the x/y-components individually), and the difference between the two that I'm currently measuring is ~0.0055, which to me seems like a lot. I'm currently as-we-speak running through a number of different setting configurations in Mach3 in order to determine what yields the best results (without touching the backlash settings). The two data sets which I am investigating the how acceleration and velocities effect things (increasing acceleration with decreasing feed rate should make things better, but how much better etc), in addition to how the constant-velocity settings in Mach3 effect things.

Like I said, I'm not a machinist. Perhaps the question I should be asking is: how would I create a "perfect" circle with my setup, which is suitable for creating holes which bearings may be pushed into? I have a set of standard reamers as well as expansion reamers, however they are all 6" and I fear that the run-out and general lack of rigidity in my machine would not lend itself towards this moving in the righteous direction. I also don't currently own a boring head, but perhaps now is the time to invest in one, however I'm not even sure this is the right solution, because of run-out etc.

Overall, I guess the my biggest questions are 1)Generally, is my methodology sound/is there something I'm missing? and 2) that I need answered is, what is "good enough?" This is a small machine, and while I've made significant improvements, it is what it is. Most of these problems will be mitigated once I get a double-nut ballscrew, but I'm not sure where to draw the line in order to get there.

Cheers,
IHateMayonnaise
 

Attachments

  • IMG_20200510_140718.jpg
    IMG_20200510_140718.jpg
    3 MB · Views: 12
Man have you ever opened a can of worms. :grin:

First you are not going to be able to profile a bearing pocket and have it come out right. Period! Especially with a loose machine. I can't do it on my 3500 lb machine with ball screws and magnetic scales, the best I can do is 0.001 out of round. Nor will our Haas pocket a true bearing bore. It's just the nature of the beast.
Mach3 backlash comp does not work on arcs.
The only way to get a true bearing bore is to ream or bore with a boring head.

Having said the above, I think your methodology for measuring backlash is fine. But almost useless with Acme screws. A slight difference in pressure will result in different backlash readings.

Also concider that the axis thrust bearings also contribute to backlash. Backlash can come from a lot of places, not just the nuts.

Preloaded double nuts should prevent any backlash at the ball screw/nut interface.

It sounds like you have a great start on a CNC and you'll love it when it's done.
 
I'll agree with Jim Dawson that you've opened a can of worms.

That said, a friend of mine (and forum member), Rick Sparber, has converted his Enco RF-30 clone to CNC. His website, rick.sparber.org has lots of good articles having to do with machining. And the CNC section, https://rick.sparber.org/ma.html#CNC has a bunch of articles you might find helpful.
 
The level of accuracy (amount of backlash) with stock screws really can be a wide variation. Even from the same machines. I've seen some folks get fairly tight tolerances with stock screws but never great. And like others have already stated, backlash compensation is only going to help so much and not with arcs. You can spend a heap of time and effort and the end result will just be that you spent a lot of time and effort. The import ball/double ball screws are pretty reasonable as far as cost and some of the Chinese sellers will do any screw machining you need prior to shipping at a fraction of what machining cost here in the states. Or, if you have a lathe or know someone who does, machine them your self. Then, you can source your own bearings etc, or have them Machined to fit your existing bearings/mounts.
 
First you are not going to be able to profile a bearing pocket and have it come out right. Period! Especially with a loose machine. I can't do it on my 3500 lb machine with ball screws and magnetic scales, the best I can do is 0.001 out of round. Nor will our Haas pocket a true bearing bore. It's just the nature of the beast.
The only way to get a true bearing bore is to ream or bore with a boring head.

This is good to know -- a machinist at work said once that on a well-tuned machine (huge Haas mill), milling out a circular pocket for press-fit assemblies is more accurate than using a reamer/boring head. To be fair, all of his press-fit assemblies have worked well for me, so I took him at his word. Obviously, my dinky machine with lead screws is no match, my goal is to get within 90% of what my machine is capable of and then stop there. I'm just too inexperienced to judge when I'm at 90% and not 50% or 99%.

Mach3 backlash comp does not work on arcs.

...Really? Could you elaborate on this a bit more? Backlash comp does seem to do "something," in that I can see the motors apply some compensation movement when switching directions while pocketing a circle. I'm using the "circular pocket" wizard built-in to Mach3 (the free one), and it appears to use the G3 command for arc generation (see G-Code for a pocket below for example). Do you mean that it doesn't work well? I read various threads regarding the CV settings (and even this article from Art) describing how settings like the CV distance, angle tolerence, and "lines to look ahead" affects the performance of the program to perform arcs. Maybe I'm missing something?

G0 G49 G40 G17 G80 G50 G90
M6 T1(TOOL DIA.0.5)
G64
G20 (Inch)
M03 S1680
G00 G43 H1 Z0
X0 Y0
G01 Z-1 F0.5
G3 Y0 X0.25 R0.125 F4
Y0 X-0.25 R0.25
Y0 X0.25 R0.25
Y0 X-0.25 R0.25
X0.25 Y0 R0.25
G00 Z0
M5 M9
M30

That said, a friend of mine (and forum member), Rick Sparber, has converted his Enco RF-30 clone to CNC. His website, rick.sparber.org has lots of good articles having to do with machining. And the CNC section, https://rick.sparber.org/ma.html#CNC has a bunch of articles you might find helpful.

Oooh I'm quite familiar with Rick's webpage ;) his meticulously documented endeavors have been instrumental in my journey. Of his articles, I implimented "Improved RF-30 Gib Retainer" as well as a simpler version of "A Variable Thickness Washer for Preloading a RF-30 Mill/Drill Leadscrew Bearings" by simply stacking shims. Yesterday I drilled a hole in my table (gasp!), as suggested in "Improved Access to the Y Take Up Nut on a RF-30 Mill/Drill" because my Y-axis is being very problematic and I'm keen to remove as much backlash as possible because it's about 4 times as bad as the x-axis. Because I had to disassemble the saddle/table linkages and removed the lead screws, I am going to take a crack at aligning the x/y stages according to the procedures outlined in "Reducing X Axis Backlash on a RF-30 Mill/Drill" and "Reducing Y Axis Backlash on a RF-30 Mill/Drill," respectively.

The level of accuracy (amount of backlash) with stock screws really can be a wide variation.

Yep I've gathered this. I'm in a "making lemonaid" sort of situation here and I recognize this. You bring up an interesting point, though: Mach3 has a screw mapping function, which I have not yet tried out, mainly because I'm still fiddling with machine settings (e.g. lead screw nut torque, gib insertion, motor mounting etc). While I am well positioned to do this because I have sturdy repeatable home sensors, I'm not sure its worth the effort because, and please correct me if I'm wrong, but this function only offers descrete compensation without interpolating between the data points. For example, if I take two data points with the screw mapping and the first position is 0 with a deviation of +0.005, and then the second position is at 1" with a deviation of -0.005, then will the position be at 0.5" (nominal)? If I approach from 0 to 0.5", is the value 0.500", or will it be 0.505"? And similarly, if I approach from the 1" to 0.5", is the compensated value 0.500", or 0.495"? Furthermore, even if the program is smart enough to interpolate between datum, does it perform a simple average of the two outer points, or does it fit a function (for instance, a nth-order polynomial)? All this is to say that if I go through the trouble of mapping the screws, will I have discrete jumps where the program applies the compensation (which coincide with an actual data point which I entered) or will it "smooth out" the transition between measurements? I haven't done a tremendous amount of research on this feature, because honestly I'm not there yet, but before I try it out I will need to get these questions answered.
 
This is good to know -- a machinist at work said once that on a well-tuned machine (huge Haas mill), milling out a circular pocket for press-fit assemblies is more accurate than using a reamer/boring head. To be fair, all of his press-fit assemblies have worked well for me, so I took him at his word. Obviously, my dinky machine with lead screws is no match, my goal is to get within 90% of what my machine is capable of and then stop there. I'm just too inexperienced to judge when I'm at 90% and not 50% or 99%.

I'm certainly not going to argue with the success that you have had at work, it just has not been my experience. With a tight and well tuned machine I guess it is possible.

...Really? Could you elaborate on this a bit more? Backlash comp does seem to do "something," in that I can see the motors apply some compensation movement when switching directions while pocketing a circle. I'm using the "circular pocket" wizard built-in to Mach3 (the free one), and it appears to use the G3 command for arc generation (see G-Code for a pocket below for example). Do you mean that it doesn't work well? I read various threads regarding the CV settings (and even this article from Art) describing how settings like the CV distance, angle tolerence, and "lines to look ahead" affects the performance of the program to perform arcs. Maybe I'm missing something?

G0 G49 G40 G17 G80 G50 G90
M6 T1(TOOL DIA.0.5)
G64
G20 (Inch)
M03 S1680
G00 G43 H1 Z0
X0 Y0
G01 Z-1 F0.5
G3 Y0 X0.25 R0.125 F4
Y0 X-0.25 R0.25
Y0 X0.25 R0.25
Y0 X-0.25 R0.25
X0.25 Y0 R0.25
G00 Z0
M5 M9
M30

Even the on-line manual for mach3 states that backlash comp does not work on arcs. But I have to admit that I have no first hand experience with it. The fact that you have seen it try to compensate when cutting an arc is more experience than I have had. It may be that using the R word in the G3 command line is handled differently than the I,J,K method. The real problem is that the system just can't react fast enough to properly compensate.

I have that problem with my mill, I have 1 micron scales and the loop closed in the controller. With 0.004'' backlash in my X axis the system can't compensate fast enough to cut better than 0.001'' out of round on a circular pocket of any size.
 
Back
Top