Saturday, January 7, 2023

Building a CNC Mill



It has been a while since my last update. I graduated college and went on a 2 month climbing road trip across the US then started my new job at Pattern Labs. Now that I'm all settled in I want to start building things again but first I need to get my home lab setup.

One of the coolest machines that I really want in the home lab is a CNC mill. I got too used to having one around at college for all of my projects and now I want the ability to mill reasonable sized parts at home for battlebots. There are a few shops I can send parts to like Xometry but if I
want to make a lot of unique parts I think the cost will quickly start adding up. The leadtime is also hard to work with for quickly iterating on designs.

My criteria for choosing a machine is:

  • Under $4000 total cost
  • Can use a 3/8" endmill in aluminum
  • Can be moved by one person (disassembly allowed)
  • Minimize design time (I want a tool not a project)
  • At least 12"x8"x8" cutting area

I found the PM25-MV mill which has a CNC conversion kit at arizonacnckits.com. The machine weighs 300lb but the bed can be separated from the column which breaks it down into two ~150lb pieces. That is at the absolute limit of what I can move my myself but machine weight roughly correlates to rigidity. I want all of the rigidity I can get if I want to take heavy cuts in aluminum (or possibly steel) with a 3/8 endmill. The kit removes the lead screws and replaces them with ball screws and stepper motors which reduces the amount of design I have to do.

Since the PM25-MV is a little expensive for machines in that weight class I opted to use the same kit with a knockoff WMB25VB machine. I saved about $800 here which felt good at the time but if I was to build a machine like this again I would buy the brand name machine. You get what you pay for and I was not impressed with the build quality of the knockoff.

I followed the recommendations for the conversion kit and got nema 24 steppers for the X and Y axes and a nema 34 motor for the Z. The only specialty electronics I needed was a mesa card for linuxCNC. I got a 7i92 to control the machine over an ethernet connection since I was not sure what computer I would be able to find and don't want to mess around with parallel ports. I got a deal on a surplus server desktop to run linuxCNC for $50. It has a quadro A4000 for some reason which might be fun to play around with in the future for training ML models or something while I'm not using the machine to cut parts.

After a 3 month shipping time on a boat the WMD25VB milling machine arrived! I had it delivered to my office since I don't have a loading dock at home and discovered that moving a 300lb machine by myself is brutal. I ended up getting some friends to help me load and unload the machine into may car and move it into the lab. I still think I would be able to rig it myself if I was determined enough but it would definitely take me a full day to complete.

I built a base for the machine out of 4x4s to hold it at knee mill height and cast a 100lb concrete slab for the machine to bolt to. I'm hoping that more mass will keep cut vibration (and noise) down. It isn't my best work but it does the job .

Next I stripped down the machine and cleaned / deburred all surfaces. The machine shipped coated in grease to prevent rust while shipping. While cleaning that off I noticed some sharp corners that I think could break off and getting into the ways. That would be a disaster if the machine is moving!

Installing the kit was pretty straight forward but I did hit one issue: the knockoff machine I have has a longer Y axis than a brand name machine. This is a good feature for later but I did have to get a longer lead screw from Dave at Arizona CNC Kits. It was a straightforward process to get a longer screw and install it in the machine. I drilled and tapped some limit switch mounting holes and the machine was mechanically ready.

Then I had to wire the machine. I 3D printed some E-chain to hold wires and prevent them from getting caught in bad places and an electronics box to hold some perfboard circuits for limit switches and the spindle speed / direction control. It took me a while to figure out how the mesa card pinout can be configured / which pins to use but after about two weeks I had a machine that works. I grabbed a plastic toolbox from Home Depot to hold the mesa card, power supplies, and stepper drivers and printed some 'cable glands' to make a nice case.

Finally I want something to protect the ways from getting chips in them while the machine is cutting. I thought about using bellows but the bellows that came with the machine limited the machine travel. I also don't like how hard bellows are to clean because chips get suck deep inside of them. I found that some people use vinyl curtains with the ratcheting mechanism removed for auto-retracting way covers and I liked the concept. I had to design custom parts to hold the rollers in place. With my design the Y axis is not limited and I can maximize the work area. I am slightly worried that hot chips can burn through the vinyl but haven't had any issues so far.


The mill is working well. After backlash calibration I am able to hold about +/- 0.002" tolerances without trying and tighter if I am willing to do tool diameter offset calibration. I think that the biggest sources of error are the ballscrew alignment, ballscrew mount rigidity, and backlash in the box ways. There is more work that can be done here to make the machine more precise in the future by making the parts from the CNC conversion kit more rigid and tuning the gibs but I want to start using my new tool before it gets taken apart for more upgrades.