Successful Polycarbonate Plastic Engraving Session

The first test run for CNC engraving was done on a piece of MDF. Mainly because the piece was already in the machine, surfaced, and ready to go. It was also a forgiving material in case of mistakes, but MDF doesn’t show engraved details very well.

The next session increased the difficulty level: now we have a piece of scrap polycarbonate plastic (“Lexan”) for our next engraving test. This material is interesting because it has different properties than PMMA (a.k.a. acrylic.) The latter is a popular material for laser cutting but also very brittle, very vulnerable to cracking under stress. Polycarbonate plastics are much more robust and a better choice when physical strength is important in a project.

Acrylic is also popular for laser engraving projects, but polycarbonates do not engrave or cut easily under laser power due to its different properties. It is not particularly friendly to CNC machining, either, but we’ll start with an engraving project before we contemplate milling them.

Thankfully the first session was a success, and illustrates some of the challenges of working with such materials. The toughness of the material also meant the little strings of cut chips want to remain attached to the stock, making cleanup a hassle. Upon close examination, we saw the engraved groove is slightly deeper on the left side than the right. Proof our scrap MDF working surface is not flat which was not a surprise, but “flat enough” within 4-8 thousands of an inch (1-2 sheets of normal office paper) which was better than expected.

Even with its imperfections, performance on this test indicates the machine is capable of engraving on materials we can’t use in the laser cutter. That might be useful, and a good example of how we can still learn lessons on this machine despite its flawed Z-axis and other problems. We should still fix them, of course, but the machine can already be useful while we work on those improvements.

A Vortex (or Cyclone) Separator Appears

After each of the test cut runs on our project CNC, I’ve used the shop vacuum to clean up the mess afterwards. However, this does not help with the mess during cutting, the most important part of which are our machine’s ways and drive screws which are vulnerable from debris. What we really need is some kind of collection system that we can run while the machine is cutting.

One problem with this requirement is the fact that vacuum filters quickly clog up when used in this manner. The standard solution is to separate bulk of debris from the airflow before it flows into the filter, thereby extending life of the filter by reducing the amount of debris it has to catch out of the air. Since this is a standard solution, many products are available for purchase. But being makers, our first thought was how we might make one for less money, and 3D printing seemed like a way to go. Since the device is mainly a hollow shell, in theory we could print one for less money in plastic filament than buying one.

However, the problem is that none of my 3D printers are well suited to printing a tall cylindrical object exceeding my printer volume. And if I should split it across several pieces, I risk introducing a gap that can compromise the vacuum and also disrupt the debris extraction airflow. This type of project is ideally suited for a tall delta-style 3D printer, so I started asking around fellow makers of SGVHAK if anyone had one of those printers.

One member did have such a printer, and asked what I wanted to print. When I described the project, he suggested that we skip the printing. Some time ago he purchased a vortex separator (*) for another project, and it is now available for this project CNC. I agree taking a manufactured unit is much easier than printing one! It is even a perfect fit with the nature of our project, which is mostly built from parts salvaged or recycled from earlier projects.

But the vortex separator is only a single core component, we’ll have to build the rest of the dust collection system.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Contamination Concern for CNC Ways And Drive Screw

Thinking over potential tasks to be tackled on our project CNC, we thought it might be occasionally useful to mill our own circuit boards. But before we start cutting bits of copper off fiberglass, we should make sure those flakes of copper won’t end up where they’ll do harm. One of the open questions involves how we should protect the ways and drive screws of our Parker motion control XY stage.

The XY stage was salvaged from an optical inspection machine, so it was not a surprise to see this mechanism has limited protection against contamination as most items under optical inspection don’t shed debris. Hence unlike real CNC mills, the ways here have no cover. On this machine they are exposed when an axis moves off center. Cursory inspection indicates the critical surfaces are those in the center facing to the side, so what we see as top surfaces are not areas of direct contact. But it’s still better to not have any contaminants build up here, because of the next item:

The drive screws have a thin metal cover to protect against dust, but the cover is opened towards the ways. When the table moves off center, there is a window for debris to fall from exposed ways to inside the screw compartment and end up sticking to the lubricant coating the mechanism. In the picture above we could see through this hole. While the screw itself is dark and out of line of sight, we could see colors of wires also living in that compartment. (They connect to three magnetic switches for the axis: a location/homing switch, and limit switches to either extreme.)

We realized this would be a problem once we started cutting into MDF and making a big mess. Powdered MDF may cause abrasion and should be kept out of the ways and screws if we can. Milling circuit boards would generate some shredded copper. I’m not sure if that would be considered abrasive, but they are definitely conductive and we should keep them away from machine internals as much as possible. A subtractive manufacturing machine like this one will always make big messes, how might we keep that under control?

Contemplating CNC Milling Circuit Boards

Another activity that we will be investigating in addition to CNC engraving is the potential of making our own circuit boards. Mechanically speaking, milling circuit boards are very similar to engraving. Both types of tasks stay within a very shallow range of Z, and would suffer little impact by our wobbly Z axis. Milling boards could involve larger tools than a pointy engraving tool, but they should still be relatively small and not drastically strain our limited gantry rigidity.

Experimentation will start with the cheapest option: blank circuit boards that have a layer of copper on one side. (“single-sided copper clad”) This will be suitable for small projects with a few simple connections that we had previously tackled with premade perforated board and some wires. For example, Sawppy’s handheld controller could have easily been a single-layer board. We would need to go to dual layer for more sophisticated projects like the Death Clock controller board, and the ambition for this line of investigation is for the machine to make a replacement control circuit board for itself.

We don’t yet know how feasible that will be. As the level of complexity increases, at some point it won’t be worth trying to do board ourselves and we’re better off sending the job to a professional shop like OSH Park. And the first few boards are expected to be indicative of amateur hour and a disaster, hence we didn’t care very much about the quality of the initial batch of test boards. They were purchased from that day’s lowest bidder and second lowest bidder on Amazon. (*)

But even though circuit board milling is mechanically similar to engraving, the software side is an entirely different beast that will need some ramp-up time. And before we start cutting metal in the form of a thin layer of copper, we need to pay some attention to the machine’s needs.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Comparing CNC Engraving Tool To Milling Tool

The decision to explore CNC engraving was so we can learn machine tool operation while sidestepping the weaknesses currently present in our project CNC machine. Projects staying within a single Z depth will suffer minimally from the Z-axis wobble imparted by our bent Z-axis ballscrew. But engraving also helps reduce impact from the lack of rigidity due to differences in our cutting tools.

CNC with cutter 80mm past motor bearing

Here’s the 1/4″ diameter endmill as it was installed in our CNC spindle. In the pursuit of rigidity I wanted the largest diameter that we can put in a ER11 collet not realizing the large diameter also meant longer length. I bought this one solely because it could be available quickly but a more detailed search found no shorter cutters. The end of this particular cutting tool extends roughly 80mm beyond the spindle motor bearing.

In comparison, the engraving tool had a 1/8″ diameter. Judging just by diameter, the 1/8″ diameter tool would be weaker. But that overlooks the fact it is also shorter, resulting in its tip extending only about 55mm beyond the spindle motor bearing. So not only is the engraving bit removing less material and placing less stress on the spindle as a result, it also has a 30% shorter leverage arm to twist the Z-axis assembly about.

Now I understand why such simple inexpensive mills and small diameter tools are a common part of modest desktop CNC mills. (*) The load imparted by such a Z-axis assembly is very modest, making it possible to have machines that are barely any more rigid than a 3D printer. (And in some cases, not even as rigid.) While our Parker XY table is far more capable than the XY stage in these machines, our Z-axis isn’t much better (yet) so we’ll stay in a similar arena low lateral load and material removal.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

CNC Exploration Via Flat Cutting Projects

We got far enough on the project CNC mill (built out of mostly salvaged parts) to make test cuts, and evaluate results. I honestly didn’t think we would get this far. Back when I first plugged in the salvaged Parker motion control XY table I had only a vague clue where I might go with it, only knowing that I will be learning a lot as I go. Now here’s a machine capable of making a decent effort executing G-code programs generated from Autodesk Fusion 360.

There was never a real solid goal for this project, no “North Star” to guide the direction nor a finish line to mark completion. I think I can now articulate the underlying goal for this project: to learn as much as I can about the world of automated machine tools with the smallest possible budget. This is why I didn’t worry overly much about imperfections like a bent Z-axis ballscrew or a Z-axis gantry lacking in rigidity: they were good enough to move forward and learn lessons.

At this point the Parker XY table, our old industrial equipment at the heart of everything, has proven to be a solid core. In contrast, our problematic Z-axis has proven to to be the weak point. We could fix those problems, but solutions all cost money. So before I pull out the credit card again, a question: are there things we can learn with excellent XY axis but lackluster Z?

The answer is yes: there exists CNC projects with exacting requirements in XY axis but much less demanding of Z. We’ve briefly toyed with one category: pen plotters. For a pen holder, it only matters that a pen is put on paper at the appropriate time and lifted otherwise. Factors like precisely square vertical alignment are not important.

Since we’ve already had some fun with pen plotting, I decided to start exploring the next step up in difficulty: CNC engraving. We will be using a cutting tool in our spindle to remove some minimal material. So while the Z-axis demands are similar to pen plotters, engraving requires a little more rigidity and precision than pen plotting. All the same toolpath generation tasks apply, so as a Hello World to CNC engraving, I engraved “SGVHAK” into the previously prepared surface. With this success, we can look at other projects we can use to learn CNC tasks with the flawed machine we have.

Evaluating Results Of Cutting Tests On Our CNC Project

Our project CNC, pieced together from stuff around the shop, has performed several very informative test cuts. Several items we’ve suspected might be potential issues have been proven as such. Our Z-axis was indeed unreliable in its vertical alignment due to a bent ball screw. Beyond the ball screw, the entire gantry assembly for Z-axis doesn’t have the rigidity to avoid tool chatter when pushing a quarter inch diameter endmill through MDF. The Z-axis rollers prone to loosening were only the weakest link in this chain, we’re confident there are additional problems lying in wait.

On the upside, some items we worried about have not become limiting factors. Using an inexpensive ESP32 for stepper motor control timing was a question mark. We knew the real time guarantees of a shared core were not going to be as precise as a dedicated real-time processor like the PRU of a Beaglebone. But we didn’t know if it was good enough. And finally, we didn’t know if the salvaged Parker motion control XY stage at the heart of this project had hidden problems that could have sunk the project. We think it might have been retired due to an electrical problem we fixed, but it might have been retired due to some other problem we couldn’t fix. Given the consistency we saw between runs, it looks like an ESP32 running Grbl is a fine match for the decades old (but still precise) Parker table.

We’ve learned a lot of lessons in the software realm as well. From configuring GRBL to switching G-code sender to bCNC to CAM parameters of Fusion 360. It feels like there are tons more to learn on the software side of CNC projects, so that’s where the focus will remain for the near future. It’d be wonderful to have a rigid and dependably vertical axis capable of swinging large tools, but even without, there’s lots to learn using what we’ve put together to date. The next area of exploration will be CNC engraving.

Project CNC Mill Is Not Square, And It Shows

After our most recent test cutting session, I wanted to prepare our scrap MDF stock for the next test by milling off everything earlier and leaving a flat surface. And like most tests, there was an unintended and interesting data point: The surface is not flat. Not only that, it was the worst “not flat” yet. Our first cutting session did not result in a flat bottom surface, either, but because there was so much tool chatter, it was hard to distinguish one contributing factor to another.

First cuts chatter fest

The second cutting session left us a very smooth bottom surface. Since we eliminated the majority of chatter in this session, we thought chatter was a contributing cause and life was good.

Light dust indicates good repeatability

But with the third session’s results in hand, we now know it wasn’t quite that simple. The nasty tool chatter has been mitigated, but the bottom surface is poor. The ridges are consistent with a cutter tilted from vertical axis.

The square-ness of this machine was always a question mark, because it was only set up by eyeballing against a machinist’s square. This is better than most drill presses, but barely counts as a starting point for a vertical mill. MDF is more forgiving than machining metal, so the fact we have three clearly different grades of surface finish means something changed drastically between runs. Well, “drastic” relative to CNC milling norms, where the thickness of a sheet of paper is a big deal. In normal everyday human experience it was pretty small, but still, what caused the change?

After some consideration, we realized we already knew the culprit: our bent Z-axis ball screw. As our cutter travels in the Z-axis, its tilt relative to the table would vary slightly. Since we’ve been using the same piece of scrap MDF, every test session cut slightly deeper than the last. When we are lucky as in the second project’s bottom surface, we find a height where things are very close to square, and we get a smooth finish. Otherwise we see ridges left by our endmill as it cut across the surface while not quite vertical, pushed off axis by the bent screw.

Back when we realized the Z-axis ball screw was bent, we thought we’d use it until it proves to be a problem. We have now reached that point. Between the bent ball screw and loose Z-axis rollers, redoing the Z-axis (for the fifth time!) is moving up on the priority list. But not at the top yet, because even though we’ve identified this limitation, we still have things we can explore.

Running CNC Program Again Shows Encouraging Consistency

Once we made adjustments to Fusion 360 defaults to be friendlier to our scratch built CNC mill, the generated G-code program gave us better results with less tool chatter. There’s still more chatter than we’d like, so we still need to find and fix weak points like our Z-axis rollers, but these CAM parameter changes are enough to let us continue exploring the world of CNC in parallel with our mechanical work.

This test program was generated by Fusion 360’s “2D Adaptive Clearing” feature. The tooltip for the feature explained its intent is to minimize abrupt changes in direction, which we think is a good thing for a machine lacking rigidity. What it also means is an impressive looking tool path far more complex than what we would try to write by hand.

Adaptive clearing

After we ran this program on our scrap MDF test piece (already partially cut from earlier tests) we vacuumed away the debris and saw a very satisfying result. The rough edges from tool chatter have all but disappeared. With that dominant artifact removed, it leaves us with minor imperfections that we can work on.

The first question is: are we losing steps in the motor control? That might cause some of the imperfections here. We had problems with missed steps when we first introduced the motor spindle, so now it is the first thing we check. And the easiest test to run is to run the same program again. In an ideal case, the machine would perfectly duplicate its motion and no new material would be removed. If we had lost steps, the controller’s internal coordinate position and the actual tool position would be offset by some amount, causing us to cut the same shape in a slightly different place.

The actual result was somewhere in between. As shown in the picture, we did get a light dusting of powdered MDF from places where the cutter removed a tiny bit of material. It was not consistent enough in any particular direction for us to think steps were lost, which is good news. We are free to continue our CNC exploration and find entirely new problems.

Making Fusion 360 CAM Friendlier To Hobbyist CNC Mills

In parallel with investigating points of weakness within the physical structure, we’re also learning how to make Autodesk Fusion 360 CAM friendlier to hobbyist grade CNC mills. We know our project machine, built mostly out of salvaged parts, is not a CNC powerhouse. We now need to tell Fusion 360 how to be kinder to it.

Looking over parameters for tool path generation, the first item we noticed is the default of “Climb Milling”. We’re not professional machinists, but we knew enough to know this is not a good way to go for this machine. But what if we didn’t even have that much knowledge? Thankfully Fusion 360 included a brief explanation accompanying many settings, including the “Sideways Compensation” parameter relevant here.

Climb milling explanation

Key phrase in that explanation: This generally gives a better finish in most metals, but requires good machine rigidity. Our machine is not rigid at all by CNC mill standards and must be switched over to “Conventional Milling”. Most real CNC mills in operation today are rigid enough for climb milling, so this was a reasonable default value for Fusion 360 to use, just not for us.

We also wanted to take shallower cuts in the material, as by default Fusion 360 generates code to tell the CNC to plunge into full cutting depth of the cutter. Making full use of all cutting surfaces on the tool is a reasonable default, but that involves removing far too much material at once for our mill. To tell Fusion 360 to take shallower passes, we can select the “Multiple Depths” option.

Stepdown explanation

Unlike the other explanation text, this doesn’t mention the setting as a potential compensation to lack of machine rigidity, but it worked. Our next test cut was far more successful.

Z-Axis Rollers Contribute to Tool Chatter

During our chatter-dominated CNC testing session, we used our fingertips to feel around machine structure. Most people’s fingertips are sensitive enough for identifying the presence of relative motion between mechanical parts, though only very few people can accurately quantify the distance of that motion. In this case we wanted to know which parts are moving relative to other parts, and our fingers were great for the purpose.

One of the weakest links in our machine rigidity were the four rollers aligning our Z-axis vertical extrusion beam. Two each on left and right sides of the spindle, one above the other. We could feel the vertical extrusion beam vibrating within these rollers clamping them in place.

Examination after our cutting session found the lower two rollers loose. Before this session, all four were tightened up against our vertical beam allowing no movement and enough friction they were difficult to turn by hand. By the end of the session, the lower two could be moved by hand. It appears the upper two held tightly enough to act as a fulcrum, and our cutting tool had enough leverage to move the lower two loose.

Movement of the lower two rollers were a consequence of this modular design built out of aluminum extrusion beams. These rollers are held by square nuts inside the slot of an extrusion, meaning they were held in by friction. When forces build up enough to overcome that friction, these square nuts would slide within their slot, loosening our rollers.

Until we find a better way to arrange our Z-axis, we will have a constant maintenance task of re-tightening these rollers. We also went looking in Fusion 360 CAM for settings to take shallower cuts, and together they made follow-on session a lot more successful.

Problem of Tool Chatter Dominates CNC Session

Obtaining maximum spindle RPM was the last bit of preparatory setup for our next CNC work session. There are still lots of parameters we don’t yet understand for Autodesk Fusion 360 CAM, but we knew the fundamental bits and put them in as parameters for G-code generation calculations.

Specify offsets and toolpaths using Fusion CAM, though, is still a skill we’re not very practiced at just yet. In the spirit of incremental learning, we try not to let the unknown stop us from experimenting. Mistakes are expected and, as long as nobody gets hurt and nothing is broken (well, even if something is broken) each run should teach us a little more about the process.

And the lesson of the day is tool chatter. Lots of it.

In action the machine really sounds unpleasant, but not quite bad enough to make us think breakage is imminent, so we would let it run in short sessions while we experiment and try to understand its cause. Slowing down our feed rate and adjusting our RPM appeared to have little effect, the variable that mattered was the depth of cut. Even though we had expected MDF to be relatively easy to cut, we now believe the machine is not rigid enough in its current state to cut 3-4mm deep with our 1/4″ cutter. The final cutting pass in this test program (creating the X shape) was only 1mm deep, and that ran quite smoothly even at higher feed rates.

Lessons from this session tells us we can take two parallel approaches: mechanically, we’ll need to think of ways to improve machine rigidity. And while that is under development, we’ll need to learn how to tell Fusion 360 CAM to take shallower passes.

Spindle Clocks In At 11,100 RPM

Once some convenience accessories are in hand, we return to the main business of cutting material. Our biggest unknown at this point is our spindle’s maximum speed measured in revolutions per minute (RPM). This is a critical part of calculating the “speeds and feeds” of machining. Yes, we’re cutting MDF which will be relatively forgiving, but the point of learning is to practice doing it right.

Our cheap ER11 spindle’s product page(*) claimed a maximum speed of 12,000 RPM, but we knew better than to take that at face value. To measure its actual performance, we wanted some sort of non-contact photo tachometer(*). This particular unit was on hand and originally designed for measuring remote control aircraft propeller speeds, and it measured the maximum speed at 11,100 RPM. We’ll use 11,000 RPM for our initial calculations. Later we’ll measure while it is cutting and see how much its speed drops.

Is this fast? Well, “fast” is always a relative thing. Most people’s daily experience with RPM is on their car’s dashboard tachometer. In that context it is fast as 11,000 RPM is faster than most normal car engines, though race cars and motorcycle engines can hit that speed. For machine tool purposes, though, this speed is considered on the low side. Especially for small diameter tools that we’ll be using. Physically, we are limited by the small ER11 collet for our tool diameter. Plus the machine is not rigid enough to swing a big cutting tool without flexing. And now we know the limitations of spindle speed. Which of these limitations will be the one to actually constrain what we can do with the machine? Let’s have another cutting session and find out.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Hex Wrench Holder And Wire Clip For Gantry Extrusion

The first project for designing accessories to mount on the extrusion beam, a holder for ER11 collets, turned out well enough I wanted to continue. Apply some of the lessons learned to create more nice-to-have accessories for the CNC project.

One accessory is a holder for a 5mm hex wrench. This is the size used by the fasteners bolting our gantry’s extrusion beams together. There are a set of four bolts, two on the left and two on the right, that we loosen to adjust the height of the gantry. Lowering the gantry lets the cutter cut through our work surface to cut holes for threaded inserts, raising the gantry gives us more Z travel for the work piece. Or we might deliberately trade off Z travel to use a shorter and more rigid gantry for more challenging pieces. We’re not sure what the viable combinations are, but we do know we’ll need this wrench handy for experimentation.

The other accessory is a wire management clip. Wiring is a perpetual challenge on this project, from finding appropriate component placement to isolating electrical noise. I’m sure electrical challenges will continue to vex us as we proceed. We’ll figure out the problems one by one as we go, but one thing is for sure, we’ll need a lot of ways to route wires and keep them in place, hence the clips.

Unlike the previous accessories, the wiring clip may be mounted in any orientation. To hold themselves in place, each clip will require additional holding force. To get this force, they are printed slightly more open than their installed configuration. Installation would then require compressing the ring and this tension in the plastic will provide friction against extrusion rail to hold it in place. And while I’m not entirely sure it will be necessary, I added a small flap to keep the wire from sliding out of the ring into the rail slot.

There will be more accessories along the lines of what’s been printed so far, but I’m eager to get back to the primary exploration of cutting material.

Collet Holder Clamps To Extrusion

While I was in Onshape CAD designing our goose neck work holding clamps, I also tackled a few other to-do items on the 3D-printable accessory list. The top of the list was building a way to keep extra collets accessible on the machine. Our CNC spindle came packaged with a 1/8″ ER11 collet, which we swapped out for a 1/4″ collet when we wanted a stouter cutter. We didn’t have a good place to keep the temporarily unused 1/8″ collet and, rolling around on the tabletop, we were constantly at risk of losing it.

I thought it was a good project to practice designing plastic’s flexibility to my advantage instead of constantly seeing it as a disadvantage. I’ve had several projects along these lines before, but my interest was renewed by Amy Qian’s demo board she brought to show off at Supercon.

There are two ways I wanted to apply this concept. First, I wanted a holding mechanism that can snap into an extrusion rail and stay there without use of tools or fasteners. Second, I wanted a way to hold the collet so that it is held securely by default (not fall out or be dropped easily) but can be removed easily on demand. Again without tools or fasteners.

Here is the first draft of a flexible clip for installation into extrusion beam, this design was too flexible and fell out of the extrusion rail easily. More iterations followed, hunting for the most secure hold possible while still making it possible to insert into the rail.

Extrusion slot clip

Separately, I started designing a flexible cover for the collet. The test piece for each mechanism evolved separately until I was happy with both designs, then they were integrated into a single piece incorporating both mechanisms.

Collet holder evolution

With the success of this holder, I took the lessons of a flexible extrusion beam mount and applied the concept to a few additional 3D printed accessories.

3D Printed Goose Neck Clamps For Work Holding

Once we have metal threads securely inserted into our MDF work surface, we could bolt on clamps to hold our work pieces. These clamps are 3D printed because we fully recognize our CNC beginner status and, while we’ll do our best to avoid crashing cutting bits into fixtures, it’s realistic to plan for the probability that crashes will occur despite our efforts. If we use commodity metal clamps and our carbide cutting tool makes contact it will break our tool. But if our carbide tool contacts a piece of 3D printed plastic it might survive our mistake. We have the luxury of this provision because we’re starting easy with scraps of MDF, which requires less forces to hold and to cut than cutting metal.

Clamp evolution

We started by copying standard step clamps. We weren’t sure if the steps could be accurately replicated with 3D printed plastic so it was worth a bit of experimentation to find out. They look very promising but we probably won’t use them, because the reason step clamps exist is to have a few set of them that can adjust to various sized work pieces. 3D printing gives us the flexibility to print project-specific fixtures that don’t have to compromise for flexibility. This advantage can make up a tiny bit of deficiency inherent in using plastic instead of metal. Hence the second iteration: a single piece clamp shaped like an L designed specifically for the thickness of our test piece of MDF.

Once that was printed and eyeballed on the work table, we moved on to the third iteration: a low profile goose neck clamp tailored for the height of our scrap MDF. Low profile design reduces chance of cutter collision, and it allows us to use shorter and stouter bolts to fasten them to the table. This is what we will use for our first real cutting experiments, alongside other 3D-printed accessories for our CNC project like a collet holder.

Threaded Insert Alignment Tool

We now have a small G-code program that we can call upon to cut holes for self-tapping threaded inserts. We’ll cut them as needed for work fixtures on our CNC work table. However, cutting the hole is only part of the process, we had to install the metal insert as well. In order for the resulting threaded hole to be vertical, the inserts have to be held perpendicular to the work surface as we install them. However, the coarse exterior thread makes it difficult to maintain the orientation, made more challenging by the fact the shallow hex socket allows the insert to rotate around the tip of a ball-end hex wrench making it even harder to hold vertical.

We originally had the hypothesis that, given the geometry of the wooden hole, our metal insert will self-align as we start turning it. This may be true for some types of wood but it didn’t work for our particular sheet of MDF. If the coarse outer self-tapping thread starts biting at a bad angle, the insert did not self adjust in our experience. It just jams partway down the hole ruining the MDF hole in the process.

To solve this problem, we designed a small 3D-printed plastic tool to help maintain vertical alignment for installation.

Insert alignment tool printed

The bottom part of this tool helps keep the insert vertical, and the top part keeps the hex wrench vertical. The bottom is mostly flat for the work table surface. I tried adding a small lip to help with hole alignment, but that turned out to be unnecessary. These metal insert can align itself in the XY plane well enough. And once these inserts are in place, we can bolt down our pieces of scrap MDF using custom gooseneck clamps.

CNC Test Program Prepares For Fixtures

My test program exposed an electrical noise issue and helped us track it down to the spindle motor. This was an unplanned but very welcome bonus result on top of its original purpose. It was my first foray into Autodesk Fusion 360 CAM module after following tutorials. I wanted a simple program with few operations, small enough for me to fully understand the G-code output from Fusion 360 post-processor for Grbl. We had scrap pieces of MDF on hand for practice cuts so it wasn’t important for the test program to do anything useful. But as I was contemplating work holding for scrap MDF, I realized my first program could be useful after all.

The work surface we installed earlier was also laminated MDF, cut from the same retired treadmill board as the test scraps. Its smooth (well, scratched up, but still relatively flat) top surface is not conducive to any kind of work holding. The original plan was to cut holes by hand with a cordless drill and fasten work pieces using bolts from above fastened by nuts from below the sheet.

Then we had a better idea – use threaded inserts. Counterpart to the heat-set inserts I’ve been using in my 3D printed plastic(*) projects like Sawppy, there are inserts available for wood.  They have a self-tapping coarse thread appropriate for wood on the outside, and a durable machine thread on the inside. Given that our XY table used mostly 1/4″-20 thread, we will continue the trend by using these inserts from McMaster-Carr.

All we needed to put these in was to drill a hole of the specified diameter, and this is a task I can have the machine do for its own work table. I first started with a single hole, walking through each line in the generated G-code to understand what’s going on. The results were fine for the insert itself, but the exterior thread damaged surrounding laminate surface during installation.

Inserts with cracked laminate

This lead to extension of the test program, adding a second cutting operation. The first one cut a hole all the way through the surface for the insert, and a second shallower cut to clear surrounding laminate to avoid damage by exterior tread. Once the metal insert was installed with help of an alignment tool, we have a clean fastening point to bolt work pieces to our machine work surface.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Next Challenge For CNC: Electrical Noise

With a stouter cutter installed, we can experiment with less worry about breaking it. I started generating my own G-code programs from Autodesk Fusion 360 and testing them on the machine. (More about this test program later.) A safety practice I learned in my machining class is to test run a G-code program by intentionally setting a too-high Z offset. This way, when the machine runs through the program, it runs through all the motions but is only moving around in air. This lets us verify the range of motion is as expected. Including making sure it would not exceed either the XY limits of the machine or hit any hold down fixtures that are in the work space.

This process can be repeated any number of times, each time putting the Z a little closer to the workpiece than the last. And even if we don’t expect to actually cut material, it’s a good idea to power up the spindle just in case the cutter makes contact. While unexpected cuts in the work piece is not great, ramming a non-spinning cutter into the piece is worse.

Running in air is great for finding major problems, but minor issues aren’t always visible. It wasn’t until I cut into MDF that I found our latest problem: after the test program made its cut, its final position did not match expectations. Running the program again, we expected it to run through the same motion and not remove any new material, but it did. Checking the coordinate display on bCNC, we saw the machine believed itself to have returned to the same position after each run, counter to our physical evidence on hand. What happened?

To diagnose this issue, we tried eliminating individual variables from consideration. Running down the list of possibilities, from loose wires to loose fasteners. The key experiment was running the program without powering up the spindle, at which time all motion tracked as expected. (To protect the endmill from possible impact damage, it was removed from the collet for this test.)

This tells us the source of our unreliable motion was an electrically noisy spindle. A hypothesis is that it degraded our motor controllers’ ability to distinguish signal pulses from Grbl, but the precise mechanism is not important. Whatever it was, we need to better protect the system from spindle motor noise. And since every motor will affect nearby electronics to some degree, this is probably not just a consequence of using the lowest bidder on Amazon.

In the immediate term, what we can do for our machine is to make sure the chassis is securely grounded, reroute signal wires further away from the spindle motor subsystem, and add a capacitor across the motor wire terminals to filter some noise. This was not precision tuning, as we just clamped the grounding wire to our gantry and the capacitor was chosen for its voltage tolerance rather than a specific capacitance. Still, the two measures seemed to improve the situation enough to proceed. We know “clean up wiring” is still on our list of technical debt, but this kicks the can a little further down the road and let me return to my test program – cutting holes for work fixtures.

Stouter Cutting Tool For Exploring CNC

Our vertical mill CNC project is barely far along enough for us to run a simple G-code program, so there’s a lot we don’t yet understand about the machine’s capabilities. Pieced together from mostly salvaged parts, we don’t exactly have a reference manual we can check for the machine.

What’s clear from our first test is that it’s easy to accidentally get too aggressive with the machine. The most fragile part in the system is our 1/8″ RotoZip cutting tool. While we want to make sure to wear eye protection when running the machine, we still want to avoid breaking cutters and turning them into sharp high speed projectiles.

To reduce the odds of that happening, further machine testing will use the largest cutting tool we can. Quarter inch shank diameter is just about the widest we can accommodate with our ER11 collet, so I went looking for the shortest quarter inch square nose endmill I can find on Amazon with Prime delivery. (*) McMaster-Carr has higher quality cutters and a wider selection of endmills in general, but they would not have delivered in time for the next available machine work session so I traded off quality for speed.

This is a carbide tool with two flutes. Out of the box, all cutting surfaces looked satisfactorily sharp. Used properly, it should have no problem cutting into our scrap test pieces of MDF. And when used improperly, it should be far less likely to break than our 1/8″ diameter RotoZip cutter. It will serve as the (possibly sacrificial) learning cutter while we explore the rest of our machine, starting with an electrical noise problem.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.