A two bit project

I am back home after being gone for a week and a pile of projects awaits.

  1. The Railroad group wanted a HO gage 3D print of an A10 for the airbase on the layout. It is printing right now. I had to do it in 2 parts, since it was larger than my little 3D printer could handle.
  2. My wife’s sister wanted a couple end-grain cutting boards (Texas sized 19” x 16” x 1.5”) to give as gifts. I am trying a four-wood design (Maple, Cherry, Sapele, Walnut) using a couple different designs. Hopefully, they will come out as I envision them. Boards like this can easily cost >$200 retail.
  3. I still have a few gifts of my own to finish as well.

While working on that I thought I’d attempt a CNC design using 2 different bits. A 1.5mm bit for the course work and a 1.0mm bit for cleaning out the contours of the letters.

Here is the design I am trying to produce:

The first pass with the 1.5 mm bit will take out the bulk of the material for the letters, using a 2D pocket milling operation:

2D pocket

Since this design is small (150 mm x 150 mm), it leaves quite a bit of the letter details uncut. So, another pass is required. This one will only focus on the 2D contour of the letters.

2D contour

This gets into every nook and cranny that a 1mm bit can reach.

You can see in the Fusion browser there are a few G-code passthrough operations defined to: stop the spindle and raise the bit…, so I can make the bit change between the two cutting operations.

Once this is milled, the plan is to paint the letters in the appropriate colors (e.g., stars yellow, letters black) and then sand off the top millimeter or so. This will allow for the letters to be painted (including the sides) and yet have the wood surface show unpainted.

I’ll have to do another post when it is all done and show the finished result.

3D printing a vacuum system for my CNC machine

I mentioned in an earlier post that I was going to look into creating a vacuum system for my CNC. I decided to go the inexpensive route of taking a small consumer shop vac and using its nozzle attachment as the basis for the vacuum.

Here is what the model looks like that I created in Microsoft 3D Builder.

This model is positioned with the side that snaps on the spindle point toward you. The narrow nozzle of the vacuum fits into the fixture on the right side of the illustration.

Here is what it looks like mounted on the CNC machine, trying to collect some dust from a Christmas ornament being cut out of Cherry with a 2D contour cut and a 1.5mm bit.

Next, I need to get back to understanding how to focus the laser on the mount I built previously.

Injecting G code in the Fusion 360 post processor

One of the issues I encountered was that at the end of a job my CNC machine would keep its spindle running. For some reason the UGS software did not have a way to automatically add some G code at the beginning or end of a job. I had to figure out a way around this, since all my 3D printing software supported it — and its quite useful.

Fortunately, Fusion 360 can easily get around this with a minor modification to the post processor code as described in this post.


The following screen shot shows the step I needed to add in the setup process to manually perform a pass through of G-code. The dialog on the right shows the actual pass through entry with the M5 (stop spindle) command.

The manual NC commands in Fusion can be used for a range of things like manually asking for a tool change… as well. This is a whole new area I need to look into, since it could significantly improve processes and reduce bit breakage.

The picture of the object being designed is a Christmas ornament based on the South Carolina flag, by the way. I plan to cut it out with a 1mm bit.

Escher inspired reptile pad nearing completion

I finally got all the reptiles cut out and assembled and decided to epoxy them together. I’ve never really worked with two-part epoxy, so this was a learning process.

Waiting for epoxy to dry

The first thing I did was place painters tape around the sides, to form a container for the epoxy. Then I mixed the epoxy and poured it in. Next time, I’ll try electrical tape or something that is a bit more water/epoxy proof than the painters tape. It tended to run out the side and generally seep through more than I expected.

Another unexpected issue was the number of bubbles that came out of the material into the epoxy. I used a torch lightly on the top of the epoxy for over an hour (since they popped almost instantly) and still ended up with one small bubble solidified into the design and I still have a bit of cleanup where the tape/paper towel stuck to the bottom where it leaked out.

A near finished design sitting on our counter top

Adding a LASER to my CNC

This week I had someone ask me if I could put a picture on a piece of wood for them. I’ve been doing laser scribing with 1” wooden medallions for a while, but not on anything larger, so I took this as a challenge. My CNC machine came with a 2.5W laser sufficient to burn wood, but I’d not even taken it out of the box yet.

When I unboxed the laser, I noticed there really wasn’t any place to mount it on the machine. Too bad, since it wouldn’t have been that difficult for the manufacturer to do.


The only real mounting option provided was to pull the spindle motor out and replace it with the laser whenever I wanted to make the switch, but that just didn’t sound right. Instead, I thought I’d ‘side mount’ the laser on the spindle. It wouldn’t be a problem for the software that drives the machine, since it is all relative movement from the starting point. The biggest concern would be collision between the moving parts, and anything being worked on.

After taking some precise measurements, I made a model of the spindle and its housing. It was then just a matter of subtracting that design from a laser mount design to come up with the following mount:

Side-mount design

This design snaps onto the spindle motor mount and should allow for enough support for the laser to do its thing, without too much vibration. Here is a picture of the whole assembly in place:

Finished initial design

Since I have the basic snap-on solution figured out, I’ll also try a front mount version to see if it is more usable. I’ll also try adding a bolt and wingnut clamping system, to make it more stable.

Next, I’ll tackle a vacuum system for the CNC machine, to help control the dust level. But first I need to figure out this whole lasing process, since focusing the laser is critical to the amount of detail I can burn.

Note: Lasers are dangerous and can easily cause eye damage, so be sure to use effective eye protection.

Z-axis calibration on my 3D printer

I mentioned a while back that my 3D printer was down. My ‘special’ nuts arrived from China and now I am back working again.

In the process though, I had to relearn how to calibrate the Z axis. This was a task I hadn’t done in about 5 years, so it was worried since it can be a bit tedious. Fortunately, I ended up with no significant damage and only one real gouge out of the bed plate from a hot end crash.

If you have not done a Z-axis calibration in a while, here is a summary. These instructions are for my 3D printer (Printrbot), but most printers should have these same or similar machine codes. The M212 machine command sets an offset from where the machine thinks Z zero is located.

  1. Set the Z axis so the proximity sensor goes off with only a ‘business card’ between the bed and the hot end. Usually, there are some adjustments to move the sensor up and down – this is where my nut was cracked that I had to replace that precipitated these events.
  2. Since I’ve moved everything, the first thing to do is set any previous offsets to zero. Type in the command M501 into the command dialogue box of your printer controller. Your 3D printer will output the current settings for your machine. This will include a line which shows the settings for M212 which will give you your X, Y and Z settings.
  3. If the Z setting is not zero, set it to zero by typing in M212 Z0.
  4. Type in Z500 to save the change
  5. Type in M501 to validate that the change took place.
  6. Now attempt a small 3D print. Be ready to pull the plug quickly, if there is a hot end crash or some other odd behavior.
  7. Examine the bead that is first laid down. Ensure that it is sufficiently squished. If it appears that nothing came out, your hot end is too low. If it is just laid down upon the bed, the hot end is too high.
  8. Set M501 to the desired offset. If you type M212 Z-0.5 and press enter, it would lower the hot end by 0.5 mm. if you type in M212 Z1, it will raise the hot end by 1mm. In my case I had to raise the hot end by 0.5mm
  9. Type M500 to save the change.
  10. Type M501 to verify it was saved.
  11. Run a test print again to see if you get the desired result. If not, go back to step 7.

Hopefully, I’ll not need to that again for a while.

Some tweeks to my UGS setup

I mentioned in my previous post that I had a few more things that needed to be adjusted in my UGS setup.

One was that I wanted a bit quicker movement of the bit around the stock, as well as I wanted to have a slightly modified zero setting function. Both of these were easily addressed with the Macro function of UGS and a bit of G-code. This is a screen shot of the macros currently being used, but I am sure they will evolve as I get more experience:

The other issue I encountered was the Fusion 360 post-processor generates some G-code that UGS didn’t like. Fortunately, these codes dealt with things like tool change… that I can’t use, so I told UGS to ignore them. To do this, you create regular expression patterns to match the codes to be ignored. This screen shot shows where you do that and the expressions I used:

A simple breakdown of the first regular expression is that it is looking for a pattern that starts at the beginning of the line and then has a T1 followed by any number of letters, before the end of the line. When matched it will ignore that entire line.

Regular expressions can be a bit daunting when you first see them. Fortunately, there are examples and test sites out there you can use to validate you’ve done it right.