How to Make a CNC Plotter Machine
A step-by-step build for engineers and makers who want a two-axis machine that draws, cuts vinyl, or engraves soft stock. We cover the frame, gantry, drive, electronics and GRBL tuning, plus the mistakes that quietly kill accuracy. Read it once before you buy parts.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
What matters before you cut metal
What make a cnc plotter machine actually consists of
A plotter is two linear axes stacked at 90 degrees, with a tool holder on the moving one. The X carriage rides on the gantry beam. The gantry beam rides on the side rails. Everything else, the motors, the belts, the board, only exists to move those two axes accurately and repeatably.
That framing matters because it tells you where error comes from. Bearing play, belt stretch, and frame flex all show up as the same thing on paper: a circle that closes 0.3 mm off. If you want to know how to make a cnc plotter machine that holds a line, you start by making the loop from tool tip back to frame as short and as stiff as you can.
Frame material sets the ceiling. Extruded aluminium 2020 or 2040 profile is cheap and squares up easily, but it flexes under a heavy spindle. Steel box tube or a welded steel frame is 3 to 5 times stiffer for the same envelope. MDF works for a pen plotter on A3 paper only. It creeps with humidity and you will re-level it every season.
Pick the envelope before the material. A 300 × 400 mm working area is the sweet spot for a first build: large enough to draw A3, small enough that 2020 profile stays stiff. Going past 600 mm on belt drive usually means dropping speed or accepting 0.2 to 0.5 mm of bow in the middle of long lines.
- 1X axisShort travel, carries the tool. Keep the carriage mass low.
- 2Y axisUsually the gantry. The longest span is the weakest link.
- 3Tool holderPen, knife, or rotary tool. Each changes the stiffness you need.
- 4Z axisA simple solenoid or leadscrew lift is enough for pen-up and pen-down.
Belt, screw and rail choices that decide your tolerance
GT2 belt with a 20-tooth pulley gives 40 mm of travel per motor revolution. That is fast and quiet, and it is what most pen plotters use. The trade-off is stretch: a 1,000 mm belt under 2 N of tool drag can extend enough to lose 0.05 to 0.15 mm of position. Pre-tension the belt to roughly 30 to 50 N and keep the unsupported span short.
A leadscrew removes stretch almost entirely. A TR8 × 2 screw gives 2 mm per revolution, so resolution goes up and speed goes down. Use screws on the axis that carries the heaviest tool. If you are cutting vinyl or engraving with a 300 W spindle, put a screw on the gantry and a belt on the carriage.
Rails matter more than most first builds admit. MGN12 linear rail with a preloaded block holds 0.02 mm running parallelism out of the box. Cheap round rod with bronze bushings will develop 0.1 mm of rattle within a few hundred hours. If you plan to engrave, buy the rail the first time.
Stepper size follows the load, not the frame. NEMA 17 at 1.5 to 1.8 A per phase drives a belt plotter with a pen without a problem. Add a rotary tool and the moving mass triples, so step up to NEMA 23 at 2.8 A and check that your driver can supply it. Undersized motors lose steps silently and the drawing just drifts.
- 1Belt driveFast, cheap, some stretch. Good for pen and light knife.
- 2LeadscrewSlow, rigid, repeatable. Use where the tool pushes back.
- 3MGN12 railPreload holds 0.02 mm parallelism. Worth the cost.
- 4NEMA 17 vs 2317 for pens, 23 once the carriage gets heavy.
Wiring the controller so the machine stays quiet
GRBL on an Arduino Uno with a CNC shield is the standard low-cost path. It reads G-code over USB, runs three step/dir channels, and has enough headroom for a plotter. Flash GRBL 1.1 or newer, because the older versions handle arcs differently and you will see faceted circles.
Power the steppers from a separate 24 V supply, not from the USB rail. A 24 V 5 A supply covers two NEMA 17 motors and a small spindle with margin. Steppers draw current in bursts; a supply that is too small causes mid-drawing resets that look like software bugs.
Run motor cables away from limit switch wiring. Step pulses are fast edges and they couple into anything running parallel for a meter. Twisted pair for each switch, or shielded cable with the shield grounded at the control box only. This single change removes most phantom limit trips.
Set the driver current with the motors disconnected from the mechanics, or at least with the machine powered down between adjustments. A common mistake is setting current too high to stop missed steps. That just heats the motor until it derates and starts skipping. Set to 80 percent of rated phase current and check the motor case stays below 60 °C after 30 minutes.
- 1ControllerArduino Uno plus CNC shield, GRBL 1.1 or newer.
- 2Supply24 V 5 A separate from USB. Avoids resets.
- 3Cable routingKeep step and switch wires apart. Shield ground one end.
- 4Driver current80 percent of rated phase current. Watch motor temperature.
Getting from a drawing to G-code without distortion
The toolchain is short: SVG or DXF in, G-code out, GRBL runs it. Inkscape with the Gcodetools or J Tech extension handles SVG well for pen work. For DXF, use a CAM step that lets you set the tool diameter and the pen-down depth explicitly, because a plotter has no cutter compensation of its own.
Scale is the first thing to verify. Send a 100 mm square and measure it with calipers. If it comes out 100.4 mm, your steps per mm is 0.4 percent high. Recalculate as new value equals old value times measured divided by commanded, and write it back. Do this once per axis before anything else.
Watch the acceleration setting. GRBL default acceleration of 10 mm/s² is gentle but slow. Raising it to 200 to 500 mm/s² speeds up pen work a lot, but too much and the belt skips on direction changes. Raise in steps and rerun the same test drawing until corners stay sharp.
Curves are where cheap machines show their limits. GRBL approximates arcs with short line segments. If the segment length is too coarse you get visible facets. Keep the arc tolerance in your CAM tool at 0.02 to 0.05 mm for pen work. Finer than that produces huge files with no visible gain.
- 1InkscapeGood SVG to G-code path for pen and knife work.
- 2CalibrationCommand 100 mm, measure, correct steps per mm.
- 3Acceleration200 to 500 mm/s² for pens. Test at each step.
- 4Arc tolerance0.02 to 0.05 mm. Finer wastes file size.
Five mistakes that ruin a first plotter build
The most common failure is an unsquared frame. It is invisible until you plot a rectangle and measure the diagonals, and by then the rails are bolted down. Check square at every assembly stage, not at the end.
The second is loose belt tension. Too slack and the carriage lags on direction changes. Too tight and you load the motor bearings and hear a whine that never goes away. 30 to 50 N on a GT2 belt is a workable band for a machine of this size.
The third is mixing motor sizes without changing the driver. A NEMA 23 on a driver set for a NEMA 17 will run hot and lose steps under load. Match the driver current range to the motor rating and set it to 80 percent.
The fourth is running motor and limit switch wires in the same bundle. The symptom is random limit trips mid-job. It looks like a firmware bug and it is not. Separate the runs or shield them.
The fifth is skipping the calibration step. A plotter that draws a 100 mm square as 100.4 mm is not broken, it is uncalibrated. Two minutes with calipers and a GRBL parameter fixes it.
- 1Unsquare frameDiagonals off by more than 0.5 mm means rebuild, not adjust.
- 2Wrong belt tensionSlack lags, overtight whines. Target 30 to 50 N.
- 3Driver mismatchMatch driver current range to motor, set to 80 percent.
- 4Shared cable runsPhantom limit trips are usually coupling, not firmware.
- 5No calibrationMeasure a 100 mm move before you judge the machine.
Step by step: how to make a cnc plotter machine
- 11. Fix the working envelope and draw it full sizeDecide travel first, for example 300 × 400 × 50 mm. Draw the frame outline on a sheet of paper at 1:1 and lay out every rail and motor on it. This catches interference before you drill. Most first builds fail here because the motor body collides with the gantry at the end of travel.
- 22. Cut and square the frameCut 2020 or 2040 profile to length with a carbide blade and deburr both ends. Assemble on a flat surface, not on a bench with a bow. Measure corner to corner: the two diagonals must match within 0.5 mm before you tighten the corner brackets.
- 33. Mount the Y rails and gantryBolt the side rails parallel to each other and check with a dial indicator along the full travel. Target 0.05 mm parallelism over 400 mm. If you use a dual-driven gantry, install both motors and belts now, and set belt tension to 30 to 50 N.
- 44. Mount the X rail and carriageFix the gantry beam, then the X rail on top of it. Confirm the X rail is perpendicular to Y within 0.1 mm over its length. A square placed against the gantry is not accurate enough at this step; use a dial indicator swept along the rail.
- 55. Install the tool holder and Z liftA solenoid lift works for a pen and weighs almost nothing. A leadscrew Z is needed once you add a rotary tool. Keep the pen tip concentric with the carriage to within 0.2 mm, or every pen change shifts the origin.
- 66. Wire the electronics and set driver currentConnect steppers to the CNC shield, supply 24 V to the driver input, and keep switch wiring away from motor cables. Set each driver to 80 percent of the motor rated phase current. Power up with the motors unloaded and confirm they hold position.
- 77. Flash GRBL and calibrate steps per mmUpload GRBL 1.1 or newer. Send a 100 mm move on each axis, measure the result, and correct steps per mm as old value times measured divided by commanded. Repeat until the error is under 0.1 mm over 100 mm.
- 88. Run a test drawing and tune accelerationPlot a 100 mm circle and a 100 mm square. Check roundness and corner sharpness, then raise acceleration from the default 10 mm/s² in steps until corners start to round. Back off one step and record the value on the machine.
Drive and rail selection by tool type
Pick the column that matches the tool you plan to mount, not the one you might add later.
| Tool | Drive | Rail | Expected repeatability |
|---|---|---|---|
| Pen on paper | GT2 belt, 20T pulley | Round rod, bronze bushing | ±0.2 mm |
| Pen, longer life | GT2 belt, 20T pulley | MGN12 linear rail | ±0.05 mm |
| Vinyl knife | Belt on X, screw on Y | MGN12 both axes | ±0.05 mm |
| Light engraving | TR8 × 2 leadscrew | MGN12, preloaded block | ±0.02 mm |
| Soft metal marking | Leadscrew, NEMA 23 | MGN15, preloaded block | ±0.02 mm |
Questions that come up during the build
How much does it cost to build a CNC plotter?
We do not publish build costs because they swing with the envelope, rail grade and whether you own the tools. A pen-only machine on 2020 profile with round rod is the cheapest path. Every step up in rail quality and drive type adds cost but removes a source of error.
Can a CNC plotter cut metal?
Not in any useful way. A plotter frame and belt drive are sized for gram-scale tool loads. Cutting aluminium needs a rigid spindle mount, a leadscrew on both axes, and a flood or mist coolant path. That is a different machine class.
What size stepper motor do I need?
NEMA 17 at 1.5 to 1.8 A per phase is enough for a pen or light knife on a belt drive. Step up to NEMA 23 at 2.8 A once the carriage carries a rotary tool, and make sure the driver can supply that current continuously.
Do I need limit switches?
They are not strictly required but they make homing repeatable. Without homing, every power cycle loses your origin and you re-zero by hand. Fit them on both ends of each axis and route the wiring away from motor cables.
Why does my plotter draw ovals instead of circles?
Almost always a calibration or belt tension problem. If X and Y steps per mm are correct and the belt is properly tensioned, check the gantry for racking, meaning the two sides of the bridge are not moving together. A dual-driven gantry fixes most racking.
How accurate can a home-built plotter be?
With MGN12 rails, a screw on one axis and proper calibration, ±0.05 mm repeatability is realistic. A belt-driven pen plotter on round rod lands closer to ±0.2 mm. The frame and rails set the floor, not the controller.
Need the plotter brackets and plates machined?
Send your frame drawings and we will quote the machined parts, from a single prototype to a full run.
12-hour quote±0.005 mm tolerance100% inspection