Design process for the CNC Puck Mill

The Puck Mill was designed to be quick and easy to build, and to use generally available components. I was intrigued by the MakerSlide available at, and wanted to see how that could be used. I looked at a number of existing designs using this product, and decided to try for something simpler. I also wanted to make use of some existing hardware I had lying around – some Nema23 motor mounts, and some acme thread rod. I'll put together a list of all the parts I used, as well as those I fabricated. My design uses one 4 foot section of makerslide, which is pretty convenient.

For me, the first part of designing the router is to sit at a table with the components I have, and think about the design – holding pieces together, imagining the design, thinking about clearances, and the range of movement. I think about the sub assemblies, and try to fit each together, with the pieces I have.

I can identify the missing components, decide what to order, and what to fabricate.

The next step is to put together the design using CAD software. I use RhinoCAD for this, since I use this for many of the CNC projects I create. With Rhino, I create each piece, or subassembly, as a separate drawing, and them build a complete drawing by importing all the pieces. Rhino is smart about this, and will update the drawing if any of the component parts change. When using existing components such as MakerSlide, bearings, motor mounts, Nema motors, etc, the drawings are only available as 2D DXF files. Fortunately, these import into Rhino accurately, and are easy to extrude into 3D objects. Over time I'm building a library of components, so it is simpler to build a mockup of the machine.

Next, in Rhino, I design the custom components that are required to connect the “store bought” components together. It is easy to fit these into the design, and adjust the holes to match the existing parts. I can also check clearances and the range of movement of pieces. This is where I miss having a true simulation capability, that understands the constraints of each piece. There was a Rhino plugin for this, but is seems to be abandoned.

Next, I take the custom components and add dimensions to each piece I need to make. This is generally in inches or metric (or a combination) depending on the piece. I try to find a way tousle my existing stock of aluminum plates and angle to build the parts.

Now, comes assembly, where I try to fit the parts together. I'm usually pleasantly surprised how well everything comes together at this point.

One place I've had trouble in both of my CNC designs is the limit switches. I've never included these in the design, so I've had to sort of fit them in as an after thought. Having done this twice, I've learned to try to fit these in at the CAD stage, for my next design.

Once the mechanical design is complete, I have to tackle the electrical components. For the Puck Mill I wanted to use a USB based controller. I chose to use the fairly well regarded XXX controller. I ordered a controller, relay card, stepper drivers, and power supply from the one source. I also ordered a custom jog control keypad. It turns out that this controller doesn't need Mach3 – it is all managed in the controller, and in a custom app that runs on the PC.

For the spindle, I chose a small Chinese spindle, with a ER16 collet, and a variable speed (voltage) power supply.

It always astonishes me how much effort it is to wire up a controller, power supply, and all the wiring for the limit switches and motors. It is quite complicated, with a variety of power supplies, quite a bit of 110V wiring, and a ton of wiring to connectors. The wiring goes very quickly from orderly, to a big mess! It is important to design this, and really think about the routing of the wires, and the design of the controls and panels and cut outs.


Leave a Reply

Your email address will not be published. Required fields are marked *