DESCRIPTION

Low-Cost CNC Pen Plotter — Arduino UNO + GRBL + 3D Printed Frame

A fully 3D-printable, budget-friendly CNC pen plotter (drawing machine) built around parts you probably already have in a drawer: an Arduino UNO, a CNC Shield V3, three A4988 drivers, two NEMA-17 motors and a single 28BYJ-48 geared stepper for the pen lift. It writes text, produces clean technical drawings and even traces PCB artwork onto paper — all from a rigid, self-built Cartesian frame.

This design was developed as an engineering graduation project. The goal was simple but strict: build a reliable drawing machine using only cheap, widely available components, with no permanent hardware modifications. Everything here is printable, sourceable and reversible.

What it does?

Writes handwriting-style textDraws technical / vector drawingsTraces PCB copper artwork onto paper (great for toner-transfer prep)Runs on the open-source GRBL motion controller, so it's fully standard and hackable

System at a glance

PropertyValueKinematicsCartesian (X, Y, Z)Drawable work area251 mm × 222 mmPhysical travelX ≈ 253 mm · Y ≈ 224 mmXY driveNEMA-17 + GT2 belt on linear rodsZ (pen lift)28BYJ-48 geared stepper + pinion & rackControllerArduino UNO + CNC Shield V3Drivers3 × A4988 (1/16 microstepping)Power12 V supplyFirmwareGRBL (open source)

Mechanical design

The machine is a classic Cartesian layout: the X and Y axes position the pen tip over a flat sheet, and a compact Z axis lowers and lifts the pen against the paper. The whole structure rides on 8 mm linear rods with LM8UU bearings, keeping the moving mass low and the motion smooth.

X and Y motion

Both X and Y use the standard, proven desktop-CNC recipe: a NEMA-17 stepper driving a GT2 6 mm timing belt over toothed and idler pulleys, with the carriage sliding on linear rods. A micro limit switch sits at the end of each axis for referencing. This gives crisp, repeatable positioning across the full ~253 × 224 mm envelope.

Z axis — the interesting part

Instead of buying a third NEMA-17 just to lift a pen, the Z axis reuses a cheap, ubiquitous 28BYJ-48 geared stepper. Rotary motion is converted to linear pen travel through a pinion-and-rack mechanism:

Pinion: 22 teeth, 12 mm outer diameterRack: 64.25 mm long, 39 teethLinear travel per pinion revolution: ≈ 36.24 mmMaximum Z travel: ≈ 64.25 mm

Combined with 1/16 microstepping, this yields a very fine ≈ 904 steps/mm on Z — far more resolution than pen lifting needs, which keeps the pen-down/pen-up motion clean and quiet.

The pen uses a simple three-level scheme — pen-down (drawing on the paper surface), pen-up (a small ~2 mm hover for travel moves between strokes) and park (a safe resting height). These levels are referenced to the measured paper surface rather than a fixed offset, so the machine still works even if the pen is remounted at a slightly different height.

Limit switches

All three axes carry micro limit switches at their travel ends. Besides protecting the mechanism, they act as position references for the machine's start-up calibration, giving a repeatable origin without any expensive homing hardware.

Electronics & wiring

The electronics are deliberately kept to the most common, lowest-cost stack in the hobby CNC world.

Controller stack

An Arduino UNO (ATmega328P) runs GRBL and plugs straight into a CNC Shield V3. The shield hosts the three stepper-driver sockets, the microstep jumpers, and the limit-switch and motor connectors — all pre-routed to match GRBL's pin map, so no extra wiring is needed between firmware and board.

A4988 driver configuration

Each axis is driven by an A4988 module:

Microstepping: set to 1/16 via the MS1/MS2/MS3 jumpers under each driver. On the Z axis this smooths the 28BYJ-48's motion and reduces vibration.Current limit (Vref): trimmed with the on-board potentiometer to suit each motor.

The 28BYJ-48 bipolar trick

By default the 28BYJ-48 is a unipolar motor (5 wires) usually driven by a ULN2003 board — but the A4988 is a bipolar driver. The fix is elegant and fully reversible: isolate the motor's center-tap (red) wire so its two windings can be driven independently as a bipolar motor.

This step is mandatory. Without isolating the center tap, a 28BYJ-48 will not step correctly on an A4988. It's just a wire that gets disconnected — no soldering, no permanent modification.

Because this motor has a high coil resistance (≈ 420 Ω), its top speed and acceleration on Z are naturally limited. In practice, keeping Z feed ≤ ~200 mm/min and acceleration modest keeps every move reliable and step-loss-free. This is a physical property of the motor, so it's handled cleanly in the firmware parameters rather than fought against.

Pin map (GRBL / UNO / CNC Shield V3)

FunctionArduino pinNoteX STEP / DIRD2 / D5X axis step & directionY STEP / DIRD3 / D6Y axis step & directionZ STEP / DIRD4 / D7Z axis step & directionDriver ENABLED8Common to all A4988sX / Y limitD9 / D10Limit switch inputsZ limitD11See note belowSpindle EN / DIRD12 / D13Unused on a pen plotterReset / Hold / StartA0 / A1 / A2GRBL control inputs

Handy tip for CNC Shield V3 users: the shield physically wires the Z limit switch to D11. In stock GRBL, VARIABLE_SPINDLE reserves D11 for PWM and moves Z-limit to D12 — so the switch never reports. Disabling VARIABLE_SPINDLE returns Z-limit to D11 and makes the switch work again, with zero hardware changes. A pen plotter has no spindle, so nothing is lost.

Power & grounding

A single 12 V supply feeds the drivers through the shield; the Arduino is powered over USB or through the board. All grounds share a common reference. No extra power rails or modifications are required.

Bill of Materials

LM8UU linear bearing (8)8 × 350 mm aluminium rod (3)8 × 400 mm aluminium rod (2)3D printed parts (10)GT2 6 mm smooth idler pulley (5)GT2 6 mm 20-tooth pulley (2)GT2 6 mm timing belt (1 m)Ball caster wheel (2)NEMA-17 stepper (2)28BYJ-48 stepper (12 V) (1)M3×20 screws (5)M3×10 screws (10)M2×10 screws (8)M3×10 wood screw (8)M2 (8)/M3(2) nutMicro limit switch (5)22 AWG wire (1 m)Arduino UNO (1)CNC Shield V3 (1)A4988 driver (3)12 V power supply (1)2.54 mm 2-pin jumper (9)

Printing the parts

10 printed parts make up the frame brackets, carriages, motor mounts, pen holder and Z pinion housing.Recommended material: PETG for stiffness, temperature stability and durability of the moving parts.Printed on: Bambu Lab A1.Suggested settings: 3–4 walls and 20–40% infill for structural brackets; watch tolerances on the bearing seats and the pinion.

What you can make with it?

Handwriting & text — greeting cards, labels, signaturesTechnical / vector drawings — clean line art, diagrams, geometryPCB artwork — trace copper layouts onto paper as a base for prototyping

Dimensional accuracy is solid: a commanded 10 mm line measures 10 mm on paper, thanks to the correctly derived steps/mm values and keeping every axis under its step-loss limit.

Notes

This is an open, budget-oriented build meant to show that a dependable vector-drawing machine can be made from the cheapest common parts through good mechanical and electronics choices. Motion is handled by the open-source GRBL firmware. Feedback, remixes and build photos are very welcome — happy making!

REVIEWS & COMMENTS

See what other buyers think about this model - real feedback on quality,
accuracy, and usability.
There are no reviews or comments yet. Please be the first one to write it.
NEW
Recently added to CGTrader - explore one of the latest models on the marketplace.

CNC Pen Plotter 3D Printed Parts Arduino GRBL Drawing Machine 3D print model

$15.00
Royalty Free License (no AI)
Hire
Like this model to show appreciation to the designer.
See how many times this model was viewed.
Share this model to support the designer and boost their visibility.
File formats
STL
Stereolithography | 9 files<br />File Size: 1.53 MB
MP4
MP4<br />File Size: 14.2 MB
Provided by designer
Information and details shared directly by the model's designer.
3D printing
Indicates whether the designer marked this model as suitable for 3D printing.
Model is prepared for 3D printing
The designer indicates this model is prepared for physical 3D printing and includes printable file formats.
Units
Publish date
Model ID
Chat