Drac's Zx45 CNC conversion

dracozny

Active User
Registered
Joined
Oct 31, 2014
Messages
168
JimDawson asked me a while ago to post up my CNC conversion. it's still a work in progress fraught with disasters of one thing or another. So I will try to post up what I can, it's also posted up over on the zone so if I miss some info you might find it there.

So lets see where did we start. lets go with the motor:

The Zx45 and I am sure many of the other clones are a bit bastardized in the specifications. I summed it up like this over on the zone: "so you have a D90 series B5 flange with a D80 shaft, and somewhere according to the Chinese 71 framing on the internals.
Now I understand why most seem to abandon it all and just go belt drive."
1500 RPM, sorry I tend to be a bit of a Tim Taylor more power kind of guy so......
I ended up buying this 3 phase Leeson motor which apparently can't be found anymore. I also purchased a Huanyang 2.2Kw VFD on ebay to power it.
a big downside here was I had to turn down the shaft of the motor in order to fit the head of the mill. it was either that or a belt drive and since I don't have a lathe this was even less of an option. I don't have any pics of this operation but it was an ugly hack job to begin with due to my lack of experience. what I did was took advatage of the side mount my motor came with to clamp it to the table like a 4th axis. my choice of turning tools however was complete crap. I wound up using a boring head and boring bar mounted in the spindle to do most of the cutting. this is not ideal FYI, the biggest issue is the boring bar likes to move since it is threaded onto it's arbor. Ideally if I were to do this over again I would come up with some sort of tool post on the side of the head. I may do this in the future anyways since I plan on running a 4th axis later on.

more stuff. well I bought a bunch of servo drives and had no clue what the hell I was doing. this can make things interesting. I made it work but it is a bit of a headache in doing so. I found these AMC Analog servo drives and thought: "Hey those will work and cheap too" well cheap can come at a price. Many analog servo drives you find on Ebay or some of those odd ball sites are Trapezoidal commutation, basically its a square wave of sorts. if you saw it on an oscilloscope you would see the slow rise and sudden fall and think hey a trapezoid. This is actually a very old school method of commutation because it relies on Hall sensors to detect where the motor is. Newer servo systems use a sinusoidal wave form. The motors are even wound slightly different and mixing them will result in a loss off 40% of your power at a minimum. sinusoidal wave forms look like your typical wave form we all have seen on TV and pictures it's that nice sweet curved up and down. Basically the drive uses the powered down lead to detect which coil has just fired off and fires off the next lead. As a result you have less wires but often choose to have encoders mounted to the motor to improve commutation accuracy. Alright enough of the science lesson what are we going to do about it.
I started hunting down motors that had hall sensors. I wanted to avoid brushed motors for a few reasons. I hate brushes like no other, They are dirty after running them for a while, they can erode the Stator after a while causing permanent damage, they are also less efficient. Really the only plus is they are cheap to purchase. So needing Hall sensors you have one choice DC Brushless Servos. but not just any BLDC motors come in two forms Trapezoidal or Sinusoidal. obviously we need the former. the first two were easy I found two ABB Servos and they were advertised w/ hall sensors. they were even within a decent torque range although I had to do some serious research on my conversions since they were not listed in-oz but as Nm. they were also rated for 3,000 max RPM so with a 2.36:1 gear ratio they would be plenty stout motor for the table.
I needed two more motors and this was the tricky part because I spent months searching until I came across two ALLIED MOTION EMOTEQ QB03402-B06-HE motors. these things have hall sensors and encoders. talk about killing two birds with one stone. although pricier than the ABB motors and 1000 rpm slower they had about .5 times more torque than the ABB's.

For the RF45 clones you want around 850 oz-in torque for the table. a bit more for the Z axis. Although with offsetting the head weight that's not as much of an issue. if you manage to neutralize it completely you might be able to use a smaller motor I have heard of people using Nema23's on this thing.

ok so next which recently I discovered is another thorn in my rear end is Encoders for the Table. at the time I opted for rotary encoders on the motor or possibly on the ball screw, I was undecided. in hindsight linear would have been better but my desire to make things more precise than physically possible I suppose was overwhelming. looking at the allied motion motors they were 2" disks with 1000 line count and Index. well the ABB's were a tad narrowerand a 2" disk was not going to fit under that hubcap in the back. plus I had to extend the shaft on those just to mount the encoders.
again not many photos of this process
2014-09-12 10.38.38.jpg
so I purchased 1" E5 encoders with matching specs to the allied motors. apparently they also came from US digital so I sucked it up and sent them almost $200. I had to extend the shaft, and I had to modify the back half of the motor shell to mount the encoder base. I used some aluminum disks I made using the spindle as a lathe and enlarged the hole where the motor leads go through (I still have to do this for the other motor so maybe I will upload some pics of that one when do it).

EDIT: I forgot to mention the encoders I got from US Digital apparently don't work. I'm waiting on a response from them about an RMA ticket, the odd thing it was both of the encoders I purchased with the exact same fault. defective? I hooked up the Allied motors to the same connectors and had no issue with them so I found it odd.

Moving on.... did you ever think CNC would be an easy process... :pondering:

honestly the easiest part. Buying the computer... the hard part of that however is cramming all these electronics into some sort of a box. I went with a GIGABYTE GA-H81M-HD2 motherboard with 4GB ddr3 and a pentium G3220. I even found an Acer touch screen although that has some quirks of its own. I went the server rack route for mounting all that stuff and here is where wild ideas and bieng cheap get you in trouble. the server case I got was too large for the server rack that I bought funny considering it was advertised as super short and what I get was full length. I wound up shopping that sucker and reinventing the wheel in order to get it to fit the rack. downside which I will have to fix later is there is no front panel covers for the server case. I had to re orient the drive bays and the old front panel just won't fit as a result.
it's still a work in progress but here is my wiring nightmare.
2015-02-06 20.03.39.jpg

Eventually I will have an actual estop, start/stop/ MPG encoder wheel, jog speed selector switches, etc... mounted up with the touch screen

So back to some actual metal work. I wanted to build things as stout as possible with the motor mounts and ball screws. none of this is mounted on the mill yet and honestly if you can do some of this work on a friends mill or even at your employers if he/she is gracious enough I would highly encourage it. I am a bit of a lone wolf so that doesn't happen much. I ordered a 2505 ball screw with double nuts as well as two 2005 doublenut ball screws for the table. Sizes here vary greatly depending on the clone. Even the zx45's have a wide range of models and varying table and column sizes as a result. I ordered them from Chai at linearmotionbearings2008. he has a yahoo email address and if you order via email they are cheaper. but again you get what you pay for. His company does a good job for what it's worth, but they can't pack a box to save their lives.


hmm I can't upload anymore pics on this post it seems, ok next post.

2014-09-12 10.38.38.jpg 2015-02-06 20.03.39.jpg
 
Last edited:
2014-11-26 18.06.51.jpg
probably the worst packaging job imagineable. I knew it would be bad and I even offered to purchase the extra bubble rap and cardboard but he didn' seem bothered. Thankfully they did not bend or get marred in the process. The thickness alone I'm sure was a saving grace. A 1605 or smaller, well just prepare for some practice in straightening. Chai apparently will offer to send replacements as needed due to shipping mishaps or whatever.
Anyways my machining ideas were dashed. I guess I never knew that he changed the lock nuts used, he switched to regular nuts instead of the square nuts. so here you can see my machined down nuts on the Z 2505 ballscrew already mounted up. 2015-02-06 18.21.33.jpg

Yup that's duct tape on the motor project box. Really I intend it to be temporary but hell how much temporary can one plan on fixing.2015-02-06 18.21.07.jpg You will also notice I had to extend the motor shaft in order to clear the nuts on the ball screw with the belt.

In the background you can see the top Z bearing mount had it's own flange for the motor. I actually had to cut it off completely because I put it on the wrong side. what defines the wrong side you might ask. Well ultimately it was the diameter of the top was too large for the Oil seal due to some major miscalculations on my part converting mm to inches on my boring head. So if I mounted it upside down the oil would never stay in the mount.
2015-01-16 19.23.51.jpg

The part sitting on the Vise is the bottom bearing mount. It might be overkill but it's not an AC bearing, the thought behind it is to keep the screw from swaying around its a 2505 screw so it's unlikely that it will really be needed other than piece of mind. On the X 2005 screw the support bearing is recommended. If you opt for a thinner screw like a 1605 it is strongly recommended.

As soon as I get the rest of the lube hardware I will be mounting up the Z axis so I can ditch the quill feed in a hurry. It is by far the most troubling POS of the whole mill. even drilling with it is aggravating.

So with that said I will go over some crucial things about that hunyang VFD when it comes to linuxcnc. There are a couple ways one can do this. you can either opt for a serial/usb adapter connected directly to the PC or you can wire this to your controller board such as a 7i77 using the analog drive connector and some of the output pins. Rs485 is the serial protocol. I opted for the 7i77 method because the thought of a serial connection straight to the PC seemed disastrous to me, also things like an E-stop wired to the VFD stop functioning when using serial mode (seems silly right). There are other cards out there that do RS-485 serial but that was even more money compared to the cost of a couple relays.
So here we needed some code changes to make it actually work. The thing is the pncconf at the time of this posting does not generate the code correctly to run the VFD.
in the Hal file
Code:
[COLOR=#000000][FONT=Arial]net spindle-vel-cmd-abs => hm2_5i25.0.7i77.0.1.analogout5[/FONT][/COLOR]
needs to be changed to
Code:
[COLOR=#000000][FONT=Arial]net spindle-vel-cmd-rpm-abs => hm2_5i25.0.7i77.0.1.analogout5[/FONT][/COLOR]

You will also want to add this to turn the spindle on and off. that pin would be wired to the on/off relay. which connects the DCM to FOR or REV through the another relay. (you might have this part automatically generated by pncconf already if you specified this function)
net spindle-on => hm2_5i25.0.7i77.0.0.output-09

I highly recommend using a relay for on/off because often times when you send an M5 code the VFD will still have some residual voltage for some reason and you will hear the motor continue to hum even though it probably can't spin.

This other part you can do in the ini file or within Pncconf. The Max spindle speed and not the max operating voltage(10v) is to be specified. It's apparently a common mistake.

Code:
[COLOR=#000000][FONT=Arial][SPINDLE_9][/FONT][/COLOR]
[COLOR=#000000][FONT=Arial]OUTPUT_SCALE = 3600.0[/FONT][/COLOR]
[COLOR=#000000][FONT=Arial]OUTPUT_MIN_LIMIT = 0[/FONT][/COLOR]
[COLOR=#000000][FONT=Arial]OUTPUT_MAX_LIMIT = 3600.0


[/FONT][/COLOR]

2014-11-26 18.06.51.jpg 2015-02-06 18.21.33.jpg 2015-02-06 18.21.07.jpg 2015-01-16 19.23.51.jpg
 
Update: turns out those encoders were just fine. After contacting US Digital, I did a resistance test on a few pins that deal with 5v supply and it turns out I had a pin in one of my connectors that was intermittently shorting out against the case and opening from the pin. Top that off with a short on the other end inside the Motor IC box. Basically my soldering skills need improvement.
 
Spent more time on the mill yesterday. after removing the head I ground away the rough channel that was poorly cut by the factory. it took about a day and a half because the smaller Ryobi grinder I was using burnt out it's switch shortly after starting and the larger century tools grinder was just a menace to use, plus the cutting wheel was just so worn out to make any depth.
2015-02-08%2011.09.03.jpg
After installing the ball screw, and moving the head up and down I started to see if I could calibrate the motor without using a gas spring. Unfortunately the Gib was still too loose and slipped tight, I wound up breaking the bolt holding the ball screw mount to the Z axis. so I learned two things as a result, if you do not make a little circular nub on the end of the mount to insert into the Axis then you need to make a spacer to fill that hole, or the bolt will bend and eventually break. The other thing is I had tightened the screw as tight as it would go to prevent the Gib issue but it just would not budge by hand. So I yanked out the cordless drill on low speed with a flat blade driver and very carefully cranked away on that screw. played with the sliding by hand if it bound up at all I gave another turn or so with the drill. It was a bit nerve racking considering how tight this screw was acting.


At this point I moved the motor up and down by hand and with my cordless drill to see how much torque was going to be needed to move it up. I wasn't too thrilled by this and I had already ordered a couple 150lb gas springs. I only used one on the right side but after installing it I realized I should have spent more time looking over the column because the crank mounting hole sticks out too far. So I had to carefully pull the ball stud from the gas spring and slide it over using some scrap aluminium then yank out the Old Grinder and carefully shape away the offending protrusion. I was annoyed by this because I had to spend more time cleaning away grinding dust which is a major nuisance, it likes to stick to everything.
2015-02-11%2019.53.19.jpg


Now to remove the spindle feed and Igaging stuff.

2015-02-08%2011.09.03.jpg

2015-02-11%2019.53.19.jpg
 
Finished up my Ball screw mounts today. I had some strange troubles with my Z axis randomly diving down during my cutting operations though. A bit of a nuisance. Accuracy wise I kept everything close enough despite the gouging. I made the Y ball nut mount into an L shape in order to clear the underside of the base. not sure how I am going to resolve the issue. it seems large moves on the Z are fine but smaller moves tend to be a bit random. I am sure some of that is due to backlash and more of it to do with lead error. but why the system is dropping I find confusing. If I cycle the axis up and then back down it's positioned correctly again.
One thought is to throw more hardware into the equation, adding another mesa card to support linear encoders along with the rotary encoders would probably be the ideal solution but my electronics cabinet is plenty stuffed already. On top of that is the lack of funds of course. 2015-03-04%2016.36.58.jpg
 
well that drooping issue had me very concerned it was even affecting touch offs. I locked down the axis and grabbed a hold of the ball screw pulley. I had about .08" of play probably a bit more. So I removed the gas spring and lowered the head so I could look inside and see what was going on. The ball nut holder was actually moving on me.
After removing the head it was obvious that the bolt to the slide had some how come loose so I torqued it down. After recalibrating I have about .007" of backlash that I am not sure how to account for. There really shouldn't be any but it's improved quite a bit. Unfortunately I do not have a test gauge so measuring beyond that is out of the question for now.
 
Hi Drac
on my zx45 machine, if the gib on z is too tight, and it is very easy to do, the head will stop on the down movement with saved torque in the screw. as the machine vibrates the head will then move down. the head has to be free enough to move down on it's own and not be driven down by the screw.
to set my gib i use an indicator i can swing in the spindle from Y+ to Y - about 6". I zero on the inside stroke and swing it out with the gig tight this should still read zero if your trammed correctly. then I loosen the gib until I see the head has a difference of .001 . I go to about .003 then adjust until i see ,001 going up and down to recheck a few times to make sure. 001 in a 6" stroke is not a big problem and the gib will get tighter as the machine warms up. you may have to tap the gib to loosen it the screws are weak. now I know the gib is not tight enough to hold the head up on it's own.
Because all the weight of the head is so far away from the dovetail, binding can be a problem even with lifts because the lifts are at the dovetail and not at the center off the heads mass. there is a lot of leverage against that dovetail. Z axis needs constant lube never let it dry out or it gets crazy again.
also to locate play I would lock the z axis with the lock handles on the gib and turn the ball screw by hand looking for play in everything else inside the column. turn off the controller so the motor is not braking.
I hope that helps I'm not trying to be a know it all. It took me a while to find and I was getting crazy z backlash issues myself until I figured out how to set it.
Steve
 
......
also to locate play I would lock the z axis with the lock handles on the gib and turn the ball screw by hand looking for play in everything else inside the column. turn off the controller so the motor is not braking.
I hope that helps I'm not trying to be a know it all. It took me a while to find and I was getting crazy z backlash issues myself until I figured out how to set it.
Steve
the play is somewhere between the ball screw and the slide. I can turn the ball screws pulley about 3 teeth or so with the slide locked down.

As far as the adjustment, I dealt with all that by hand with the head removed, it was basically an issue of making sure it could not bind up on me at all during that whole process. I am of the belief that they designed that gib upside down because it's designed to bind going up but not down.
My best guess short of a complete dismantle is it may be the tolerances as a result of the metal I used, it's only 1018 and it can be a bit malleable under enough stress. the ball nut mount was also the very first part I made and I know it could have been done a bit better the bore is a bit loose. ArizonaVideo over at cnczone also noted "The head dovetails are notorious for rocking on the 45's, if you place an indicator to look for rock I bet you get a couple thou right there." so that is another possibility to look at.
 
Gunrunner you need to order a set of these for the Z axis hand crank. Bill did you just spit coffee on your monitor? :rofl:

View attachment 253356
 
that's different. mine just pivots off that M8 bolt going through the slide seems the forum software change altered my photos..... here is a better view:2015-01-16%2019.23.51.jpg it's the piece in the middle of this photo.
here is the other shot with it on the screw 2015-02-06%2018.21.33.jpg
 
Back
Top