How NOT to make a CNC Mill (part 2)



In the previous post (how not to make a CNC Mill Part 1) we covered the mechanical beginnings of our humble CNC.  This post, we go into a bit more detail on the exact problems encountered and the solutions.

The mill needed some electronics.  A few A3982 boards were whipped up and chemically etched to provide control electronics.  A printer cable was broken out into some perph board as a way to get at the signals on the parallel port of the PC.


So here it is, a listing of (nearly) everything that went wrong and most of the fixes that were tried to remedy the issues.  Hopefully, this list will help others to quickly identify problems and evaluate several different solutions.

Leveling the Bed

The Problem

After everything was put together, the AXIS logo was drawn with a pen.  The first thing that was notable was that the bed of the mill was so crooked that the pen being used didn’t even come into contact the length of the logo.

So, in order to even run the first test – drawing the “AXIS” logo, the bed needs to be leveled out.  Since the axises were mounted by drilling holes into MDF, all of the sides can be re-drilled and re-cut, or we can go about it in a different way.

The Fix

Instead of rebuilding large portions of the mill, a “sacrificial” bed will be used.  The sacrificial bed will attach to the main bed and a large diameter cutter will be used to mill out as much of the surface area as possible, down to a depth that provides a nice level surface so the plane of the bed is parallel to the linear rods.



Z Axis Perpendicularity

The Problem

Now that the general surface of the bed is now parallel to the X and Y travel, the Z access is not completely perpendicular (evidenced by the ridges in the finish).  To much of this type of misalignment will cause issues when trying to do 3 dimensional milling and also drilling through thick material with small diameter drill bits.



The Fix

The way the dremel mounts were designed is the problem, but also part of the solution.  There is enough slop in the screw holes that a large diameter cutter can be chucked up and put against a perfectly square block for reference.  This allows to visually inspect for misalignment (which works surprisingly well) and make the necessary adjustments.


If you were actually in a situation where Z axis perpendicularity really mattered (like real 3D milling), this method might not work as well, but seems to get us into the ballpart so we’re not breaking off the 15 mil diameter bit when drilling vias.

Z Axis Slop

The Problem

Now that the misalignment(s) have been minimized to a point that is workable, it’s time to try mechanically etching a board.  One of the things that really needs to be stressed here is that the engraving bit is only going 5 mils into the surface of the PCB (slightly less than the diameter of a human hair).  Any variation in this height results in different cutting width.  As the board was being run, a definite problem was aparent, there was visible flexing of the Z axis, which means that all bets are off – we’ll never hold the 5 mils if there’s visible flexing of anything.

This probably wasn’t an issue with the orignal Mantis 9 design for two reasons: the plywood used was likely more rigid, end-mills were used for milling PCB’s, not engraving bits.  This greatly relaxes the requirements for a dead-accurate z-axis since depth isn’t nearly as important.

The Fix

The first issue that had to be remedied was the slight flexing the z-axis had (even when stationary). As you can see from the photo, the threads that were put into the MDF weren’t very secure. Evidently, MDF is quite strong as long as holes are put in perpendicular to the face. However, when holes are placed parallel to the primary face of the board they tend to split layers apart, resulting in very insecure mounting points.  This insecure mounting coupled with a slight flex in the MDFwas the primary culprit of the z-axis flex.


The relatively simple fix for this was to add supports along the bottom of the MDF. The supports are secured with one screw through back top of the MDF to supporting pieces of plywood. There are also two additional mounting points with threaded inserts on the front of the new plywood support pieces. These additional mounting points provide a secure connection for the back of our Dremel mount.  After the additional support was installed, the flexing went away.



The Problem

One of the more curious looking problems to find with CNC’s is backlash.


The way this mill converts the rotational motion of motors into linear motion on each axis is with the lead screw and a nut.  As the lead screw rotates the nut is fixed to an axis and depending on the type and quality of the nut, there are different amounts of clearance between the threads of the nut and the threads of the lead screw.  It’s this clearance that creates backlash.  As the lead screw rotates in one direction the threads are fully engaged with the threads of the nut and the lead screw. However, when the lead screw changes directions if there is any clearance between the threads, the lead screw must first rotate enough to take up that clearance. At this point, the threads will engage again and the nut will begin to travel along the lead screw again.  It is this amount of clearance that leads to backlash, because as the leadscreen changes direction, the axis doesn’t immediately follow.  This is most obvious when milling circles – they wind up having points.  In the picture below, the backlash was so bad that entire traces disapeared.


The Fix

Initially, the nuts used on this mill were brass.  The nuts traveled extremely easily along the lane to the lead screw, but the problem was that there was a small amount of free movement laterally (the clearance discussed above). This movement translates into backlash, so the lateral movement needed to be eliminated. There are several ways of going about eliminating backlash. However, in this circumstance the simplest method was to create a custom Delrin nut.  Delrin is an engineering plastic that machines very similarly to aluminum. The advantage in using Delrin is that has a very low coefficient of friction – therefore it slides along lead screw very well.  Normally, in order to create a custom tapped nut you would need an ACME tap.  However, in this spirit of keeping costs down a homebrew tap was created (a separate


article details creating the custom Delrin nuts).  The downsides to using these Delrin nuts is that eventually they will wear. There are several commercial alternatives that should last much longer and perform as well or better.

The most common type of anti-backlash nut found on DIY mills is essentially 2 nuts pushed apart by a spring.  This spring forces the two nuts apart taking up any clearance between the nuts of the thread and the lead screw.  Since there is no space between the threads in the lead screw and the nut, when the lead screw changes direction, the nut (and axis) immediately follows.

On large professional mills, an entirely different type of technology is used called ballscrews.  Ballscrews fixed both the issue of backlash and friction. With ACME lead screws and nuts up to 40% of the energy put into driving the leadscrew is dissipated as heat due to friction. Ballscrews, however, are around 90% efficient because the nut is essentially ball bearings.  Unfortunately, ball screws are out of the range of most DIY mills due to their high cost.

PCB Warping

The Problem

Another issue was PCB fixturing.  Since our goal is 10 mil trace and space the PCB needs to be well secured to the table while milling.  There are several methods that seem to be popular. Some include taping the PCB to the milling table, others actually superglue the PCB to the milling table in order to keep it flat and secure. However, our milling table is MDF – this won’t fare too well against superglue and acetone.  Duct tape was tried first – this didn’t adhere well enough to the MDF.

Attempted Fix 1

Next, clamps were used to hold the PCB from the edges.



These clamps secure the PCB quite well, the issue was that they provided enough clamping force to warp the center of the PCB, forcing it upwards.  A different clamping method is going to be needed – one that Will securely hold the board in place and also hold it flat against the table.

Attempted Fix 2

Some of the more expensive ($10k-$20k) Mills use vacuum tables. These vacuum tables solve both problems of securing the PCB in place and holding it flat against the milling table.  A feeble attempt was made to create a vacuum table using plastic and RTV. This did not work out well.

This vacuum table leaked too much to to be useful and required too much airflow.  It’s also hard to tell if this vacuum table would work well when holding the PCB and drilling since holes in the PCB will create leaks and reduce the amount of suction.  Given enough airflow, these problems can be overcome.

The Fix

Eventually, positioning pins were used to secure the PCB and a constant pressure foot was used to flatten the PCB to the milling table. This pressure foot puts enough pressure around the milling bit too compress the PCB, pushing it against the table and providing a nice flat surface for milling, which greatly reduces the variance in cutting width.  The disadvantage to this method is that the PCB material needs to be slightly over-sized in order for the pressure foot not to run off the edge. If the foot runs off of the edge of the PCB during milling, as the foot travels back onto the PCB it will have trouble going over the steep edge of the PCB an either cause a discontinuity in the trace or cause missed steps.


Lead-screw Alignment

The Problem

Because of the inaccuracies involved in manually cutting the sides of our mill, there was a misalignment between the motor mounting holes and lead screw holes.  This misalignment results in either a reduced running speed or occasional missed steps – neither of which is desirable.

Attempted Fix 1

Traditionally, shaft misalignments are taking care of by shaft couplers. There are several different types of shaft couplers, each having their own merits. Again, in the spirit of trying to get by with what was on hand, some homebrew shaft couplers were thrown together using different diameters of tubing.  These worked surprisingly well – in fact the y-axis is still using one of these couplers successfully. However, the x-axis was a different story – there was enough of a misalignment here that the tubing didn’t work out so well.

Attempted Fix 2

shaftCouplerHelical  shaftCoupleHelicalCompressed

Ebay to the rescue!  Search eBay for CNC shaft coupler and you’ll find quite a few results – most of which are directly shipping from China at what seems to be a very reasonable price.  The problem with these couplers is that they did not work well for CNC machines. After getting our backlash issues straightened out they came back after installing this type of shaft coupler. The spring action of these chefs couplers is not only present radially, but also axially – they stretch and compress as the lead screw changes directions!  This is obviously unacceptable.  There are other types of staff customers that are made specifically to take up radial misalignments, but none were found in an acceptable price range.

The Fix

In this case, the fix was to eliminate as much of the misalignment as possible and then fabricate a very simple rigid shaft coupler.  This has the disadvantage of transferring what’s left of the misalignment into force.  Below is a picture of an off-the-sheft rigid shaft coupler and a DIY version, which has the correct bore sizes required for this application.

shaftCouplerRigid  shaftCouplerRigidDIY

Mysterious Inaccuracies

The Problem

After getting all these problems straightened out, it was time to start trying to make something meaningful. A few different small engraving projects were done on the mill.  As long as the project was small and the total distance was small, things worked out just fine. Problems started to pop up when drilling holes in PCBs – which had a fair amount of travel across the surface of PCB. There was also very peculiar behavior when attempting to mill traces on PCBs – they were all over the place.  After a while these inaccuracies were tracked down to missing steps. This was done by drilling two holes several inches apart many times. Any missed steps translated into a hole being drilled in a slightly different location.  Now, the question is “Why are we missing steps?”  Noise was once suspected issue. The motor wiring was cleaned up, but to no avail.  Different drivers were being used to drive the X axis and Y axes. Since the Y axis did not appear to be missing steps and the x-axis was, the X axis driver was placed on the y-axis. The y-axis then began to miss steps.  For one reason or another, the A3982 stepper driver had some major issues and was no longer reliably driving the stepper.  These chips have a tendency not to like being back driven (moving the axis when the chip is powered down), which was likely the cause of the failure.

The Fix (hopefully)

One of the long overdue items on the to-do list was to make a proper driver board for controlling the home switches and stepper motors of the mill.  Slightly different drivers were chosen, the A4982, which are slightly less expensive than the A3982, but provide better micro-stepping capability and the same amount of peak current drive.  You can read about the design on the CNC Controller page.  There’s also a wiki page which details some of the early goals of the CNC driver board.

Other Future Issues

The Problem

Eventually, the runout of the Dremel is probably going to be an issue. An attempt has already been made to minimize runout by adding some paper around the spindle bearing – only time will tell if this has worked or not, but only after the mill is up and running again!

The Fix

A “real” solution would be to get a better rotary tool (i.e. Proxxon) or to fabricate a custom spindle. But we’ll see how the Dremel plays out first.

Posted in CNC Tagged with: ,
  • Jeremy

    That’s a good idea to fix the Z-axis perpendicularity.  I haven’t paid that much attention to it on mine.  As for fixturing stuff to the bed, you might like this solution I cam up with using wood clamps: – as you can see, I’m still using my Dremel 200 on the router at this point!

    • bamos

      Z axis perpendicularity probably isn’t too much of an issue if you’re using a kit – more-so when everything is hand-cut.  The T-slot you have linked on your site looks like it should be decent, the clamps seem reasonable – kind of nice to be able to reconfigure things without any tools too.

      If I was to buy something for clamping onto a standard t-slot bed, I’d probably wait for a sale on a cheap kit from harbor freight:

      I’ve used some that were similar on “real” mills and they work quite well.  My little 8-32 setup is what I happened to have on hand:)

      • Jeremy

        Oh nice, I actually have one of those (or something that looks identical) for my manual mill.  I’ve been pleased with it, but for my little CNC router I think it would be overkill.

        Nothing wrong with your setup though.  On hand solutions are obviously cheap and you don’t have to wait!

  • Jon Baker

    I think your understanding of those flexible couplers is a bit off. They are meant to have play in every axis except rotationally. You shouldn’t be relying on the coupling to the motor to keep the screw from moving back and forth. Best is to use a double bearing at one end of the shaft (ideally they should be angular contact bearings, but deep groove bearings such as skate bearings work,) and preload the bearings similar to the anti-backlash nut. If using a flex coupler on a long screw you will need at least a single bearing on the other end as well (as the coupler will let the shaft have vibrate quite a lot.)

    • bamos

      Thanks for the advice. I haven’t paid too much attention to the details of higher end linear positioning systems. Since this was largely a junk box build, I was trying to keep purchased materials to a minimum on the mechanical side (which of course is non ideal). A machined lead screw pressed into a bearing would certainly be better than what you see above!

      • imran

        608ZZ bearings are like $0.40. That and a shaft lock collar( $1.00 or so ), and you’re good to go with axial issues. A 5201-2RS bearing would really do the trick. $9.00… Use it for high-load applications ( say 1,000 pounds of force. ) The 608’s should do you just fine for PCB mill…

        • bamos

          Thanks for dropping the part numbers, I’ll definitely take a look at these next time I’m looking at a build – or get around to upgrading the existing mill!

  • BambiB

    Interesting to see what was tried… what worked… what failed.

    I’ve built a little CNC machine and am about to make upgrades from the Dremel cutter to a 300 watt spindle motor (~$90). Since I’ll eventually be cutting proto boards with <1mm traces, it was time to address the runout issues. I tried other approaches – building my own spindle – but in the end, I think this is one cost you just have to eat if you want the level of precisions I'm seeing.

    Surprisingly, the Z-axis, which ran a piece of threaded rod through a piece of tapped nylon block gave sub-mil accuracy. I suppose that's because there's no backlash issue in the z-axis. The bit is retracted after every cut, then driven back beyond backlash limits before it re-engages. The nylon does wear, and I'll probably install a new block when I rework the axis (and start using dry-teflon lube – available at Lowes.)

    On perpendicularity – I don't see that as a particular problem for PC boards. The copper is only about 1-3 mils thick for most. Even through-holes with a whopping 10-degree error would only displace holes by about 10 mils from one side to the other. That's still only about 1/3 of a hole diameter. And it's consistent – not as if every hole did a drunkards walk of 10 mils.

    One issue I've been dealing with is speed of cut. Turns out that you can cut almost anything with any (carbide) bit if you just go slowly enough. I was manually driving the cutter around on a piece of scrap PCB, when I accidentally gave a g1 y.5 f2 command instead of g1 y-.5 f2 with a .8mm bit. The cutter took off from the edge of the board, straight into the mild steel border I use to fixture two sides of PCBs. I cringed as I envisioned yet ANOTHER broken bit – but to my surprise, the bit cut right into the steel. More research on the topic indicates that cutting speeds of 1-3% of bit diameter per revolution tend to preserve bits (with speeds closer to 1% for smaller bits). (I'm talking end mill bits. The various angled bits may buy you a little more speed – but I've had mixed results.)

    The way to figure cutting speed is to multiply spindle speed by bit by 1%-3%. diameter. So a 6000rpm spindle with a .8mm bit calls for motion speeds of 1-3% of 6000*.8mm or 48 to 144 mm/min. (1.8 to 5.7 inches/min). Experimentally, this has worked out well so far. I noticed that running a .8mm bit at 6 ipm was "chancey", while 4-5 ipm was smooth.


    For a .1mm bit, the calculation would be more like .01*.1*6000 or 6mm/minute – a positively glacial .23 ipm. That's why higher spindle speeds are good – a 12000 rpm spindle doubles the cutting speed… up to a whopping half inch per minute. Remember, we are talking about PROTOTYPE boards. I don't really care if it takes two hours to cut a fine-pitch board. If I need more, once the design is confirmed, I'll send it off to a board house.

    • bamos

      thanks a lot for sharing your experiences! Buying a ready-made spindle (especially for $90) seems like a good idea for the accuracy you’re going for (especially with 0.1mm end-mills). You mention “spindle motor”, does the $90 include all the bearings/collets, etc? I’d be curious to hear about what works for future upgrades.

      Your point regarding backlash on the z axis is well taken – as long as it’s constant it wouldn’t really matter too much since the work isn’t being done in true 3D.

      The perpendicularity issue isn’t all that much of an issue for PCB’s, unless it’s bad enough that the smaller diameter drill bits (.4mm dia) start breaking because they’re being side loaded. However, when cutting thicker materials (like cutting through thick wood) – the lack of squareness becomes more of an issue since the ending dimensions are off.

      I really appreciate the speed/feed recommendations for the tiny end mills – that will definitely come in handy!