Fab Academy · Universidad de Lima · Week 12

Machine Design

Group Assignment — Design a machine that includes mechanism + actuation + automation + function + user interface. Build the mechanical parts and operate it manually.

Explore
01

The Minimalist CNC

CNC Machine — final result
The Minimalist CNC

The Minimalist CNC

  • Micaela Córdova
  • Andres Mamani
Fab Academy Universidad de Lima

⚙️ Actuation

  • Files are converted into G-code
  • G-code sent via Universal Gcode Sender
  • Arduino Uno (GRBL) processes instructions
  • CNC Shield + A4988 drivers control the motors

🤖 Automation

  • 3 stepper motors (X, Y, Z axes)
  • Lead screw converts rotation to linear motion
  • Linear bearings ensure smooth movement
  • Flexible couplings connect motors

🖊️ Application

  • Draws designs on flat surfaces
  • Translates digital vectors into drawings
  • Enables precise and repeatable motion
Arduino GRBL Inkscape Bambu Lab Edgecam Autodesk Inventor

Project Schedule

Planned sequence of activities across the two weeks, from initial research through final documentation. Tasks are colour-coded by discipline.

Week 12 · Build Schedule 13 tasks · 5 disciplines · 2 weeks
Task
Week 1
Week 2
Mon
Tue
Wed
Thu
Fri
Mon
Tue
Wed
Thu
Fri
Research & References
3D Modeling (Inventor)
Technical Drawings (DXF)
Parts Procurement
Metal Cutting
Drilling & Finishing
3D Printing (Bambu)
Laser Cutting
Mechanical Assembly
Electronics Wiring
GRBL / G-code Setup
Testing & Calibration
Documentation & Presentation
Mechanical
Electronics / Procurement
Software
Testing
Research / Documentation

Individual Contribution

AM Andres Mamani

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.

MC Micaela Córdova

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.

02

Description

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.

03

Project Idea & Inspiration

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.

Commercial CNC reference machine in the lab

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.

Previous CNC project by the mechatronics team

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.

CNC workflow diagram
01 — Inkscape
Vector Design
Create vector design, export as SVG or DXF.
02 — G-code
Toolpaths
Convert design to toolpaths via Inkscape extension.
03 — UGS
Stream
Stream G-code to Arduino over USB.
04 — GRBL
Firmware
Interprets G-code, outputs step/direction signals.
05 — Drivers
A4988
Convert step signals to stepper motor current.
06 — Motion
Lead Screws
Stepper motors drive lead screws along X, Y, Z.

Main Components

Mechanical

ComponentQtySpecFunction
Flexible shaft coupling38 mm boreConnect motor shaft to lead screw
Lead screw + nut + sleeve38 mm Ø, ~40 cmConvert rotation to linear motion
Linear ball bearings (LM8UU)128 mmSmooth and precise linear guidance
Hardened steel shafts58 mm Ø, ~40 cmGuide rails for each axis
Shaft supports28 mmAlign and stabilize shaft ends
Standard bearings3608 ZZSupport rotating lead screw ends
Structural plates (laser-cut)Acrylic / plywoodFrame mounting and alignment
Fasteners (M3 screws, nuts, spacers)Assembly hardware

Electronics

ComponentQtyNotes
Arduino Uno (running GRBL)1Main motion controller
CNC Shield v31Mounts on Arduino, routes signals to drivers
A4988 stepper drivers3Microstepping up to 1/16
Stepper motors (NEMA 17)3X, Y and Z axes
Power supply 12V / 5A1Provides energy to the system

Software

ToolPurpose
InkscapeCreate and vectorize designs; generate G-code toolpaths via extension
Universal Gcode SenderSend G-code instructions to the machine via USB
GRBL firmwareRuns on Arduino; interprets G-code and outputs step/direction signals
Autodesk Inventor3D modeling and technical drawing export
04

The Design

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.

Inventor model step 1 Inventor model step 2 Inventor model step 3 Inventor model step 4

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.

Assembly view 1 Assembly view 2 Assembly view 3 Assembly view 4 Assembly view 5
05

Inventory

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.

Stepper motors and electronic components Full parts inventory
06

Mechanical Fabrication

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.

Metal cutting process Metal cutting detail
Cut metal structural parts

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.

Drill press operation Finished drilled holes

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.

G-code preview for CNC metal operations

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.

3D printed parts from Bambu Lab printer

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.

Laser cutting operation Laser cutting parameters
Laser cut finished parts

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.

Dimensional error in hole pattern Corrected design version
07

Assembly

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.

Full CNC mechanical assembly
08

Results & Final Machine

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

First motion test Pre-final state
Near-final assembly state

Final Machine

The completed CNC machine in its final state, after all wiring, calibration, and finishing.

Final CNC machine — front view Final CNC machine — side view

Machine in Operation

First coordinated test routine — all three axes moving in response to G-code commands sent via Universal Gcode Sender.

09

Presentation

Presentation slide
10

The Team

A photo of the team with our instructor, taken after completing the machine.

Project team with CNC machine
11

Future Improvements

The current machine demonstrates successful three-axis motion and responds correctly to G-code commands. Several improvements have been identified during testing:

Mechanical

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.

Electronics

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.

Software & UI

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.

Calibration

Complete a formal calibration procedure — measuring actual vs. commanded distances and adjusting steps-per-mm values — before using the machine for precision work.

12

Files