We recently purchased a 7x12 metal lathe and micro-mill. The micro-mill has been retrofitted to CNC with stepper motors. The lathe will eventually be CNC converted too. The CNC G-code interpreter used is Enhanced Machine Controller (EMC). This is a really nice machine controller written by NIST. It runs under a variant of Real-Time Linux and is open source free. More info on EMC can be found at LinuxCNC.

So far we have used the mill to make cutouts and lettering on boxes for our electronic projects. The mill does a pretty good job engraving metal and plastic. We are currently building a larger 30"x30" gantry mill and the CNC micro-mill will come in handy for milling out the various aluminum parts.

The Sieg X1 micro-mill was purchased from Harbor Freight. Stepper motors are Ebay surplus 150oz/in. NEMA 34's. Motor mounts are made from 1/2" baltic birch ply. We have a full woodworking shop at our disposal. Instead of spending several hours making nice machined aluminum motor mounts, these where put together in a few minutes. We will eventually use the cnc to mill mounts out of aluminum once everything is working to our satisfaction. The stepper drivers are our own design using LMD18245 with a 16F84 PIC doing the microstepping translation. Rapids are currently set at 15ipm @ 32,000* steps/inch. Machine can move faster but we have the gib screws really tight to limit table chatter for cutting metal. Setting the maximum rapid speed lower guarantees no missing steps.

EMC computer is a old PII-400 running BDI Linux. The LCD screen shown at right is a modified I-OPENER running win98. We are using the I-OPENER to display the EMC gui via X-windows. This takes up less desktop space and we didn't have an extra monitor laying around to begin with. The small box with the red button is our E-Stop. Power supplies, drivers and Linux PC are located on a shelf below the workbench.

There is also a Yahoo newsgroup that has more info on CNC conversion of this micro mill. Another Yahoo newsgroup

*8 microsteps X 200 steps/rev X 20 thread/inch lead screw = 32,000 steps/inch.

Update: Some of these are images are old, we've since made more modifications to enhance the mill.

This is the z-axis thrust bearing and rubber motor coupler assembly. The bearing was purchased from Enco and we made a set screw lock collar on the lathe to fit the lead screw.

Our quick and dirty Z-axis counterweight setup. Weight is 15 Lbs. Not the most elegant solution but it works.

Closeup of I-Opener running win98 and EMC gui via remote X-windows. I can view/edit cad drawings, check email and surf the web while machine is cutting. This doesn't affect the mill since EMC is actually running on a separate PII-400 PC located below. Shown is the "TKemc" gui, we've since switched to the "mini" gui. This is a much nicer EMC graphical interface.

Top shelf holds the electronics, our custom made microstepping chopper drivers mounted to a big heat sink. Currently only 3 drivers are installed but there is room for a 4th one. We have a small rotary table that hasn't been motorized yet. Right side is an old PC/AT power supply case. We ripped out the guts and installed a 24volt transformer and filter capacitors. Output is 36volts@10amps, plenty enough to drive the steppers. These old PC/AT PS cases are nice since they have a convenient big red on/off switch and standard AC plug connector. Power supply is fused (AC input) and each individual stepper driver board is also fused (DC motor input) for added protection. Back left corner is a small Power One 12v supply that is running the 5" fan, very left, cooling the driver boards. The fan isn't really needed since the heatsink is rather large but we used one anyway. If the drivers boards were mounted inside a enclosed case, a fan would be recommended to help keep everything cool. Wiring is a bit messy but may mount everything in a large box one day.

Lower shelf is the PII-400 running EMC BDI 2.20 Linux. There's a 10Mbit hub back there connecting the two computers to the main 100Mbit LAN. Samba was installed on the EMC PC to make it easy to transfer g-code files from our main cad workstation located upstairs. No sneakernet here. Anyone have any Dell plastic drive covers? lost ours.

5/2005 Our new 130mm extended Y axis base purchased from Little Machine Shop There is a problem with the gib strip that was shipped in the upgrade kit, it is too thin. This makes it difficult, if not impossible, to adjust out all the play in the y axis. The fix is to purchase some .125"x.375" ground steel stock for $5 and make a new gib strip. This isn't really any fault of Little Machine Shop since they are just the importer. Even with the thin gib strip, the extended base works much better then the original. The dovetails are longer with more surface area, so this helps with reducing chatter.

New bearing blocks on X and Y axis.

6/11/2005 Finally got around to making aluminum bearing mounts for the mill. The previous wood mounts limited the maximum Y travel available with the extended base so a new one was needed. The wooden mount lasted for over a year, they were simple and much easier to make. I used two 22mm skateboard bearings with a set screw collar to lock them in place. Angular contact type bearings would work better but are much more expensive. The stepper standoffs are made from 1/2" drill rod on the mini lathe. Steel rather than aluminum is used since the nema34 motors are heavy and already had the drill rod available. They are drilled/tapped on both ends and then bolted to the bearing block and stepper mounting plate with 10-24 screws.

Solidworks edrawing of the bearing mount. You can download the free edrawing viewer from
PDF version of the bearing mount.
NC center drill file
NC top bearing pocket
NC bottom bearing pocket. The bottom bearing pocket is made a bit larger diameter so the bearing can self-align with the top one.

The bearing block was made on the micro mill (with existing wooden stepper mounts) using EMC. The above gcode will probably not run correctly on a different machine controller without modifications. The bearing pockets are milled out using a .375" end mill with multiple Z depth passes and lead in/lead outs. The drill program is used with a center3 drill bit to mark the mounting holes. I then drilled them on my big Delta drill press after the pockets were cut out.

Since the new bearing blocks are much smoother and better aligned than the stock block, the table moves without any noticeable binding. The X axis travel is almost a full 9 inches.

7/16/2005 We switched over to using metal "lovejoy" type couplers for the stepper motor. These work much better then the rubber couplers used before. I used the lathe to bore out one end to fit the 8mm lead screw shaft end.

1/18/2006 We received our extended X-axis table from LMS. I threaded the end of the lead screw for a 8mm nut. We used a set screw lock collar before but it would sometimes slip under heavy milling stresses. The threaded nut should work much better to lock the two bearings in place. The end was turned down to .25" for the lovejoy connector. A flat was then milled for the set screw.

Comparison of old vs. new x axis, the extended table is about 15.75" long. The maximum Y table travel is about 7" and X is 13". The actual usable table travel is shorter due to gib/dovetail contact area. This is about 5.5" x 12". Not as much as our bigger X3 but it is pretty respectable for such a small mill.

1/19/2006 I installed the extended X-axis table which works very nice. I also updated the computer to the latest EMC BDI-4.38 version last week. The old version of EMC has been running flawlessly for the last couple of years so it really didn't need to be upgraded. The latest version is suppose to fix some bugs in the trajectory planning (I never noticed them) and some user interface tweaks.

3/1/2006 We purchased three new Nema23 276oz-in stepper motors on Ebay for $39 each. A new mounting face plate was milled out to fit the smaller diameter motors, a relatively easy task when you have a cnc.

The datasheet specs for these 8 wire dual shaft motors are listed as:
Keling Technology model 23H276-30-8B
Unipolar (half winding) 1.4N.m (200oz-in) 3amp 2.76Volts 2.2mH
Bipolar Series 2.0N.m (276oz-in) 2.1amp 3.86volts 8.8mH
Bipolar parallel 2.0N.m (276oz-in) 4.2amp 1.93volts 2.2mH

On my test bench, I was able to spin these motors at 1700RPM using our Microstep driver with a 48volt power supply. The motor was hooked up to the driver as bipolar half winding set at 3amps. These motors don't work very well when hooked up bipolar series due to the high inductance. I was only able to push the motor to about 500RPM before torque loss. I don't recommend using these motors hooked up bipolar series unless you have a gecko type drive with 70volt power supply.

The performance of these steppers on the mill is simply amazing. They run much smoother than the previous motors used. I was able to get the 20TPI lead screw spinning at 1200RPM (60IPM). They can probably run faster but I only have a 36volt power supply on the mill. We didn't bother testing with the 48volt supply since 60IPM is plenty fast for the micro-mill. TurboCNC was used to perform this speed test since EMC can't output more than 13,000 steps/sec on the 400Mhz PC.

When testing the demo version of MACH2 on the same PC, I was able to get a smooth pulse train up to 36IPM. The demo limits the maximum speed so not really sure what a fully licensed version will do. I am really impressed with how stable and jitter free the output step pulses are with MACH2, much better then what EMC is currently capable of. We are considering purchasing a licensed copy of MACH2 and dumping EMC in the near future.

Even though the specs list the motors as having less torque when hooked up half winding, there is certainly plenty of torque to move the table atleast 60IPM.

5/11/2006 Start of our Z Axis ballscrew conversion. The ballscrew was purchased from Homeshopcnc with the upgraded pre-loaded ballnut. The ballscrew was to hard to turn on my 7x minilathe so a 1/4" hole was drilled at one end of the ballscrew with a carbide endmill. I then turned down a short piece of 1/2" drill rod to slightly over 1/4". Using some high strength loctite retaining compound, the drill rod was carefully hammered into the end of the ballscrew. After drying overnight, I chucked the ballscrew in the lathe and turned the drill rod end down to 8mm to fit a couple of bearings. The end was also turned/threaded for a 8mm locknut and lovejoy coupler.

The aluminum stepper mounting plate and the larger bearing mount is similar to the design used in the X and Y axis. The stepper standoff are 1/2" diameter drill rod about 2" long.

The aluminum ballnut mount was more difficult to make. It requires a 15/16-16 tapped hole for the ballnut to screw into. The correct sized tap was purchased from Wholesale Tool for $20. The cnc was again used to mill out a .865" diameter hole. The hole size was taken from the Machinery Handbook tapping chart. Every machinist should own a copy, mine was purchased off Ebay. I never tapped a hole this big so it took awhile but it came out really nice, the ballnut screws in perfectly.

5/16/2006 Finished installing the ballscrew on the mill. The whole head assembly is now solid with very little backlash. More to come as soon as I finish setup and testing.

5/21/2006 When we received our extended Y axis base from LMS, it came with a very thin steel gib strip. We couldn't adjust out all the play in the axis no matter how tight the screws were set at. The axis would just bind up instead. Having no 1/8" thin steel stock available, I used a piece of brass from the local hobby shop. The axis seems to work much better now. I'm not sure if the newer extended bases are shipped with the correct size gib strips now but for those who have the thin version, this is a worthwhile modification.

To mill the 55 degree angles on the gib, I used my table saw to cut a 35 degree kerf slot in a piece of MDF. The width of the saw blade is .125" so it made a perfect slot for the brass strip to fit in. I super glued the brass strip in the slot so it wouldn't move and then milled out the extra material creating the angle. I then flip the strip over and mill the other side the same way.

5/22/2006 The Y axis works so good that I also made a brass gib for the X axis. Brass has lower friction but wears faster than steel. I can tighten down the gib screws really hard and still have no problems moving the axis with the stepper motors. Trying to tighten the original steel gib strip this much just results in the table binding up. I can report the table has less vibration when cutting aluminum. Although the brass will wear faster then steel, the gibs were easy to make so replacing them with new ones will be no problem.

10/21/2006 Made a new brass gib for the Z-axis. After about 5 months of use, the X and Y brass gib has performed great. I haven't needed to re-tightened the gibs screws at all. The table is still solid and runs really smooth. I highly recommend this modification if you can make them.

6/4/2006 Start of our X and Y axis leadscrew upgrade using 1/2" x 10TPI acme. I made new nuts out of delrin using our homemade tap that are longer than the stock versions. Hopefully this will minimize leadscrew backlash by having more thread contact area. The leadscrews still needs to be cut down to correct length. The ends have been machined on the lathe to fit dual bearings and threaded for the bearing lock nut.

6/11/2006 Made a new 1" thick Z column riser plate out of steel. The original plate is 11mm thick. There was some mention on the Yahoo hf47158toCNC newsgroup that a thicker riser plate may help minimize column deflection. I didn't really see too much improvement in the amount of deflection with my dial indicator. The plate was easy to make and every little bit helps to improve this mill. We did gain a little bit over 1/2" in Z axis clearance which is a big plus. The maximum Z travel, from table to top of column, is now about 9.5". The working Z travel is less due to the addition of the end mill holder/collet, vise height and end mill length itself.

Loc-Line vacuum attachment.

Z-axis stepper mount and head counterweight assembly.

9/13/2006 Newer images of the mill.

10/27/2006 We finally purchased a MACH3 license from Art. This is a Windows XP based cnc gcode controller program. The program has a lot of nifty features that EMC doesn't currently support. The stepper motors run smoother and faster under MACH than it did using EMC. So far I haven't had any problems. EMC running under linux was very stable and I don't recall it ever crashing. Hopefully running XP for a machine controller will be as stable as linux.

High Tech  Systems Modular Work Holding

6/21/2007 We received our Modular Work Holding System from High Tech Systems This is a 4"x14" aluminum plate with a series of 10-32 tapped holes for using cam type clamp screws to hold down work pieces. The cam screws work very well. The plate should be mounted directly on the mill table to maximize rigidity. This is a useful addition to our ever expanding tool collection.


7/17/2007 Our new Proxxon IB/E high speed spindle mounted to the micromill head. This was purchased from Little Machine Shop. The T-Tech spindle we used before was only good for very light milling. The Proxxon 100watt, 20,000RPM spindle has alot more torque and has already milled out some really nice parts for us.

Tramming Disk

7/22/2007 Made a tramming alignment tool to quickly tram the Proxxon spindle. I drilled a undersized hole and tightly pressed a 1/8" shaft (used a broken carbide bit) in a aluminum round disk with a vise. The 1/8"shaft was chucked in the mini-lathe and the bottom of the disk was cut flat, smooth and perpendicular to the shaft. This idea was from Little Machine Shop which sells a similar but larger diameter tool to help tram mini mills.

Micro Mill Servo

Z axis servo

2/5/2012 Its been a very long time since I updated this Micro Mill page but this is what the mill looks like currently. Some time ago, we changed the stepper motors to servo motors on all three axis using our UHU servo drives. The UHU easily drives the mill over 100IPM rapids. The timing belt on the Z is 4.5:1 to give the Z ballscrew plenty of torque to move the mill head. The X and Y servo are direct drive to the original 20TPI leadscrews.

4th axis

2/5/2012 This is our 4th axis rotary drive. 276oz-in stepper connected to a harmonic gear drive purchased from ebay. The Harmonic gear drive is a zero backlash unit with very high torque. A 3 jaw lathe chuck was mounted on the end of the harmonic drive. Its is a very simple and accurate rotary axis for the mill.

Some example text engraving and aluminum bearing mounts made on the cnc.

Milling out some bearing mounts. Material is 6061 AL, end mill is 1/4" Carbide. We taped some paper towels around the mill to keep the chips contained and not on the floor. It is a bad idea to use a drill chuck to hold endmills. This picture was taken before we received our end mill holders and MT2 collet set.

Plastic engraving example. Mill does a much better job on plexiglass. The plastic on this project box is a bit soft. We filled in the engraved text with black ink.

A test engraving on a 3" x 5" block of MDF using a .031" diameter endmill.

My first 3D baby picture carving in cherrywood. Need to decrease the step-over to enhance the detail and make the carving a bit deeper.

The mill also does pretty decent metal engraving. The brass plate is .75"x3"x.125" thick. The bit used is a carbide .125" 60degree v-bit. The depth of each letter is only .025" deep.

Made a fixture mounting plate out of a flat piece of 6061. Size is 4.5" x 5.75" with a series of 10-32 tapped holes. We normally use double stick tape to hold down small parts but sometimes the metal parts get hot when milling causing the glue on the tape to loosen. Using step blocks is a more secure way to hold them down. It is much easier to clamp the mounting plate on the vise than to use the mill table itself. I hate removing the vise from the table and then having to square it back up again when done.

This is our CNC converted Micromill milling out a 3" diameter pocket in MDF. Using a 3/8" diameter end mill, 2000RPM, cutting at 10IPM. Pocket depth is .1"

This is our CNC converted Micromill milling out a 13" aluminum battery holder bracket for a E-Bike. This is the largest piece ever cut on the mill. It uses the full X axis travel of the extended table.