A friend has his own CNC router; he built it himself in 2009 and has been upgrading it ever since – though it’s been a while since it was last used. I’m helping get it running again, and help improve it further to cut a pair of speakers I’ve designed.
What follows is part of a series of posts around making things with a CNC machine; I was compiling notes to understand everything required, and thought I might as well blog the notes.
We’re now making test cuts, so we have to pick the right speeds (spindle RPM) and feeds (gantry movement, mm/min) for various material and cutter combinations.
The first cut we made “worked,” but ruined the tool! Our rough guess of speeds was clearly lacking. We therefore had to do some research to understand the problem; I figured I may as well put that information in a blog post.
Chip load is the average thickness of material removed by a tooth in a single revolution.
Optimising chip load is the key to clean cuts and optimal tool life. The chip load should be the right size for a given situation – not dust but shavings; this is because the shavings can carry heat away from the tool – there’s a lot of heat generated due to the friction; hundreds1 of watts need to be dissipated without heating up the tool.
Most tools datasheets specify a chip load assuming a depth of cut (DOC) equal to the tool diameter.2
Anecdotally, I’ve heard of several people attempting to approach their first cut “conservatively” but ending up with a burned tool. Rational thinking may conclude that cutting with a low feed rate (the linear speed at which the tool moves) would be safe; whilst it’s true this will reduce the load on the machine’s gantry, it can result in the inability to dissipate the heat as the shavings are too small – dust – so the tool burns.
I like to have an intuitive understanding of the variables before thinking about a formula, so before I cover the equation I made this table:
|↑ Increase||↓ Decrease|
|Spindle speed (RPM)||↓ Less chip load; more tool wear, more heat. Could melt/burn||↑ More chip load; less tool wear, less heat. More gantry load|
|Feed rate (mm/min)||↑ More chip load; more gantry load, more cooling. Could snap tool or judder..||↓ Less chip load; less cooling, less gantry load|
|Number of flutes||↓ Less chip load; more gantry speed required. Less chip clearance||↑ More chip load; less gantry speed required. More chip clearance so deeper cut possible before jamming|
|Depth of cut (aka DOC/ADOC)||• Chip load technically unaffected more spindle/gantry stress. Rule of thumb: Make depth of cut equal to tool diameter. Less chip load needed for significantly deep cuts (multiple D).||• Chip load technically unaffected less spindle/gantry stress|
|Width of cut (aka WOC/stepover/RDOC)||• Chip load technically unaffected -- cut width of D/2 to D assumed||• Chip load technically unaffected but chip thinning can occur if cut less than D/2, more chip load needed.|
|Diameter of tool (D)||• Chip load technically unaffected more spindle/gantry stress. (More chip load needed for larger D)||• Chip load technically unaffected less spindle/gantry stress. (Less chip load needed for smaller D)|
Depth of cut and diameter of tool don’t technically affect chip load – chip load is one dimensional. Of course the chips would be bigger if either is increased, just not longer. However – generally larger the diameter of the tool, the greater the rated target chip load – meaning you will have to increase feed rate or decease RPM. See my later section on this.
What can seem counter-intuitive: increasing the feed rate can decrease heat and extend tool life. This is because the chip load is greater, so more heat is removed. So really, you might want as high feed rate as possible with a compensated spindle speed – in reality, you’re up against the limits of the machine and tool. The tool will have a maximum specified deflection before snapping, and the stepper motors that move the gantry3 will have a maximum practical feed rate.
Straight from Wikipedia:
FR= the calculated feed rate in inches per minute or mm per minute.
RPM= is the calculated speed for the cutter.
T= Number of teeth on the cutter.
CL= The chip load or feed per tooth. This is the size of chip that each tooth of the cutter takes.
Of course, this can be re-arranged to make RPM the subject:
This begs the question: what specific value of chip load do we want? Most non-cheap cutters come with a data-sheet specifying the range of chip load at a rated RPM range. However, cheap tools don’t. Therefore a rule of thumb is required. Here is a table with some rough values, courtesy of machiningdoctor.com:
|2||.01 - .01||.01 - .01||.01 - .01||.01 - .01||.01 - .02||.02 - .03|
|3||.01 - .02||.01 - .02||.01 - .03||.01 - .02||.02 - .03||.03 - .06|
|4||.02 - .03||.01 - .03||.02 - .03||.01 - .02||.02 - .04||.04 - .08|
|5||.02 - .04||.02 - .03||.02 - .04||.02 - .03||.03 - .05||.05 - .1|
|6||.02 - .04||.02 - .03||.02 - .05||.02 - .03||.03 - .06||.06 - .11|
|8||.03 - .05||.02 - .04||.03 - .05||.02 - .04||.04 - .07||.07 - .13|
|10||.03 - .06||.02 - .05||.03 - .06||.02 - .04||.04 - .08||.08 - .15|
|12||.03 - .06||.03 - .05||.03 - .07||.02 - .05||.05 - .09||.09 - .16|
More things to ensure:
Something to consider is how much of its rated power a CNC machine is able to use. Given the torque curves above, an VFD induction+stepper machine is at its weakest when at max feed rate and lowest spindle speed.
As a rule of thumb, the maximum usable feed rate may be half of what the machine is capable of. This is because stepper motors have a negative torque curve – more speed, less torque. Half the max feed rate is a good place to start. Bear in mind that the machine won’t cut as fast as the set feed rate all the time – only on straight edges; detail will be slower.
We decided on a 2-flute 6mm straight up-cut bit for roughing. Here’s the first, untested RPM calculation based on a guess at the CNC machine’s max speed and a middling chip-load from the table:
I know the spindle can operate from 4,000 to 24,000 RPM.
Note that the chart has a chip-load range. I presume the optimal settings are somewhere within that range for a given material/tool – perhaps the tool will perform OK anywhere within that range, I don’t know, but we should choose feed/speed values such that we can explore the whole chip-load range without exceeding the limits of the machine.
Based on a tool data-sheet I’ve seen, I gathered that MDF needs a higher chip load than plywood – nearly 80% more.4
Also, perhaps we should choose values that allow for some reduction in feed rate (and chip thinning) that will occur with some geometries. Note that some adaptive CAM milling tool-paths will compensate such that the chip load remains more-or-less constant.
In any case, we have 3 constraints5 and a linear formula. This seems like something suited to linear programming. There are python libraries with implementations of LP solvers – SciPy and PuLP; perhaps I will make one later.
In the mean time, we can got somewhere close by hand, or use various apps/web calculators. One that stood out to me was brturn’s optimising feeds and speeds calculator – I bet it uses linear programming.
Let’s do it by hand, and get somewhere close. What happens if we put the lower range of the chip load in?
That’s too fast. Let’s reduce the feed rate.
That’s just under the maximum theoretical speed of the router. The right ball pack. What about the higher range of chip load?
Ideal – 1400 mm/min will allow us to vary the RPM from 12,000 to 23,000 RPM in theory moving over the whole chip load range without hitting constraints.
If we choose MDF, we’d need a higher chip load so would probably want to be in the lower RPM range. For plywood, the higher end.
I filled in the calculator to compare my values. Here’s the calculation, – the result was around 13,000 RPM at 1200 mm/min. Close to my conclusion!
Note that some tool data sheets will specify the maximum feed rate. I am assuming the feed rate is OK.
12,000 RPM will probably not result in the max. torque for the spindle, and I have no idea how the machine will handle the 1400 mm/min feed rate.
The formula serves as a starting point. In real life tools, machines and material are imperfect. The best way is to see what happens in practice, and iterate to the optimal settings based on sound, vision (chips) smell and finish.
The tool should not scream in the straights, for instance. Nor should it blacken anything, or smell like burning. If that happens, increase feed rate or decrease RPM. The DOC may also be varied.
The chips should big nice and big – definitely not dust.
One approach to optimise the feed rate is to increase until the finish or performance is too rough (i.e. visible chattering) then reduce by 10%.
I recommend you read the instructions for the calculator I linked earlier.
As a DIY user, optimisation doesn’t matter quite as much as on a production line. We’re only ever making a handful of items for a given design; in a commercial setting optimisation for cycle time is most important. It could mean using more expensive bits, even deliberately wearing them faster.
For inexpensive DIY CAM software, optimisation may be primitive but that’s fine. Saving 10% on machine time or tool life is irrelevant.
If you’re not a DIY user, you may want to look at the research around HSM (high-speed machining) – this is optimising for MRR (material removal rate). The calculator I mentioned has a new, beta version specifically for HSM.
There are straight end-mills (commonly used with hand routers) up-cut, down-cut and compression-cut. Each is a compromise. Here’s a summary:
|Straight cut||Cheapest, and common due to freehand routers||Worst surface finish. Weaker|
|Up cut||Good top surface finish, readily available and inexpensive. Can plunge||Can tear top surface causing delamination, can lift work piece|
|Down cut||Pushes workpiece into bed, great for thin/sheet materials||Cannot plunge/drill, can tear bottom surface|
|Compression cut||Optimal top and bottom edges possible, can plunge. Pushes down.||~3x the cost, needs compression aware CAM tool path. More powerful machine required. Not good for plastics|
We’re trying an up-cut bit for my speaker design which is predominately a 3D-profiling operation meaning the cutter will spend most of the finish on the top surface. This could result in a poor finish as a result, but it’s using readily available bits and minimal cost. If a more exotic bit is needed, so be it – we didn’t want to prematurely optimise.
Generally, tools have one to three flutes. Based on the chip load formula, you need proportionally more feed rate for a given RPM, or less RPM for a given feed rate. If the feed rate, mechanical strength or stepper torque is a limiting factor, you (maybe I) may want to consider using a single fluted tool.
There are many types of end profile – right angle, bull-nose, ball and v-cut. Given we want sharp profiles and pockets, a square bit makes sense. Perhaps there’s another tool we could use for a better finishing operation but I suspect a square bit is more than good enough.
The basic equation does not take into the effects of varying the depth of cut, nor the width of cut. Mostly, it’s not even mentioned in guides or the calculators out there.
However, as I touched upon earlier, both can affect optimal chip load for a given situation.
I had assumed, based on the equation that it did not matter. It was only when I studied the excel formula in the spreadsheet in a video by Eric of Fabber6. To my surprise, it wasn’t using the chip load formula I was familiar with; instead, the chip load was reported to be proportional to the DOC over the tool diameter.
This confused me until I read the mellowpine DOC machining article:
[..] However, increasing the depth of cut to twice the tool diameter results in a roughly 25% decrease in the optimal chip load for that process.
This means that if the DOC goes up, the target chosen chip load must go down. Another approach is to define “effective chip load” where we try and find the chip load for a constant DOC (at D). That’s what I think Eric’s formula is doing. It might explain why some people have reported more luck with his calculator vs others.
To put it in the equation:
Making feed rate the subject again:
Further down that rabbit hole, I discovered the theory of chip thinning. If the width of cut is less than D/2, the chip load equation does not apply and the technical chip load must be increased. Other end profiles such as ball-nose also cause chip-thinning.
I won’t go into detail about chip thinning here, however here’s a useful article/calculator to get you started if you’re interested: https://www.machiningdoctor.com/calculators/chip-thinning-calculator/.
Probably nothing. The in-practice alterations to feeds/speeds will likely get you to a good enough setting. It’s worth bearing mind that the feed rate should likely be increased if the WOD/DOC is reduced significantly.
I suppose finishing operations, by definition, aren’t removing much material – low WOD and DOC. Increasing feed rate to compensate is probably necessary.
Expensive CAM software can do this automatically.
Chip load is extremely important when dealing with CNC routing. The calculations are easy, if counter-intuitive; they serve as a starting point; rely on practice to achieve optimal settings.
It’s also not necessary to obsess over finding the exact optimal feeds/speeds and CAM strategies. Good enough is good enough for DIY use.
Warning: I’ve written this all after trying a single cut. I will update the article with more practical experience in due course.
I presume this, as a typical spindle may be rated for a few KW; some of this goes to the tool! ↩︎
Unless you have fancy servo motors. ↩︎
Lazy journalism! ↩︎
Well, more than 3. Deflection, for instance. WOC, DOC are also factors. ↩︎
Thanks for reading! I'd appreciate it if you could submit/upvote/discuss this article somewhere on Hacker news, Twitter, Hackaday, Lobste.rs, Reddit and/or LinkedIn.
Please email me with any corrections or feedback.