This blog is for entertainment purposes only, and is not meant to teach you how to build anything. The author is not responsible for any accident, injury, or loss that occurs as a result of reading this blog. Read this blog at your own risk.

Monday, December 30, 2013

CNC mill conversion - part 10

Solving more mechanical issues
I’ve been meaning to do a lot more work on the landing gear this week, but I’ve been running in “crisis mode” with the mill for the past 5 days. Here’s what happened…

Y motor stalling while "cutting" a circular pocket

Now, what you are seeing is the Y motor stalling and loosing steps. Not good!!! This was with the mill running at the full speed of 120 in/min (5 cm/sec). The normal cutting speed would be more around 20 in/min (1 cm/sec) depending on depth of cut, material, coolant, etc.

So, I spent a lot of time on the Mach3 forums (mill controller software), only to find out that while the backlash compensation (software feature) I was using actually does a few good things, it also sometimes creates new problems. In other words, they discourage you from using it, and mostly suggest that you to spend more money eliminating backlash by using expensive ballscrews, ballnuts, etc. 

Of course!

Slowing down the feed, I was able to run the mill just fine at 50 in/min (2.5 cm/sec), but there was one other thing that bugged the hell out of me… while the X axis was smooth as butter, the Y axis squealed like a pig going to the slaughter house! 

I adjusted the gibs, the ballscrew attachment to the table, the attachment to the motor, and to the base at least 50 times, with little success, since the squeal never really went away, it just migrated to different sections of the travel. 

An example of gibs

It seemed like the table was being dragged a little crooked by the ballscrew, generating a lot of friction and noise against the sides of the slot that contained it. To make a very long story short, I eventually noticed that the unrestrained ballscrew whipped about a lot when the motor turned it, which meant that either the screw was bent, my machining of it was off, or there was too much offset between the motor’s shaft and the ballscrew.

I decided that my couplings were probably too rigid, so I ordered some flexible ones. 

The Chinese Quality Control crew must have been asleep that day, since the motor’s shafts turned out to be 0.002” oversize, and the coupling would not fit, so I had to turn the motor’s shafts down in the lathe. Luckily I had purchased motors with a through shaft, and I was able to accomplish the task, albeit having to resort to some pretty creative machining.

Try figuring this out!

After putting everything back in its place, I gave it another shot.

Flexible coupling

Unfortunately, all of that work did not solve the issue! Obviously this was not the cause of my problem, and it “only" cost me $80 in parts to find out. 

Looking at the Y ballscrew, it seemed pretty straight, but when I tested it it was way off. I’m not really sure what happened there, but I must have botched it, since it ended up not being concentric.

Ballscrew 0.009" out of round 

Trying to save the ballscrew, I decided to touch up the machined part slightly on the lathe. Needless to say, that part of the screw needs to be very precise, as it is held in a spacer block with 4 bushings and 2 ball bearing races.

Ballscrew captured in the spacer block

Although I was very careful, the tolerances were just too tight, and I ended up turning it down a bit too much. 

The ballscrew was now wobbling within the spacer block as well, in addition to the squealing, and a huge 0.020” backlash. By this time I was pretty dejected with the whole CNC idea, and felt I had bitten a lot more than I could chew, swallow, or digest.

I decided to go for broke, sacrifice the Z axis ballscrew to make a new Y axis one. This would mean grinding all over again, which I never wanted to do again due to the abrasive dust going everywhere, causing visible wear, and necessitating a complete lathe teardown and clean up in the past.

This time though, I took a lot more precautions against the dust, covering everything I could with adhesive tape, cloth, and aluminum foil, and then started grinding.

Grinding wheel and ballscrew particles combining to form a hard mound

The next day, I threaded the ballscrew, and pushed it into service… Oh, the sweet sound of silence! 

Success at last! The pig had been finally killed, and all squealing stopped.

Happy as I was about the sound NOT coming from the table moving up and down the Y axis, I still had the awful backlash to deal with, at least 3 to 4 times the amount present in the X axis, which made any precision work impossible.

After testing, adjusting, taking apart, lubing, and putting together the Y axis components for the next 2 days, I was still no closer to a fix than I had been all along, when finally a lightbulb went off inside my head, and a new theory emerged.

What if the theoretical 10’000 micro-steps the motor had to make for the ballnut to travel 1 inch (and that I had programmed into Mach3), were not as accurate as the motor specifications suggested? So, I placed Mach3 in “learning mode”, commanded a 3’ travel, and got the usual 2.980”. I entered this value into Mach3 which replied that the new steps for 1’ would be set to 10’045.24826. I just accepted that.

The next time, I asked for a 3 inch travel, and I got 2.9995". Much better now, and... it was repeatable :-)

So I did the same thing for the X axis. The steps got set to 10’009.69097, and I got 8.999” for a 9” travel command :-)

Now, looking at the specifications of my DROs (digital read outs) they are only within ±0.0015” accuracy over 12” of travel, so I just cannot measure that level of precision with what I’ve got. For that I would need glass-scale DROs whose cost would be much greater than that of my mill.

Very happy with my new measurements, I ran the 2” circular pocket test again last night at full speed (120 in/min) without backlash compensation, and here’s what I got...

Not perfect yet, but nearly there.

I am very happy with these results for now, but it should get even better ones as I reduce the backlash even more.

My backlash turned out to be 0.004” in X, and 0.005” in Y, which is not bad for cheap $30 Roton ballscrews, and in line with their online claim. I will order some oversize ball bearings this week, in an attempt to try driving those values down even further. This means that I will forego the Mach3 backlash compensation with all its drawbacks, and just mill away happily ever after as soon as I replace the ballnut bearings. 

Backlash measurements


  1. Packing ballnuts is not a lot of fun, do you have an idea of how you will approach that challenge?

  2. You are right when you say they are no fun to repack. I've actually had to repack them a few times, since I dropped some bearings while installing or removing the ballnuts in the past. The procedure I used can be seen here http://www.youtube.com/watch?v=8plIXSR5Nh8