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.
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.
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.
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.
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.
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.