Tabletop CNC Router


Challenge


During my first semester at MIT I was introduced to the wonderful world of CNC tools, such as mills, lathes, routers, laser cutters, and 3D printers. Not wanting to go back to a life empty of such wonders, I decided in my second semester to build my own CNC router in ‘2.70 - Precision Product Design’ to help me keep designing and making things when I returned home to the UK. To start the design process, I set out a number of functional requirements for my router:

  1. Can be dissasembled to fit inside a regular airline suitcase allowance (90x75x43cm)
  2. Precise to 0.1mm
  3. $300 budget
  4. Can cut both aluminium and wood
  5. Fits standard router bits and attachments
  6. Safe to use

With a lot of tabletop CNC routers available to buy online already, the challenge was to design and build something that could perform on par with the current offerings, while avoiding the $1000+ price tags attached to them. Achieving the target precision of 0.1mm meant creating a comprehensive error budget for my design.

The entire process is documented week-by-week on my blog - please have a look if you want a deeper look into my design process, including more scans from my notebook.

Solution


My $300 budget forced me to be resourceful in the design of my machine. I identified the components which would have to be bought in, such as the motors, power supply, leadscrews, and nuts and bolts. This left me with very little cash to play with. To keep the cost of the structure down, I relied on the abundance of T-slot aluminium extrusion on the MIT campus to make the main beams of the router. I also identified the bearings as the main source of error (and cost) for my machine, and spent a long time developing DIY bearing concepts. The slides below show the progression of these designs.

I settled on a V-and-flat arrangement with rolling wheels, then turned to my attention to the structure. I used an error budgeting spreadsheet to track the displacements and rotations due to applied forces through the structure, splitting the structure into sections and using homogeneous transformation matrices to join them all together. A cartoon representation of the structure is shown in the slide below, showing the serial elements in the structural loop. By assigning a stiffness matrix to each element in my evolving design, I could trace the effects of design changes to the stiffness of the final machine.

I machined all the structural parts in MIT’s Hobbyshop. After making my first design iteration for the Y axis, I was forced back to the drawing board due to the excessive number of unique parts involved. This led to a great streamlining of assembly and increased stiffness.

Results


Time constraints limited me to only finish two of the three axes for my router, leaving the main bed and X-axis still to be fully designed and made. Preliminary tests of the Y- and Z-axes show good repeatability, with the axes responding to GCode commands correctly. With stock material still to hand, all that remains is to finish designing the bed and X-axis and fabricate the parts, before full testing can take place. Watch this space!