Group Assignment — Design a machine that includes mechanism + actuation + automation + function + user interface. Build the mechanical parts and operate it manually.
Explore
Project Schedule
Planned sequence of activities across the two weeks, from initial research through final documentation. Tasks are colour-coded by discipline.
Individual Contribution
Contributed to the 3D modeling of the CNC machine in Inventor and prepared the technical drawings. Supported the assembly process and contributed to the development of the control code. Guided key decisions based on experience with the tools, materials, and machines used.
Contributed to the design of parts and adapted models based on material measurements. Supported manufacturing and assembly, especially in fabricating metal and laser-cut components. Performed physical testing, ensured proper fitting, and prepared presentation materials including slides, video, and documentation.
This week was dedicated to the design and construction of a complete machine as a group project. The challenge was to integrate four disciplines into a single functioning system: a mechanical structure, an actuation system (stepper motors), an electronic control layer (Arduino + GRBL firmware), and a software workflow (Inkscape → G-code → Universal Gcode Sender). We chose to build a three-axis CNC machine — a cartesian router capable of milling and engraving — motivated by its direct relevance to the tools and processes we work with daily in the Fab Lab.
The assignment required us to design every component digitally before fabricating it, manufacture the parts using the machines available in our lab (metal cutter, laser cutter, 3D printer, drill press), assemble the full structure, wire and configure the electronics, and document the complete process both individually and as a group.
Assignments
Group assignment:
1. Design a machine that includes mechanism + actuation + automation + function + user interface.
2. Build the mechanical parts and operate it manually.
3. Document the group project and your individual contribution.
At the beginning, we were unsure about which machine project to develop. After researching different possibilities — including a delta robot, a plotter, and a pick-and-place system — we decided to build a CNC machine due to its versatility and relevance in digital fabrication. A CNC machine can mill, engrave, and cut, and it directly uses many of the tools and concepts we have studied throughout the course.
We were inspired by a small commercial CNC machine available in our laboratory, which helped us understand the basic structure and functionality of this type of system.
To further guide our development, we reviewed a previous CNC project created by the mechatronics team at our university. This reference gave us a clearer understanding of the design approach and assembly process specific to our institutional context.
One of the most valuable resources was a series of video tutorials by Prof. Garcia (CNC Fácil de Hacer en Casa). These covered the complete construction process — step-by-step assembly, motion system setup, and calibration considerations. Based on these references, we adapted the process to our own context, adjusting dimensions, materials, and fabrication methods according to the resources available in our lab.
System Workflow
The diagram below summarises the complete workflow of the CNC system — from vector design in software through to physical motion.
Main Components
Mechanical
| Component | Qty | Spec | Function |
|---|---|---|---|
| Flexible shaft coupling | 3 | 8 mm bore | Connect motor shaft to lead screw |
| Lead screw + nut + sleeve | 3 | 8 mm Ø, ~40 cm | Convert rotation to linear motion |
| Linear ball bearings (LM8UU) | 12 | 8 mm | Smooth and precise linear guidance |
| Hardened steel shafts | 5 | 8 mm Ø, ~40 cm | Guide rails for each axis |
| Shaft supports | 2 | 8 mm | Align and stabilize shaft ends |
| Standard bearings | 3 | 608 ZZ | Support rotating lead screw ends |
| Structural plates (laser-cut) | — | Acrylic / plywood | Frame mounting and alignment |
| Fasteners (M3 screws, nuts, spacers) | — | — | Assembly hardware |
Electronics
| Component | Qty | Notes |
|---|---|---|
| Arduino Uno (running GRBL) | 1 | Main motion controller |
| CNC Shield v3 | 1 | Mounts on Arduino, routes signals to drivers |
| A4988 stepper drivers | 3 | Microstepping up to 1/16 |
| Stepper motors (NEMA 17) | 3 | X, Y and Z axes |
| Power supply 12V / 5A | 1 | Provides energy to the system |
Software
| Tool | Purpose |
|---|---|
| Inkscape | Create and vectorize designs; generate G-code toolpaths via extension |
| Universal Gcode Sender | Send G-code instructions to the machine via USB |
| GRBL firmware | Runs on Arduino; interprets G-code and outputs step/direction signals |
| Autodesk Inventor | 3D modeling and technical drawing export |
Before manufacturing any physical part, we modeled the entire machine in Autodesk Inventor. This step was essential: it allowed us to visualize the spatial relationships between all components, detect dimensional conflicts early, and generate precise 2D drawings ready for fabrication. Each component was modeled as a separate part file and then brought together in a master assembly file.
The 3D model also served as the reference for material and dimension decisions. Since hardware (lead screws, bearings, shafts) had to be sourced locally, some dimensions were adjusted after procurement to match the actual measured sizes of purchased parts.
Inventor Modeling Process
Progressive stages of the model, from the first individual components through to the complete assembly.
Once the assembly was complete, we exported 2D technical drawings in DXF format directly from Inventor. These files were used as cutting guides for both the laser cutter and the metal cutting machine.
Assembly Views
The completed machine from different angles in Inventor, illustrating how each axis sub-system connects to the overall structure.
Before fabrication began, we laid out and catalogued all purchased and available components. This verification step confirmed that every part matched the dimensions used in the 3D model, and helped us detect discrepancies early — particularly for the stepper motors, bearings, and shafts.
With the 3D model finalized and all components verified, fabrication began. The structural plates were cut from aluminum flat stock using the metal cutting machine, following the DXF profiles exported from Inventor.
Metal Cutting
Base plates, axis carriages, and motor mounts cut from aluminum sheet. Multiple passes to maintain accuracy and reduce tool wear.
Drilling & Hole Finishing
Drill press used to create mounting holes for screws, bearings, and shaft supports. Positions marked directly from DXF drawings to ensure alignment. Each hole deburred manually.
G-code for Metal Operations
G-code files prepared to control hole positioning and cutting paths with higher repeatability, reducing manual marking errors on symmetrical hole patterns.
3D Printing
Bearing holders, motor mount interfaces, and cable management clips 3D printed on a Bambu Lab printer. PLA at 40% infill and four perimeter walls.
Laser Cutting
Secondary structural plates — base reinforcements, gantry panels, electronics enclosure — cut from 3 mm acrylic and 5 mm plywood. Parameters tested on samples first.
Design Corrections
When all parts were available, several dimensional mismatches were discovered between the digital model and fabricated components. Hole positions were the most common issue. These were corrected by adjusting parameters in Inventor and re-exporting DXF for re-cutting.
With all fabricated parts in hand and corrections applied, we proceeded to the full mechanical assembly. The sequence followed the order established in the 3D model: base frame first, then the X-axis linear system, followed by the gantry (Y-axis), and finally the Z-axis carriage with the spindle mount. Each sub-assembly was checked for alignment before proceeding.
Shafts and lead screws were inserted carefully to avoid bending. Bearings were pressed in by hand where possible, and with a small arbor press for tight fits. All M3 fasteners were tightened progressively to avoid deforming the 3D-printed and acrylic parts.
After assembly, we ran the first motion tests manually — moving each axis by hand to verify smooth travel and absence of binding. We then connected the electronics, flashed GRBL onto the Arduino, and configured the axis steps-per-mm values.
Early Tests
Final Machine
The completed CNC machine in its final state, after all wiring, calibration, and finishing.
Machine in Operation
First coordinated test routine — all three axes moving in response to G-code commands sent via Universal Gcode Sender.
A photo of the team with our instructor, taken after completing the machine.
The current machine demonstrates successful three-axis motion and responds correctly to G-code commands. Several improvements have been identified during testing:
Add diagonal bracing to the gantry to improve frame rigidity. Extend the Z-axis travel range by redesigning the spindle carriage. Install anti-backlash nuts on the lead screws to improve positioning accuracy.
Add limit switches to all three axes for proper homing routines and software travel limits. Build a dedicated electronics enclosure to protect components and improve safety.
Integrate a physical pendant controller (jog wheel + axis selector) for more practical manual operation. A touchscreen HMI running a simplified G-code sender interface is also being considered.
Complete a formal calibration procedure — measuring actual vs. commanded distances and adjusting steps-per-mm values — before using the machine for precision work.
Complete summary slide: actuation, automation, and application overview as presented for the Fab Academy Week 12 review.