This Machine Turned Me Into an Artist

Resources

The project

Since I’ve never been much of a sketch artist, I decided to take a different route—build a machine that could draw for me. Using stepper motors, an Arduino Uno, and custom 3D printed parts, I put together a CNC-style drawing robot that turns G-code into pen strokes.

Hardware

  • 2x Stepper motors → provide precise movement along 40cm linear rails.
  • GT20 pulleys & rubber CNC wheel → handle belt-driven motion.
  • 8mm linear rod + bearing → add stability for smooth travel.
  • SG90 servo → raises and lowers the pen.
  • Limit switches → enable reliable homing at startup.
  • Arduino Uno + CNC shield → the brain of the system, making stepper control plug-and-play.

All mounts, brackets, and fittings were designed in Fusion 360 and 3D printed. (Files available on my Printables page).

Electronics & Wiring

Wiring was done with jumper cables, zip ties, and textile sleeving for clean cable management. The CNC shield simplified stepper connections, letting me focus on tuning motion rather than building a driver circuit from scratch.

Software Workflow

  1. GRBL firmware uploaded to the Arduino → turns G-code commands into motor movements.
  2. Universal G-code Sender (UGS) → sends commands, handles homing, and tests motion.
  3. Inkscape (with a G-code extension) → converts vector graphics into toolpaths for the drawing machine.
  4. Servo control → managed through G-code, letting the pen lift on travels and lower for strokes.

Results

After some early troubleshooting (loose belts caused dotted lines at first), the machine started producing clean, consistent drawings. The ability to home reliably, manage pen lifts, and control motion accuracy made a huge difference.

The final machine is a solid entry-level plotter/drawing bot that shows how combining mechanical design, electronics, and open-source software can create something fun, functional, and surprisingly artistic—even if you can’t draw.