Exploring CNC🔗

A CNC router turns a digital model into a physical part. The question is whether you understand what's happening between the model and the cut, or you're just clicking "generate toolpath" and hoping.
This site documents an open-source CNC workflow from first principles: designing in FreeCAD, generating toolpaths, understanding the G-code that comes out the other end, and driving the machine with Universal Gcode Sender — not just how to follow a setup guide, but why the workflow is built the way it is.
Who This Is For🔗
Anyone starting out with a hobbyist CNC router — a new build, a used machine, or a kit — who wants to actually understand the process instead of copying setup videos. No prior machining or CAD experience assumed.
Where Do You Start?🔗
Articles are grouped into topics — the subjects of CNC work, like coordinate systems and toolpaths — and each topic deepens across three levels: Essential (start here, no prior knowledge needed), Efficient (for makers going off-script), and Mastery (production-grade depth).
-
New to CNC?
Start at the very beginning — no prior knowledge assumed.
-
Staring at a generated file?
Learn the small vocabulary behind every G-code file.
📦 Essential🔗
The foundations — no prior knowledge needed. Work through these in order, by topic.
Machine Foundations
- Axes and Coordinate Systems — What X, Y, and Z actually mean, and why the machine needs two separate zeros
Reading G-code
- Reading G-code — The small vocabulary behind every generated file, and why "modal" state matters
⚡ Efficient (Coming soon)🔗
The real CAD/CAM workflow: modeling in FreeCAD, generating toolpaths, choosing feeds and speeds for the material and bit, and running production-quality jobs.
🎯 Mastery (Coming soon)🔗
Precision work: tolerances and fixturing, tool life and surface finish, machine calibration and squaring, and running repeatable batches.
Part of the BradPenney.io Network🔗
This site is part of a family of progressive technical learning resources:
- Exploring Electronics — Electronics and physical computing from first principles
- Exploring Linux — Linux for developers and platform engineers
- Exploring Python — Python automation for platform engineers
- Exploring Computer Science — CS theory for working engineers