Mill Upgrades – Air-Over-Hydraulic Drawbar Part 1

I spent some time reorganizing the shop after several weeks of pretty much total inattention to it. This included finally building a keyboard mount so I can now reach it while close enough to the mill to reach/look in (really handy when indicating stuff in). Not shown are the grinders and other welding supplies sitting in a large plastic bin and nagging me to come up with a real storage system on the wall.

I also made some real progress on the power drawbar. Most of the structure of the system is ready to go. I’m using an air-over-hydraulic system, with an Enerpac cylinder and a 33:1 pneumatic to hydraulic booster. Below you can see the system. The pneumatic valve is in place on the manifold, I still need to wire up the relay, and then I need to figure out the Mach3 side of things. I do think those parts will go quickly.


I also have the materials for the new drawbar, but haven’t completed the new drawbar clamping nut, or figured out exactly how I’m going to setup the mechanical components to keep the Bellevilles centered on the drawbar and the drawbar centered in the spindle.

Not pictured is the two attempts at the mounting plate for the hydraulic cylinder assembly — the first was for fit testing and some critical dimensions were off just a little, the second I cut the wrong size stock and didn’t realize till a while into it. Hopefully attempt three will do the trick.

I also did some work to design a fixed ATC assembly I can use once the hydraulic drawbar is installed. This will be a good opportunity for me to test software as well, as I’m sticking with Mach3 for the time being (with the next stop most likely being LinuxCNC, although it’s possible I’ll go for Acorn Centroid). I’ve already started on a new screen set for Mach3 which includes an ATC, and expect that will be for sale at the same time the ATC is ready.

Fixed ATC Assy v4.png

Mill Upgrades – Flood Coolant Part 1

I’m trying to wrap up the documentation for the spindle belt upgrade so I can get it up on, and since spring has sprung I’m also pretty busy getting the yard in order. I did find some time to work on adding flood coolant and tying in the air blast delivery to it.

I’m using a Brute 20 gallon tank with some prospecting sifting screens, and the original 4 GPM coolant pump mounted on a polycarbonate stand to keep it above the coolant level. The manifold is from Automation Direct, and the hoses are standard Loc-Line (one 3/8″ NPT that came with the mill, the rest are 1/4″ NPT). The system is waiting on me to make a drain from the stand into the filters on the coolant tank.

I also have a new drag chain waiting to be installed, which is large enough to carry the coolant line. The Z-axis end stop sensor wire needs to be run down that, as well as the motor cable and the lines mist coolant and air blast, so it should help tidy things up a bit.

Bonus picture: when you have to tap some M3 holes but don’t have a tap holder small enough, a TTS ER20 holder can come in handy.


An easy guide to making a WooCommerce store

I’m mostly putting this up for my own benefit, as every time I end up doing this I have to relearn like 90% of the process and I’d like to have a reference document.

So, start by picking up a domain name. I like to use Namecheap, but there are a million domain registrars, pick your favorite.

Go download PuTTY if you don’t have it already.

Next, pop over to DigitalOcean. They have a great guide for setting up WordPress on one of their droplets (and a lot of other stuff): I generally start with the cheapest droplet and will move up from there if necessary.

When you get to the bottom of the page, there’s a section marked “Add your SSH keys”, which you want to do now because it will save you more confusion later. Open up PuTTYgen (which is a separate program from PuTTY, but was installed with it), and generate a key (you should be able to leave the default parameters, they should be RSA and 2048 bits). You will need to save the public key onto the server and keep the private key for logging in.

At some point in here, point the nameservers to the right place. DigitalOcean has a guide here: but for Namecheap domains you can just go change the nameservers to “”, “ns2…” and “ns3…”.

When you go to log in with PuTTY as shown later in the instructions, you need to use that key. They’ve also written a guide for that:

Don’t forget to save the login settings in PuTTY.

While you’re SSHed into the server, follow these instructions to setup an SSL certificate on your server:

Now your server should be running WordPress and you should have a valid SSL certificate. Go make a login for your site. Note: do not use “admin” — this is a potential attack vector; I strongly suggest using a password vault in general in your life, and in particular using a random character name and password for the site. Remember that anyone who has this login has access to all the data on the site, including the database.

Go to settings, and change the “WordPress address” and “Site address” to the url you got the SSL certificate for. Note that it must much exactly — if you got “” you should put in “”, not “”.

The next step is to add plugins. I am not a guru of WP plugins by any means, but I like:

  • Obviously, WooCommerce. Without this, it’s not a WooCommerce site.
    • WooCommerce Services — supports other plugins.
    • WooCommerce PDF Invoices and Packing Slips
    • WooCommerce Stripe Gateway
    • WooCommerce PayPal Express Checkout Gateway
    • UPS (BASIC) WooCommerce shipping
  • Really Simple SSL
  • Jetpack by
  • Backup WordPress
  • All In One SEO Pack

You’re ready to go — setup products, fine tune your marketing, make whatever custom pages you want.

Mill Upgrades – Spindle Upgrade Part 4

Time to switch the tapered roller bearings (TRB) out for angular contact bearings. The primary benefit is that AC bearings allow higher speeds, particularly when running only with grease. First step was to pull off the seal above the top spindle bearing, remove the nut and pull the spindle out.

I dunno what kinda grease was in here, but there’s certainly a lot of dirt, probably largely as a result of having too much grease. This machine has probably only run for a couple hundred hours, so realistically the grease pack it had now should have lasted a while, and you can see in the first picture that the rollers look pretty clear (the grease forms a thin film on the rotating elements of the bearing).

I didn’t take any pictures apparently, but to get the quill out of the machine, you need to remove the quill retaining bolt (on the left side of the head), then loosen the quill lock. If you have the quill arm that may need to be removed, but as I have already removed mine I’m not sure. I have also already removed the quill DRO and the clamp that holes it

The next step is to knock the TRB cones out of the quill.

I cleaned up the quill face a bit after this, but you can see how much grease was jammed into the rollers and cages when I removed them, and how dirty the inner bore is. Most of the inner bore was hard enough it didn’t come off by wiping, and that stuff I left in there. Whether that was a good choice remains to be seen.

Time to press in the new AC bearings. Note: it would have been a better plan to grease them before doing this.

And back into the machine.

Now, I put way more grease than necessary because I forgot to grease them before, and my hope was that some excess would move under gravity in the top bearing, and that I would force some through by hand in the bottom bearing. I also wiped away a lot of the grease after running the spindle at 500 RPM for a little while to warm things up and spread the grease onto the balls. You’re only supposed to fill about 1/3 of the open space in the bearing (according to SKF, who should know), however ultimately the grease will convert to a thin film and coat the bearing, and any real excess will be forced out, particularly at high RPM. Excess grease will hold onto dirt and potentially migrate back into the bearing which isn’t great. If the space confines the grease in the bearing it will also cause excess heating, even if it’s clean.

Here’s what they look like after a few hours of running. I ran the spindle up to 7k in 500 RPM increments over the course of 5-6 hours (I was working on other stuff around the shop, the only rule I had was that I waited at least 10 minutes to measure temperature, and if I had already measured noise then I confirmed the measurement).

Spindle bearing noise comparison.png

The noise produced with the AC bearings is lower than the TRBs, although the modified motor and spindle pulley mounting may be a factor in that. Both are way better than the geared setup, which ran at 85 dB at 3k RPM.

One interesting thing to note was the peak around 6k RPM — some sort of resonance frequency perhaps. I remeasured that point going up and down several times to confirm, but it really does get quieter if regardless of whether the RPM is reduced or increased from there.

Spindle bearing temperature

Both bearings are in a good temperature range for the application, and there’s certainly head room to run the spindle faster. I’ve gotta scratch my head some more about why the smaller bearing is hotter.

Time to pop the seals back on and try out ripping some aluminum.



Mill Upgrades – Spindle Motor Part 3

The new spindle motor and pulleys are finally installed and working (and all the gearing and oil is out of the head).

As you can see in the picture below, I ended up with two cap screws to hold the spindle pulley in place. This is because I did a poor job on the bore and the pulley had 0.020″ runout. I just added the second cap screw and got it to within 0.002″, which really reduced the noise level.

The next step is to run the spindle up in steps and see how the temps look. It’s currently running the stock bearings, but I do have replacement angular contact bearings that are good up to at least 8k RPM with grease.

After that I want to try out some commercially available pulleys as I put together the BOM and instructions for the plans I’ll be selling.


The biggest benefit by far is the difference in noise level. It now makes 77 dB at 3k RPM, compared to 85 dB with the gears in place.

Mill Upgrades – Enclosure

The picture above is my mill, a Precision Matthews PM940CNC (940 is the table size – 40″ long, 9″ wide). I got one of Matt’s first batch in 2015 (it has now been completely disassembled twice, first to move into a basement, then to move into the garage of my new house). I paid $7,200 for it, so I think there’s some good value in it (Tormach’s most similar model, the PCNC1100, starts at $8,400). It has a cutting volume of 3.5 cubic feet (X-23″ ,Y-14″, Z-19″), which is a little bit more than twice the PCNC1100’s, although a lot of that is in Z and is often not useful. It has a 1.5HP geared spindle motor and is setup to run at 3,000 RPM max from the factory. The axes motors are steppers, running double nut ballscrews. The machine itself weighs about 900 pounds (not including the control box or the stand).

The downside of this machine is that there is no upgrade support. Tormach offers an enclosure, a power drawbar, an automatic tool changer, etc. The PM machines come with an automatic oiler setup (except on the Z-axis), but other than that you’re on your own.

The first thing I wanted to add was an enclosure, because this thing can move a fairly large amount of aluminum in short order, and for cuts that require coolant, it really helps to keep it contained.


The enclosure is made with a 1/8″ carbon steel drain pan, 1″ square T-slot aluminum extrusions, and 1/4″ thick polycarbonate. You can purchase the plans on my site.

Plastic Product Design: Part 2

In this installment I talk about optimization and analysis. This applies equally to mass production and one-offs, and is really the critical set of skills that sets apart engineers from the many other people involved in successfully manufacturing a product. That said, anyone involved in manufacturing benefits from understanding how these tools are used, even if they won’t use them directly.

Note this isn’t a how-to for FEA, there are lots of those available on Youtube and elsewhere.

Plastic bending calculations

As I discussed in my first post, I used BASF’s guide to write my own calculator. To test it, I compared my results with with finite element analysis performed in Fusion 360. I also confirmed my results with a hand calculation, however that was just to confirm my math was setup correctly.

Finite Element Analysis (not just pretty pictures)

Any engineer reading this can probably think of a time that they’ve seen an FEA analysis that was really just a pretty picture, either because it wasn’t set it up correctly, or because the thing analyzed was not worth the time. The goal of this post is to help you understand how to do FEA and get useful information, not just pretty pictures.

The first step in all this is understanding what data you want to get out of the analysis, and why you can’t get it by other means. The second step is to understand the importance of boundary conditions, mesh size, and loads.

Identifying the problem

I expect the issue here to be a stress concentration where the clip bends away from the base. This is simply a matter of experience, but anyone can detect potential stress concentrations by looking for geometry with sudden changes in cross section. These are always potential failure points.

In this case, we only have an interest in structural FEA, but there are many other types of FEA for fluid flow, thermodynamics, electromagnetics, etc. Solving problems with them can be approached the same way, but requires a different knowledge base.

Boundary conditions

The boundary conditions are physical limits that we know or can assume are true. These are absolutely critical to getting a useful solution, and are often the most difficult part of any FEA analysis. Today’s example is very simple, mostly because the part is simple. In cases requiring dynamic analysis, or with many components, or with odd physical limits, some or all of any analysis may be garbage regardless of how it is run, and it’s up to the user to identify which parts are useful and which are not. That’s why you pay a professional for this kind of work.

Once I’ve run the simulation and determined the magnitude of the stress, I want to confirm that it won’t cause the design to break. Given that, I need to go back and determine what the stress at the elastic limit is for my material (aka the yield strength). I performed my analyses using ABS, which is a common plastic for both 3D printing and injection molding. One thing to keep in mind is that 3D printed material is anistropic (the strength between layers is significantly lower than the strength of each layer, which is equivalent to injection molded part strength). Basically, it wants to delaminate because the layers aren’t held tightly together.

The yield strength of ABS is quoted at anywhere from 4-6,000 PSI, depending on the test standard (ASTM D638 is the most common) and who performed it. It’s common in the 3D printing world to assume that Z-axis (the direction that layers are stacked in) strength is 30% of the specification yield strength. So I want to stay below 1,300-2,000 PSI in the Z-direction to prevent delamination.

Mesh Size

First things first, a mesh is the structure of points that is being analyzed. It looks like, a mesh net or fence, hence the name. It’s built using a series of polygons, usually triangles but there are other options. The actual math is performed at the locations where the triangles meet (the nodes), and the system is basically iterating through until the change in value gets very small relative to the value. If you’re interested in understanding more of the math behind it, I suggest finding a book on numerical methods or contacting your nearest university to take classes.

When it comes to sizing the mesh, we have some areas of interest and some areas that are not interesting. Large, flat or otherwise geometrically identical surfaces usually will not tell us anything of real value (that can’t be calculated by hand relatively quickly, for example). Usually there are a few features of the model that are really of interest, and those require finer meshing. I’ll just jump straight into an example.

Below is the meshed holder in Fusion360. The software has done some automatic optimization of the mesh size in different areas, so you can see the corners where it has made the mesh significantly finer in order to get useful values.


The tradeoff in meshing is time versus the helpfulness of the result. You can make a mesh that has tiny elements which takes forever to solve and gives you high granularity, but it will take longer to run and may not help give you better answers. See the mesh below, which has about 10 times the mesh density of the one above, but most of the mesh is now being solved in areas that are not helpful or interesting.


To make a fairly long story short, the required deflection of this design creates super high stress at that corner. I tried again using relief notches, but they didn’t help much. Ultimately it was quicker and easier to go back to the drawing board and make up a new model.


This switches the mounting side away from the flexure, and it’s also a little more compact and robust. In addition, it was easier to tweak this to make the holding force closer to the flashlight’s weight. This requires about 1 pound of force to deflect to the point required to allow the flashlight to be retained or removed.

End-on mount - Rev 11 - 1.PNG

End-on mount - Rev 11 - 2.PNG

Something wasn’t quite right about my measurements, as round 1 didn’t fit. So, I made some slights adjustments.


Better fit, but I wasn’t happy with how difficult the bevel was making it to insert the flashlight. Time for one more revision.


Much easier to insert, with no retention issue.