CNC Servo Kit [HomeshopCNC Servos]

4 months by cncdivi

CNC Servo Kit [HomeshopCNC Servos]

This page describes what I had to do to adapt a set of HomeshopCNC servos to my IH Mill CNC Kit. I bought a “mechanicals only” kit that did not include servos. I’m not sure Gene and Tommy are even offering that option any more, but I got mine on sale when Aaron Moss owned the business.

I’ve written this in reverse chronological order (most recent is at the top) because its been unfolding for a while and I didn’t start out with a dedicated page for it.  It’s not a hard DIY CNC Project, and maybe you’ll get some value out of reading about it.

Mounting Timing Pulleys on the Servo

I’m going to use 1/8″ roll pins to mount the timing pulleys to the servos. This is the method Gene told me is used by Industrial Hobbies on their turnkey systems, and it will provide a very solid mounting–much more so than a couple of set screws.

First, I did some careful measuring with my surface plate and height gage:

The gage block lets me set the pulley where it needs to be on the shaft easily to take measurements…

Here is where the hole needs to go on the X and Y axes when the timing pulley is oriented properly to mesh up with the pulley on the ballscrew:

I can use the shoulder of the pulley and the end of the motor shaft as my datum reference points. I need an identical offset of 0.220″ from either point to locate the hole in the shaft and the pulley.

The next order of business was workholding. I needed a solution to accurately position and support both the pulley and the motor shaft. I settled on using my Spindexer with 5C collets. First tep was dialing in the spindexer so it was trammed true to the mill. I used a 1/2″ drill blank (accurate and pretty cheap standard to have on hand) and my Indicol on the mill spindle. Just stick the blank into a collet and tram accordingly. Very similar to tramming a vise.

After tramming the Spindexer, I lined up the tip of the 1/8″ drill bit with the tip of my “positioning spud”. It’s not dead accurate, but if you use a magnifier its pretty good and it’s really fast to do. Now I know the center of the bit is on the centerline of the spindexer axis.

I hold the shoulder of the pulley in the collet and touch off the inside of the rim with an electronic edge finder. Then I crank the correct amount on the X-axis to position the bit in the right place along the axis.

Drilling was easy. One thing to note: drill all the way through both sides of the pulley even though your roll pin won’t be that long. It gives you a way to drive the pin back out if you need to later!

Next step was to drill the hole in the motor shaft. The collets work fine here too, although I could only grip about 0.100″ with the hole out near the end of the shaft. In the photo below, I am using the edge finder to reference the plate on the motor flange to find the exact spot along the axis to locate the hole.

BTW, edgefinders like this one make it easy to account for backlash when changing direction. Move one direction until the edge finder lights. Reverse direction and as soon as the edgefinder goes dark you’ve taken up the backlash and you’re at “0” for your next move.

The motor was supported on 1-2-3 blocks. No need to clamp the motor as the shaft is held firmly. Just make sure you have everything lined up properly. That collet won’t “pull” the shaft into alignment because there is too much leverage from the motor.

Having drilled the first hole, I measured the distance from flange to spindexer plate so make it easy to position the second motor exactly where the first one was. I never tear down a setup until I’ve made sure to get everything I can from it!

Y-Axis is all mounted and working good!

X-axis is mounted too!

Aside from machining the pulleys and shafts, I had to do two other things to make this conversion work. First, a little slotting of the mounting plates really helps. I’d say I put on 1/4″ of slotting or less on the holes. Of course that meant I couldn’t use the threaded holes, so I have socket head cap screws with nylocks and washers holding the motors. Second, the spacers between the plates were a tad too long. I shaved 0.200″ of of each one on both X and Y.

Next comes the Z-axis:

. I used my height gage to take some measurements…

Then I whipped up a quick little adapter.coupler on the lathe…

In the interest of expediency (I’m impatient!) I’m using set screws, so I cut a flat on the adapter…

And there is the servo mounted with belt…

It’s not quite running true, and makes a funny noise as the belt teeth engage. It’s close, but I will likely have to machine a new adapter. But I’m going to cut a few chips with it first!

Soldered the Cables on the Servo Motors

The servo motors come from Homeshopcnc with just a short tail on them, so you’ll need to attach a longer cable back to you electronics cabinet. I decided to use IES-style power cords for mine. These are the same power cables a PC uses. I chose them becaues they’re cheap, the servo only has 3 conductors like a power cord, and they’re designed to carry current. My one reservation would be that they’re not shielded, so the noise from the servos will escape. That means I need to take care the rest of the cables, for example the limit switch and encoder cables, are properly shielded for noise and the shields are grounded.

I put 10 foot power cords from CableWholesale on the motors…

Homeshopcnc Servo Encoder Pinout

Got a note back from my query to Homeshopcnc on pinout for the encoders. They say the 5 pins on the encoder correspond to the top 5 pins on the DB connector. According to US Digital, that pinout would be:

Also worth noting is that I have specified 500 CPR encoders on these servos. With quadrature, that means 2000 steps per revolution.

Timing Belts

I discovered some time back that the 72 tooth timing belts I ordered for the X and Y axes were too small. Doh! Turns out I made a minor miscalculation in the geometry involved. I was very concerned I would discover the timing pulleys I had ordered were also not going to work as you can only get belts in certain sizes. Fortunately, luck shined on me and I found that a 75 tooth belt works fine.

Ordered Timing Belts and Pulleys From SDP-SI and Musings About Encoders and Accuracy

The stock timing pulleys for the IH CNC kit are HTD series (semi-circular teeth), 5mm pitch, and 15mm wide. But, the pulleys that came with the kit have a tiny little 8mm bore designed for the servos IH sells. As I am using HomeShopCNC servos that have a 1/2″ bore, they just won’t work. There isn’t enough meat on them to bore out that much. So, I had to figure out a new plan. After some fooling around to measure the shaft center distance on the bracket (it doesn’t adjust, so you had better get it right!), I came up with a distance of 3.769″. I plugged this into a Rhino3D drawing as a sanity check along with pulley diameters and actually drew up the stock arrangement. I came up with the small pulley having 12 teeth and the bigger one having 48 teeth for a 4:1 reduction ratio.

Measuring shaft to shaft with my 850 oz in HomeShopCNC servos. I knew there was a reason I had those big giant calipers!

Okay, so what’s the closest pulley for the motor that will fit my shaft and work with an off-the-shelf timing belt without having to change the shaft to shaft distance or modify the bracket? Turns out SDP-SI has a nifty little calculator for this purpose. It didn’t take too much fooling around before I figured out that a 72 tooth belt (instead of the stock 70 tooth belts) and a 17 tooth motor pulley would do the job. I ordered these from SDP-SI at a total cost of about $40. Not cheap, but the belts were half that and making 2 timing pulleys would consume a lot of time that I could not spend elsewhere.

Note after the fact (10/30/08): The 72 tooth belts don’t fit but a 75 tooth works great with this pulley combination.

My reduction ratio on the X and Y axis will now be 48/17 or about 2.824:1 instead of 4:1. The stock IH kit comes with 410 oz/in servos but I’m running 850 oz/in, so I doubt I’ll run short of torque. I’m running the 500 resolution encoders, but they’re on the motor instead of on the ballscrew like the IH kit. So, IH gears down 4000 cpr encoders (I deduce given their 50 millionths resolution figure, hmmm) by 4:1 getting a resolution of 4000/4 = 1000 counts per motor revolution and 4000 counts per ballscrew resolution. Here is a thing about this 50 millionths figure from IH: none of the likely encoders from US Digital come anywhere near 4000 counts per revolution. 1000 was the highest I could find. How can they get to the 50 millionths figure then? The answer is not so hard, we use quadrature inputs which give us 4x the resolution for the encoder. So, if IH uses an expensive 1000 count per revolution encoder in quadrature mode, they get 4000 counts per revolution.

Let’s assume I run my 500 count encoders in quadrature mode. I’m running the equivalent of 2000 * 2.824 = 2824 counts per ballscrew revolution and 2000 counts per motor revolution. So I appear to have about 70% of the resolution of the IH kit. Instead of 50 millionths, I’ll be at 0.7 of a tenth. That’s still pretty good! And note that this is actual resolution an encoder can see and a servo drive can do something about.

Steppers, by comparison, are commanded to move a step and have to just assume the proper motion occured. For comparison, let’s look at the Tormach, which uses stepper motors instead of servos. I’m not claiming one mill is more accurate than the other, I’m just taking a look at how the numbers work out.

Tormach claims resolution of a tenth. That is defined as, “The minimum discrete position move is 0.0001″, this is the resolution of motion.”

What can this mean if we investigate closely? Given their definition, it means that 0.0001″ corresponds to one step on their stepper motor. A typical stepper has 200 steps in a rotation, so that implies the gear train from step to table motion is 1.000″ / (200 * 0.0001″) = 50:1. That’s a very big reduction, in fact it sounds too big. The IH reduction is 4:1 via pulleys and another 5:1 via the ballscrew, or 20:1

Tormach says their rapids speed is 65 ipm. Let’s plug these numbers backwards and see what we get:

65 inches / 0.0001″ = 650,000 ten thousandths = 650,000 steps per minute

650,000 steps per minute / 200 steps per revolution = 3250 rpm

Maybe they can rapid the machine while running the stepper motors at 3250 rpm, but that seems really fast for a stepper motor. Most of them in this kind of size range have a torque peak much lower than that. Tormach’s Design Analysis talks about torque falling off rapidly in just a few hundred rpm. My assumption would be that the 0.0001″ resolution is not realizable in practice and is based on something such as microstepping (the Tordrive has 10x microstepping, for example which would mean divide everything by 10 if we’re talking microsteps). If I am right about the microstepping, the real resolution is more like 0.001″, which is fine, and completely in keeping with the mill’s stated performance.

Why doesn’t microstepping count? Because you can’t maintain full torque on a microstep unless it corresponds to a full step. They’re largely about smoother acceleration and motion more than they are about accuracy.

I like the Tormach mill, BTW, I was just curious to work through the figures and see what I could learn.

Update on Tormach

I confirmed a few things from some Tormach owners on CNCZone. The Tormach direct drives the ballscrews with no reduction, and the lead on the ballscrews is the same as IH: 5 turns to the inch. So, at full rapids, the Tormach is doing 325 rpm as suspected. And also as suspected, you have to assume 10x microstepping to get to the 50 millionths resolution. My understanding was that you shouldn’t count on microsteps for increased resolution because the torque was very low. That turns out to have been wrong. There is a great series of posts by Mariss F. on CNCZone that lay it all out. The long and the short of it is that you can take advantage of up to 10x microstepping and still have about 70% of the torque and full positional accuracy. Therefore Tormachs 50 millionths resolution claim is quite defensible.

Now of course there are other issues that prevent the machine from being that accurate in general, but Tormach only claims about 0.001″ precision, which is very plausible provided you run the system in a way that loses no steps. A servo system still have the potential to be more accurate because it can get back on track after the fact. Whether that’s acceptible or not to your application is a whole other question I won’t delve into here.

It was gratifying to see that my math all worked out properly with the real data on the Tormach that I didn’t have access to!

Bought a Set of Servos and Gecko Drives from HomeShopCNC

After reading a note sent to me by Peter Tsukamoto, I got inspired to take a step of some kind on the mill to move this conversion forward. Peter started with a Unimat lathe 30 years ago and today he owns a full machine shop in Hawaii. Guys like that are always an inspiration to me, so I try to listen carefully when they have some advice for me. In Peter’s words:

See if you can get your CNC mill going as a priority. It will open up new vistas in a way you cannot believe. It will accelerate any project you work on. Make them way more enjoyable too.


He makes a lot of sense there. Every time I perform a manual machining operation on my lathe or mill I think about what the CNC equivalent would be. In almost every case I could do the job much faster, more easily, and often better with CNC. There’s a reason it took the industry by storm years ago!

A couple things have been holding up my progress. First, I’ve been spending a ton of time lately on a Steam Engine Team Build that has involved creating some tooling and a number of other things. The other problem that was distressing me was that I had misplaced the Industrial Hobbies CNC conversion kit somewhere in my house. I’d been looking for it off and on for days, and the number of places it could be was dwindling. After spending 45 minutes in the garage shifting things around and checking every last possible hiding place underneath all the junk, real panic set in. Paraphrasing Conan Doyle’s Sherlock Holmes, when you’ve eliminated all the possibles, you have to start considering the impossibles. Eventually I discovered that my kids had pressed the two boxes into service to create a stand for their Karaoke machine. They were hidden underneath a black table cloth to make it even harder. I heaved a mighty sigh of relief after making that discovery!

So, having located the components, I decided to take another step and ordered up a set of servos and drives from HomeShopCNC. I also looked at Keling as another source. HomeShopCNC was just slightly cheaper on Gecko drives, and I liked the nifty anodized housings for the encoders:

I like the nifty anodized housing for the encoder…

These are 850 oz in servos, and Keling had a bigger model at a whopping 1125 oz in. Why not just buy the bigger-is-better plan? Well, because there are trade offs. It’s worth noting that the standard IH CNC kit comes with 410 oz in on the X/Y axes and 648 on the Z–that mill head is heavy! Their heavy duty kit looks to me like is substitutes the bigger Z servo on the X/Y axes. Either way, I should be fine with 850 oz in. Now here is the rub. The big Kelling 1125 oz in servo peaks out at 3200 rpm whereas the 850’s I got are spec’d for 4200 rpm. I don’t know if I’ll ever get to use the extra rpm to increase my rapids or not, but bigger servos are often slower and the same is true of stepper motors. I think these 850’s will be a decent compromise and they’ll give me some room to experiment on my feeds and speeds. If the Z gives me any trouble I figure I can build a counterweighting system with some gas springs and radically reduce the force needed there too.

While I’m talking about alternatives, I should mention that I did some serious looking around for an alternative to the Gecko drives. Why? Customer Service. That’s got to come as a surprise because Gecko has some of the best customer service reputation in the industry. The trouble is, I ran afoul of one of the counter examples of that. My GRex for my CNC lathe project has been a disaster. The good news: it was very easy to get it working, and I like the idea of not relying on the parallel port. In theory, it could save me a lot of trouble, especially since I had envisioned a fancy control panel for it. The reality? The device has never lived up to its original promises. It has had teething troubles since the beginning, and most of it has never gotten fixed. There are problems with 3D profiling on the mill that make it a questionable solution there, and the device doesn’t support spindle indexing on the lathe, which is a requirement for threading. What good is a lathe that can’t thread? Many promises were made over time about this being fixed, and we’re talking a span of years. Unfortunately, it has never panned out. Gecko blames it on the firmware and says it isn’t their fault. I think that’s silly, and it certainly was not the story at the outset. I sent Mariss a note offering to trade my perfectly good GRex for a set of 3 of his cheapest servo drives (which combined were less than the GRex cost), and explained my problem with the GRex. I never even got a response back from Gecko. That’s just not good customer service in my book, despite their stellar reputation.

So how did I wind up buying another set of Gecko drives anyway? Here’s the rub–who else is there? Rutex is in an odd state. The parent is Australian, and the designer has gone missing there last I heard. Reports vary on whether the boards can be gotten here though the US distributor says yes. Last thing I want to deal with is another strange situation with one of these boards though the Rutex has a lot of advantages over the Geckos on paper, and there are certainly those who swear by them. I also looked at the UHU family of servo drives. These look to be excellent, but so far they are either awfully expensive if you buy one already built, or you deal with cobbling together a kit. Frankly, I was tempted to go the kit route anyway, just to avoid Gecko. I enjoy building electronics and I’m pretty good at it. The trouble is, Peter’s words kept nagging at me. How much would it set back my conversion to have to build and debug 3 servo controller boards? So I got the Geckos. They were cheap when bought with the servos anyway.

Still, it wouldn’t have taken much to get me to buy something from someone else. I guess that’s the power of customer service. Given his reputation, I can’t understand why Mariss wouldn’t do something for me. Oh well, I sure hope these new drivers are flawless or I will build the UHU boards.

I’m going to update my To Do list for the mill to a finer level of detail, finish that Team Build, and then try to see how much progress I can make on the mill conversion.


Be sure to check out G-Wizard, our Machinist’s Software!


Like what you read on CNCCookbook?

Join 100,000+ CNC'ers!  Get our latest blog posts delivered straight to your email inbox once a week for free. Plus, we’ll give you access to some great CNC reference materials including:

  • Our Big List of over 200 CNC Tips and Techniques
  • Our Free GCode Programming Basics Course
  • And more!

Just enter your name and email address below:

Full Name
Email *
100% Privacy: We will never Spam you!

Rate this post

Recently updated on February 20th, 2024 at 12:01 pm