Introduction: Light Ring on Underwater Robot -- Part 2 (CNC Mill)

Hi. In this instructable, we are making a light ring. It's a part that goes on the front of an underwater robot (Picture 2).

You can read up more on the context in Part 1 of the instructable, but here's the short version: our research robot's current lighting system has some issues, so this redesign will produce a better-performing, more robust system. This way, we'll be able to see where we're going, take pictures of interesting organisms, and blind fish.

The cover picture gives a decent overview of the light ring. It has a hard anodized aluminum housing with an acrylic cover, and it is sealed with o-rings and screws. In a future instructable, we will wire up electronics and seal them inside the vessel.

Picture 3 shows the part that we are finishing in this instructable. The operations will be on the CNC mill. This part was started in Part 1 of the instructable, where we had machined several features with critical dimensions on the lathe.

This was my first time completing the CAM and cut for a CNC milling operation. So this guide documents a beginner's perspective on the machine, and it's probably most useful for other people who are learning CNC machining.

I made this part at TechShop, a community maker space. See

Step 1: Workholding and Centering

TechShop has all sorts of nice parts to build a sweet workholding fixture (Picture 1). I took the 3-jaw chuck off of the 4th axis option and clamped it to the table. There was a feature on the back of the jaws that would have interfered with the clamping, so I stacked it on top of four precision 1-2-3 blocks.

In a previous prototype, I had mounted the entire 4th-axis (not just the jaws) facing upwards. This ended up being too tall for fitting the auto-tapping mechanism into the machine. So for my part, it was better with just the jaws.

I centered the part with an edge finder using a technique similar to the one from this two minute YouTube video. However, this method is too inaccurate for this part -- it might leave some features as much as 0.005" off center, which on this piece would cause some hole chamfers to start to run into an o-ring groove.

So after rough-centering, I went around the groove with a dial indicator (Picture 2). During this step, I discovered that the Tormach PCNC 1100 has about one thou of backlash between the DRO (digital read out) and the table. In other words, depending on a few factors, the machine might be about 0.001" off from where it thinks it is.

In my experience, most machines with DRO's reference the table itself, so they don't have this kind of backlash behavior. My guess is that the positioning on this machine is based off of encoders on the stepper motors. Imperfections in the drive train then introduce the backlash.

To be fair, the Tormach PCNC 1100 is very good at being what it's supposed to be -- an affordable, hobby-grade CNC mill.

Step 2: Tooling and Feeds & Speeds

Picture 1 shows the tooling that I used on this part. There is an edge finder, a center drill, three drills, and two end mills. There is also a chamfering bit that I intentionally misused.

I mounted the tools in Tormach Tooling System toolholders. With a normal collet, I would need to re-zero the z-axis every time I changed tools. This system allows me to mount all the tools, measure them with a height gauge (shown), and zero once. It saves a lot of time.

Speaking of time -- this is a popular machine at TechShop. This means that everything needs to be completed in a single 4-hour block. It makes for a fun challenge!

Each of these tools needs to spin and move at a different rate. In machining jargon, we call the spindle rate the "speed" (given in RPM's, rotations per minute) and the movement rate the "feed" (given in IPM's, inches per minute). How do we know what feeds and speeds to run each tool?

Picture 2 is a handy-dandy chart on the wall that reads "Feeds & Speeds". BUT -- and this was just my experience, and I'm not a professional -- I found the listed feeds and speeds to be too much for this machine. I had to turn things down quite a bit before the machine stopped struggling.

Picture 3 may explain the performance. On this machine, the spindle is powered by a motor with around 1.3 horsepower. I got into the habit running it on low gear.

In any case, here are the feeds and speeds I ended up using:

1 - Center Drill - 5000 RPM, 4 IPM
2 - #49 Drill 0.073 - 5000 RPM, 2.5 IPM
3 - #27 Drill 0.144 - 5000 RPM, 4 IPM
4 - 25/64 Drill 0.391 - 2200 RPM, 6 IPM
5 - 3/8" End Mill - 2200 RPM, 6 IPM
6 - 1/2" End Mill - 1600 RPM, 6 IPM

I think that these numbers are a bit conservative, but they are what worked for me. On a separate note, no matter what settings I used, I could not discern any difference in surface finish between finish passes and roughing passes. In other words, I was never able to get this machine to cut very well. Thus, I went with no finish passes, climb milling all the way.

If you're interested in some theory and math on this topic, I would recommend looking up "feeds and speeds", "chip load", and "depth of cut". Wikipedia includes formulas and is a good starting point.

About the chamfering bit in Picture 1 -- I was too cheap to purchase an appropriate chamfer end mill. So I decided to try taking the edge off the part by running this tool along the outline. Technically it did take off the edge... but it also left me with two additional edges that needed to be deburred by hand. So, not recommended.

Step 3: G-Code Overview

Time to load your G-code! What's G-code, you ask? Easy. G-code is the directions that you give to your CNC machine so that it knows what to do. You can generate G-code using CAM (computer aided manufacturing) software.

I searched for the simplest CAM software I could find on TechShop's computers, and started using VCarve Pro (Picture 1). VCarve Pro is an affordable ($700, heh) award-winning piece of software praised for its simplicity. I used VCarve Pro for the first prototype, then decided that I absolutely could not stand it. So I looked for something simpler (and more free) that also gave me more control.

I ended up programming the cuts by hand using Notepad++, a text editor (Picture 2). This probably is not what a normal person would do, but I found it quite natural to copy-paste the same lines of code a few dozen times, changing a few coordinates here and there. It worked for me. Though, if you decide to work on G-code in Notepad++, I would recommend a G-code language file to make things easier to read. You can check your G-code using a simulator; NCSim by Gershon Elber was the simplest one I could find (it comes with examples that you can reference to see how to set up the simulation).

Picture 3 is a photo of the user interface on the CNC mill. I don't have anything meaningful to say about it. Just that it's very functional and hilariously hideous (I am way too mean to this machine =P). Use this program to load and run your G-code.

The G-code for this part is attached. Feel free to open it up and learn G-code, there are really only 4 commands you need to know:

G00 means "rapid move"
G01 means "feed to this point in a straight line"
G02 means "make a clockwise arc to this point"
G03 means "make a counter-clockwise arc to this point"

There's a little more to know, but that's really the gist of it. You can check Tormach's G-code reference page if you wish to learn more. A lot of the other stuff (like tool changes) you can just copy-paste an example line and change a few numbers.

Step 4: Cut!

A lot of time went into the set-up, now just let the CNC mill do its thing.

Here are some action shots. In Picture 1, the machine is cutting out the inner flange. In Picture 2, the machine is hollowing out the pocket (and generating a lot of chips). In Picture 3, the machine just finished tapping a hole. Tapping means adding threads, like for a screw.

The steps in the cut plan were:

1. Center drill holes (all 25 of them).
2. Drill the small holes (20 holes for holding down the cover).
3. Drill the medium holes (4 holes for mounting to the robot).
4. Drill the large hole (1 hole for the pigtail cable).
5. Cut both flanges (outer and inner).
6. Cut the pocket.

7. Tap the large hole.
8. Tap the small holes.
9. Tap the small holes, again.

We tapped the large hole with a 0.005" oversize tap. Afterwards, we anodized the part, which added 0.001" to the thicknesses. The tap was oversize to account for the added thickness and still have the connector screw in.

I couldn't find a vendor who carried oversize taps in the size of the smaller holes, so I put the holes in with a 50% thread (usually it's 75% for aluminum), then double-tapped them (first with a taper tap and second with a bottoming tap). Don't worry if the last two paragraphs made no sense... honestly, I think that everything would have been fine however the holes were tapped.

Picture 4 shows the reversible tapping attachments that I found in the tool drawer. They are rather forgiving even if you don't get the settings quite right. They have a cool 3-way clutch mechanism plus all sorts of play built into of them, so they can be used even on a drill press.

If you're looking for hints on how to use the tapping attachments for CNC machining, feel free to check the G-code in Step 3.

Step 5: Conclusion

Picture 1 shows the result. Here is the time breakdown for the third of three housings I machined:

90 minutes for set up, tooling, mounting, and centering
75 minutes for all of the cutting
30 minutes for clean-up

...for a total of 3 hours 15 minutes on the CNC mill, well under the 4-hour reservation limit at TechShop =D.

Combined with Part 1 on the manual lathe (5 hours), my total machining time for the housing was a little over 8 hours apiece.

Picture 2 shows the acrylic cover. I popped the stock in the laser cutter... and the cover came out in four and half minutes (-_-;)

Picture 3 shows the part after plating. The folks at Industrial Plating Company did a good job with quick turnaround.

Picture 4 is from the second of my three light rings. Something to watch out for if you're using the Tormach -- hitting the "stop" button causes the machine to lose its axes. Hence, the holes and the flanges are on two different axes on this part. So, I learned to pause the machine with the "pause" key...

And there we are. Part 3 will cover the electronics to light this thing up.