1 Attachment(s)
(Another) LMS SX2 Mini Mill CNC Conversion
Hi, hope there's room for yet another SX2 CNC conversion thread. I bought the LMS Hi Torque 3900 mini mill over a year ago and am very happy with the machine. I always wanted/planned to convert it to CNC, but with no machining skills (at least not metal, lots of woodworking) it took a long time to learn the basics and get enough tooling in place to do anything serious. After reading and learning from the many build threads here, I also need to thank Hoss, DJBird, and many others on this forum--without their excellent work I wouldn't have known where to start. Anyway, this is going to be a sort of "catch up" thread as I am pretty far along on the build. I didn't do very well on documenting while I was doing the build, so I've been doing some catch-up, taking a lot of pictures and will cover what I've done to date, and then to completion of the project. The picture is of my mill, when it was brand new and clean, mounted on it's dedicated bench/flood table.
2 Attachment(s)
Z-Axis – Spindle Carriage Modification
I decided to tackle the hardest part of the build first, namely the Z-axis. To get started with the effort I purchased the replacement part for the spindle carriage, i.e. the part that has the dovetails and is bolted to the spindle box. Fortunately LMS stocked this part for $65+shipping. Wished it were less, but I couldn’t proceed without it so ordered it and had it in a few days. The first order of business was to clean up the inner casting outlines at the back side opening (dovetail side) so that an insert would have straight edges to fit into. Also worked in from the wider opening (front) side to clean up the shoulder features and basically flatten and straighten up things a bit. Because the casting inner walls aren't parallel to the outside, no attempt was made to do anything with the sides, just the bottom areas where an insert block would be made to fit down against those surfaces. Once the part had at least some flat and parallel areas to work with, careful measurements of the features were made a 3D CAD model was developed. The column was also modeled and by placing the two models together the available spacing and design of the ball nut carrier were much easier to visualize. A 3D model for the ball nut was located on the RBS website, and that allowed orienting and positioning the ball nut for the best fit in the available space. Since there is a 16mm hole in one side for the rack shaft, that was convenient to use as the method to hold the insert. The hole on the opposite side was to be enlarged to match, and a pair of 16mm shoulder bolts would serve as the main fasteners for the ball nut holder. The smaller hole located forward and down would be re-drilled and copied on the other side to provide a second attachment point using some ¼”-20 button head screws.
Using the 3D CAD features, the amount of space available for a ball screw could be accurately estimated, and a model of a shaft opening was developed into the part. The attached rendering gives an idea of what the model provides. I didn't do a complete model, only as much as was needed to determine if it was going to work, and what would need to be done to make it work. Playing with the model, it was clear that while there is almost enough room for a 5/8" ball screw to pass behind the spindle motor, the bearing block to support it would need to be located at least the height of the motor (6 - 8") above the top of the column in order to allow the motor to not interfere with the bearing at the top of its travel. That wasn't an attractive solution, so the unavoidable solution was to move the motor forward. This turned to be simpler than expected, as the modification only required about 1/2" of movement to get the needed clearance.
The attached pictures are of the last model updates including the Z bearing block, which will be covered in detail later. If you look closely at the wireframe you can just see the ball return tube of the ball nut model.
3 Attachment(s)
Z-Axis Carriage Machining
These pictures show some of the final work being done on the spindle carriage to cut the ball screw pathway through the carriage and the baall nut insert at the same time using a 3/4" ball end mill. The carriage was aligned to the x-axis of the mill using a dial indicator along the dovetail. The aluminum insert/ball nut carrier can be seen fitted into the middle. I'll show more details for the ball nut carrier in the next post.
3 Attachment(s)
X, Y Axis Bearings and Motor Mounts
By this time I wanted to get started on the X and Y axis ball screw details, but I couldn’t start working on those until the X,Y bearing details were figured out. I spent a lot of time trying to decide on the axis bearings, and had even bought some of the thrust type bearings thinking at one point that I had it settled. Then I saw where a lot of setups were using angular contact pairs. In the end, I got realistic, stopped over thinking it, and settled on using double row angular contact bearings. These have the additional advantage of being sealed units too. I bought a bearing from vxb.com to measure for use in the CAD design. The unit is a 5200-2RS (10mm x 30mm x 14.3mm) double row angular contact bearing. Although not rated as high for load carrying capacity as a pair of ACs, these seemed to be adequate in my estimation for this size machine and the forces it will generate on these axes. With that finally decided, the designs for the bearings were pretty easy. The Y bearing block assembly is basically a modified Hoss design with a spacer and the bearing block. The X bearing block assembly consists of a new table end piece with the bearing block attached. The bearing blocks consist of two pieces: a bearing holder and a lid. Both the holder and lid are designed with recesses for shaft oil seals, although since the bearings are sealed these will probably not be used. This is a typical design that you will see described at 5bears.com and other places. This design calls for the bearing recess to be a couple thousands shy of the true bearing width to allow the lid to apply some load to hold it in place. Shims can always be used if the machining doesn’t accomplish this so no worries there. The motor mounts were inspired by djbird’s design that uses two flat plates for the motor mount. This gives a nice appearance of a one piece design and also provides some motor heat sink as djbird mentions. The attached are some of the CAD drawings that show the general design and a rendering of the Y axis. I couldn’t find the X axis rendering but you get the idea. In the next section I’ll cover how these were made.
5 Attachment(s)
Making X, Y Axis Bearing Assemblies
The stock for the X axis bearing main block 1” x 3” x 3” aluminum, the lid is made from 3/8” x 3” x 3” aluminum, and the end bracket starts with a piece of ½” x 3” x 6” aluminum, all 6061 alloy. The first operation was to face the block and lid materials to finish thickness. The pieces were then rough cut within .1” of finish size on a bandsaw and then milled to .020 oversize to allow for a final cleanup later. Following a tip from the excellent book “Machine Shop Trade Secrets” by James Harvey, the lid and block were held in the vise together and machined to size at the same time, assuring that they came out identical. Throughout machining the two parts were marked so that they maintained the same mating surfaces and orientation also. Once milled to size, the drill locations for the various holes were laid out, excluding the motor mount holes. The motor mount holes require a precision alignment that will be performed after th bearing block is completed. All of the through-holes were drilled, and then the tap drill is used to drill through the lid and into the block for the tapped holes in the block. The lid is then removed and the holes in the block tapped. This is a tedious process, at least the way I did it. I used the center finder on each hole to align the spindle, then used a spring loaded tap guide held in a collet to help align the tap while it is starting. Use cutting oil or tapping oil to make clean cuts. After finishing the tapping, the lid was put in the vise and the tap holes enlarged to the proper clearance values. At this point I screwed the lid to the block and checked the fit, adjusting to make the outside edges align as well as possible. Mine didn’t align perfectly, but no matter as they were .020” oversize for that reason. With the parts firmly screwed together, I mounted the unit into the 4-jaw lathe chuck. The idea is to then center the part and then carry out the boring process. Well, this was a new skill for me and took a good long time to get the independent jaws tight and adjusted. The digital dial indicator was placed so that it would reach down onto the part from the top. After centering the part by eye, I set the indicator on the top surface, zeroed the indicator, then carefully rotated the chuck (lifting the indicator stem of course!) to get a reading on the opposite face. The adjustment to be made is half of this reading, and in the direction opposite of that indicated, so tighten/loosen the jaws to achieve that value on the indicator, and then repeat the process. Once that pair of edges is within a couple thousandths of center, do the same for the other two surfaces. Then fine tune down everything to a thousandth or less. Sounds pretty simple, and it is, but it takes a little practice. Maybe there is a better way, but this did work. The next step was to center drill and then drill up to 3/8”, all the way through. The idea is to bore the smallest common hole through, and then finish each part separately. The initial boring operation saves time by cutting two in one setup. The bore could also be used as another way to center the part using a dial test indicator, which I did on the second bearing assembly. After boring through the smallest common hole, the lid was removed, and unfortunately the centering operation needs to be run again (!). After that, the bearing pocket is the next operation. Since the tolerance of the pocket depth is desired to be held to 0.001”, I used the digital dial indicator located against my carriage. I zeroed the indicator with the boring bar touching the face of the part, and then moved the boring bar into the existing center bore. The carriage was then moved over to about .005” short of the final cut depth, and the carriage stop was locked at this position. The carriage stop allows for faster cutting without constantly looking at the dial indicator. In fact, the indicator can be removed if desired until the finishing cuts need to be made. Take care to hold a tight tolerance on the pocket diameter too. You should use a bore gauge to monitor the progress. I also kept the bearing at hand and made a lot of small cuts to sneak up on the final diameter. You should debur the edge of the hole before test fitting the bearing, as the bur will fool you into thinking the hole is too snug, and apply a little oil. I was able to get my pockets to about .0015” oversized so the bearings are nice and tight. After finishing the bearing pocket, the part is removed and turned around to cut the oil seal, and yes, another centering operation is required, but it’s getting easier each time. Finally, it’s the lid’s turn in the 4-jaw to bore out the center hole and make the oil seal pocket. Here, only one centering operation is needed. These operations are the same for both the X and Y bearing blocks. Each has its own bolt patterns, but the center bores and oil seal features are the same. The table end bracket for the X axis was cut and milled to length (left oversize .050) but left as a rectangle until the bearing block was completed and attached. I found that the end bracket from the opposite end of the table when kept in the same orientation but moved to the crank end of the table fit with the same top clearance and fit the bolt locations, so I used this as a pattern to transfer the two table fastener hole locations and also the shaft hole center. This would ensure that the new ballscrew shaft center height relative to the top of the table would be the same at both ends of the table. The table holes were drilled and counter-bored in the bracket, and the shaft hole was drilled to the slightly oversized dimensions to allow for some alignment tolerance. The bearing block was not attached to the bracket until the X-axis ball screw was completed to allow for a near perfect alignment of the bearing block onto the bracket. This was accomplished by sliding the bearing block onto the shaft, aligning the block for vertical/horizontal, and then using a transfer punch to mark the locations on the bracket for the tapped holes. After that, the bottom of the bracket was cut and milled flush with the bearing block, and the tapers were cut along the bottom bracket at the same angle as the original brackets, which is only for appearance.
The Y bearing block assembly is made in a manner very similar to the X axis assembly. The Y spacer block and bolt patterns are taken directly from Hoss’s drawings, and I verified that my base had identical tapped hole placements and the shaft holes were well within the clearances. Anyone doing the conversion should verify the hole locations before making parts to match.
For the materials used to build up the X and Y bearing assemblies, I used vxb.com to source the bearings, and found a great place for the oil seals at bestpartsonline.com. I bought the fastener hardware at boltdepot.com. The metal came from speedymetals.com. I did need to buy some additional tools for this effort, including a 4-jaw 3” chuck for the mini-lathe, and a set of transfer punches, all purchased at shars.com.
*** Sorry for the long post, didn't realize how long it was getting, I'll try to keep it shorter or break it up going forward.
Ball Screw Machining (Part 1)
With the X,Y bearing block and mounts finalized, the ball screw journaling details were established, so I got ready for the torture of turning 2 more ball screws. In the initial attempt, the tools were mostly brazed carbide tools of the 3/8” shank BR variety. Several of these were broken as the tool dug in and made a loud bang—not pleasant. They also needed frequent re-sharpening. A triangular 3/8” shank insert tool with C2 carbide inserts quickly broke or lost their edges too. My ignorance of proper cutting angles and amateur grinding skills were likely part of the problem, however my experiences seemed to be worse than others’ I’ve seen. I looked for other inserts for the 3/8” tools, and bought some TiN (gold color) inserts, and also some TiAlN inserts (shiny black color, EM YBG202) from Shars. I followed Hoss’ example and made a split collar to center and protect the ball screws, although the 3-jaw 3” chuck is too small to pass it into the spindle so it is much shorter. However, it still worked well. Additionally, a slip fit Delrin plug was turned for the opposite end of the spindle to keep the screw from whipping. Started turning the next ball screw with some new, sharp brazed BR tools and immediately broke one. Then tried the TiN inserts and found they would hardly cut at all. About this time I found what was causing most of the problems I was having with the cutters digging in and breaking. Not adjusted properly, the carriage had a small amount of vertical play that was allowing the cutting tool to move very slightly when a heavy load was applied. The movement caused the tool to rotate deeper into the cut, causing it to bind up, chatter, and either break or stall the machine. The carriage was tightened, and the BR carbide tools began to make consistent cuts. The TiAlN inserts were tried next, and man, what a difference. These inserts are very sharp and tough and they really cut well. I couldn’t believe how easily these inserts were cutting that hard stuff. Now it only took a few minutes to cut through the case hardened layer, and these inserts leave a nice finish too (look at the bushing support journal of the x-axis --this is the raw machined finish!). The cutters do wear out fairly quickly though; the swarf is very abrasive and hard to keep clear from the cut so it tends to wear down the cutting edge. I tried to keep it brushed off, but it tends to stick in the cutting oil. A flood coolant setup to keep the swarf flowing might help the inserts to last a lot longer. I think it took 1 insert (3 points) to get through the threaded area, and one more point on a second insert to complete the roughing. At about $4 per insert, this is maybe a little pricey, but well worth it. The ball screws were roughed down to within .015” or so of the final size, then switched to a HSS tool fashioned like that recommended at 5bears.com for the finish cuts. I stopped at about .001” to .002” over size and carefully sanded them in for a tight slip fit in the bearings. On the first ball screw I used an E-style triangular insert cutter to cut threads with satisfactory results. For the last two screws I bought a thread cutting tool that uses a thread cutter insert to cut the threads. This produces better threads and cuts very cleanly.
3 Attachment(s)
Ball Screw Machining (Part 2)
After finishing the journals, the screws were cut to length with an air driven cut off wheel. The screw was chucked in the lathe and the cut-off tool zip-tied the cross slide. Set the lathe to a slow turn rate, and feed the cutting wheel into the screw with the cross feed until it parts. I put a wet cloth beneath the cut to protect the lathe ways from the swarf. (When turning I also used those heavy blue paper shop towels secured with some small round magnets to catch the swarf during machining.) The final operation was to adopt an idea mentioned on this website (Will's Mini-mill), but mine is a removable fitting to bolt onto the end of all of the ballscrews to assist in loading and unloading the ball nuts onto their cardboard tubes. This is made from 5/8” CRS, but aluminum should work ok too. The retaining screw is a ¼”-20 button head, and the non-bearing end of each ball screw is tapped ¼”-20 about 3/4” deep. The smaller diameter section of the fitting makes a slip-fit onto the ball nut cardboard tube, making it easy to slip the ball nut on/off the screw without worrying about holding the tube against the end—one slip and the bb’s go scattering. It works great, but make sure to tighten the screw before removing a ball nut so that it doesn’t unthread while removing the ball nut—the voice of experience.
Commentary: If I did this over I would change to 12.0mm bearing journals and 12.0mm x 1.25mm threads as this would require less material removal, and nearly the same size bearings are available with 12mm ID as for the 10mm versions (e.g. 5201-2RS). I wasn’t sure when designing the bearing blocks whether a 12mm diameter would be below the case hardening layer which would complicate threading, but it seems that it is, so threading wouldn’t be a problem.
3 Attachment(s)
Saddle, Table Modifications, X, Y Axis Ball Nut Holders
As planned, I bought a replacement saddle from LMS for $65+shipping. They do a good job keeping parts in stock. Although I can’t completely justify it, at this point I also purchased another base (and another $65 spent) so that I could completely fit up the Y-axis, and by removing the two screws from the X axis bracket and sliding the table off of the mill, Icould mock up the entire X,Y assembly independently of the mill without much effort. It also allowed me to get the new saddle and base working smoothly together prior to the final machine teardown and CNC buildup. I went ahead and also bought a new set of x,y, and z gibs from LMS too. After making some measurements and determining the height of the ball screw, the usual material was milled out of the saddle to allow the ball nut and the ball screw to pass through. The measurements showed that only a small amount of material would need to be removed to allow the ball nut to be in position vertically, maybe .020”. The cast iron mills easily and so this didn’t take long.
The X and Y axis ball nut holders are now very commonly seen parts in the many X2/SX2 builds, but for completeness I’ll post my copies. These are pretty much to Hoss’ prints, slightly wider and a little beefier to fit the SX2 slots. These are made from 7075 aluminum, only because I had some scraps available. The scraps were round stock, so it took a little more machining (the radius was built-in for the top of the X-axis holder) but I needed the practice anyway. End mills were used to plunge out the holes to ¾”, then ran a Silver&Deming 7/8” drill bit, then tapped with the 15/16”-16 tap (bought this at wttool.com). I didn’t have a large enough tap wrench so I used two end wrenches, and also the spring tapping center held in a collet. All steps were done with the same setup to keep alignment, but this operation was almost beyond the vertical reach for the mill, and I had to remove the stop block that keeps from running the mill off the rack to get the extra movement needed. When installing the nuts I shimmed between the nut and the holder to get the nut to be tight in the orientation I needed, and then installed nylon tipped set screws per the drawings.
In doing the X axis ball nut fit-ups, it became apparent that the wide, shallow machined slot on the underside of the table wasn’t quite wide enough to clear the ball nut and would bind up in different spots. Since I had no way to mill it, I used a dremel with a grinding wheel to knock off the corners of the machined slot, basically putting a chamfer on at 45 deg. This worked, but the clearances were still tighter than I liked, so later on, when the mill was dis-assembled I took the table to my friend and had the slot milled a little wider and a little deeper so I could stop worrying about it.
5 Attachment(s)
Column Top Insert and Stiffener
I wanted to beef up the column, as much for appearance as function so I settled on some 4” x .187 steel channel. I bought a 2’ length at a local machine shop, but since I couldn’t machine this length, I took it to my friend to face mill the sides and bottom. He did a great job, but this material was far from flat and was not easy to fixture and keep from chattering. Lunch was definitely on me for that one. The column outline was traced onto the channel and cut to match, but I needed to use a bigger machine to cut the large pivot hole. The stiffener was clamped to the column and a pattern of 1/4"-20 holes were drilled and the column tapped, and the holes in the channel opened up for clearance.
The insert in the top of the column is a chunk of aluminum cut to fit down into the column by approximate 1.5” to provide a solid mount for the Z-axis bearing block. This took a lot of effort to make, and is probably not the best way to go, however since I started it I just kept going till finished. This would definitely be re-designed if done over. The insert was clamped down tight and the holes drilled with the ¼” tap drill, then separated for the tapping. The channel and column holes were then enlarged to clearance size as necessary. This approach ensures great alignment and fit of the screws. Assembly uses ¼”-20 button head socket screws. I had ¾” length screws on hand so that’s what I used throughout.
The pictures show the insert finished while the mill was together, and then later attached to the column as part of the assembly with the stiffener. I also had the insert milled perfectly flush with the column at this point since it was made a little oversized to allow for finishing.
Edit: Note that the column insert is primarily there so that the spindle belt/pulley cover can rise above the height of the column and allow the spindle to rise to completely to the top of the column before meeting the Z bearing block. You can see that in the second picture.
Stepper Motors, Controllers, and Breakout Board
As mentioned in the design plans posting, I decided to go with Keling for motors and electronics. Overall their price was a little better than Probotix, but it was close. Here’s what I bought for a little under $400:
1 x KL23H286-20-8B 381 oz-in stepper dual shaft
2 x KL23H276-30-8B 282 oz-in stepper motor, dual shaft
3 x KL-4030 Stepper Driver
1 x KL-350-36 36V/9.7A power supply
KL-DB25 Breakout Board
The motors are NEMA 23 frame and I picked the dual shaft versions for two reasons: 1) it would allow manual use if desired by attaching a handle (I know, probably never happen, but us newbies need to have the option like a security blanket) 2) In the future I would like to look at adding encoders to the motors to support closed loop (servo) control. I recently was reading about the DynoMotion KFLOP controller, and it has the capability to close a servo loop around steppers that have an encoder installed.
I also started looking for motor shaft couplings and it seems that the overall consensus is to use the Oldham style. I bought one unit from McMaster-Carr and it is very nice but a little pricey ($28) so I gave Amazon a try. I found what I thought were Oldham half couplings for about $5 each so I ordered 2 pieces for each side (5/16 for ball screw side, ¼” for motor side) and some of the spacers. These are the clamp type instead of set screw. When the order came there were four complete couplings in the bag, 2 @ 5/16” on both sides and 2 @ ¼” on each side and including the spacer. The bags have part numbers from smallparts.com and apparently they were dumping these (Huco mfr.) couplers so I got some extras out of the deal, just needed to swap parts to make the coupling I needed, and all for $26 with free shipping.