Home-built CNC Machine

Project · Making · 20/09/2026

cncfreecad3d printinggrblarduinostepper motorspen plotterdremelrouterdrag knife
Project

A desktop CNC machine designed from scratch in FreeCAD and built from 2020 aluminium extrusion, MGN12H linear rails and lead screws, driven by GRBL on an Arduino UNO with a CNC Shield V3 and A4988 drivers. It started life as a pen plotter and has grown a set of swappable z-axis sleds: a spring-loaded pen, a Dremel spindle, a Ryobi trim router, and a swivelling drag knife for card and vinyl.

Complete CAD assembly of the CNC machine in FreeCAD

The frame and motion

The base is a 400 mm square of 2020 extrusion with 300 mm uprights and a 400 mm cross bar. Two 400 mm linear rails on the base carry the X axis, two more on top of the uprights carry the Y axis, and a 150 mm lead screw moves the Z axis. 400 mm lead screws drive X and Y from Nema-17 steppers in printed motor mounts. Every part in the assembly is aligned to its real bolt holes, so the printed sleds, mounts and brackets go on the machine exactly as modelled.

Animation of the three axes moving, rendered from the FreeCAD assembly

Electronics and software

A 12 V 10 A supply feeds the CNC Shield through a barrel jack and a lit rocker switch. The A4988 drivers are current-limited with their trim pots, and limit switches on each axis let GRBL home itself. G-code is sent from Universal Gcode Sender over USB at 115200 baud. The first jobs were circles to check the pen lifted and lowered correctly and that X and Y moved the right distance, then a cat and some numbers.

The machine with the pen sled fitted and a pen clamped in A cat and some numbers drawn by the pen plotter

Swappable tool sleds

Every sled uses the same 130 x 80 mm base with the same eight M3 holes for the rail carriages and four M4 holes for the lead screw sled, so any of them bolts straight onto the z-axis and you swap tools without touching the rest of the machine (and re-zero afterwards).

  • Spring-loaded pen sled: the pen rides in a carrier on two 8 mm rods and LM8UU bearings with a spring pushing it down, so it presses with a light, even force even on an uneven bed. A V-groove and clamp screw take anything from a pencil to a 15 mm marker.
  • Dremel spindle sled: a Dremel 8220 screws its threaded nose into a printed thread in the holder and three knob screws at 120° clamp the body, for light routing and engraving in wood, MDF, plastics and PCBs.
  • Ryobi router sled: an 18 V ONE+ trim router clamped by its 61 mm motor housing in a printed split ring with two M5 bolts, offset forward so the battery clears the z-axis motor.
  • Drag knife: a 12 mm shank that clamps into either pen sled like a pen. Two 608 bearings let a holder carrying a standard Stanley trapezoid blade swivel freely; because the point trails the axis, the drag of the cut turns the blade to face the direction of travel with no motor or software.
Spring-loaded pen sled Dremel spindle sled with the Dremel fitted Ryobi trim router sled Exploded view of the swivelling drag knife

Enclosure

An 18 mm MDF box with a clear acrylic door keeps the Dremel's dust and noise in. The inside is the machine's 550 x 550 x 400 mm envelope plus 50 mm clearance all round; all five panels cut from one 1220 x 2440 sheet. Like everything else in the project it is driven by a VarSet in FreeCAD, so changing the envelope moves every panel, hole and bracket with it.

Cutaway of the enclosure around the machine

Workflow

Each printed part has its own FreeCAD file with a PartDesign body driven by a VarSet, a notes file recording the design decisions, and versioned 3MF and STL exports next to it. The README is a full step-by-step build guide, and a spreadsheet BOM lists every part with links and prices.

screenshots
CAD assembly Pen plotter test drawing Spring-loaded pen sled