A custom pen plotter designed in Onshape to draw physical 2D artwork with a moving pen carriage.
I wanted to make a drawing machine that turns digital designs into real pen strokes. The challenge I am working through is making the mechanical system smooth enough that the plotter draws clean lines instead of shaky ones: the frame needs to stay square, the carriage needs to move predictably, and the pen holder needs to lift and lower without throwing off alignment.
This project is a hardware pen plotter. The design includes a frame, belt/idler motion system, gantry, moving cart, toolhead, pen housing, stepper motors, and a servo-driven pen lift.
Current capabilities:
CAD assembly designed in Onshape
Bill of materials exported and cleaned
Firmware folder scaffolded
CAD exports, photos, and final firmware still in progress
Onshape CAD:
Bill of materials:
docs/bom.md
docs/bom.csv
The plotter is organized around a rigid frame and a moving gantry/toolhead system.
Frame and corner brackets
hold the plotter square and support the belt/idler stacks
Stepper motors and pulleys
drive the belt motion
Gantry extrusion and cart plates
carry the moving toolhead across the drawing area
Toolhead and pencil housing
hold the pen and handle pen lift/lower motion
Firmware
will control motor movement, servo position, homing, and plot commands
Hardware photos and CAD screenshots will go in photos/.
Needed before shipping:
photos/cad-overview.png Screenshot or render of the full CAD assembly
photos/frame-build.jpg Frame/corner bracket build photo
photos/toolhead.jpg Pen holder or moving cart photo
photos/first-plot.jpg Photo of the plotter drawing or its first output
docs/
bom.md Clean human-readable bill of materials
bom.csv Clean spreadsheet-friendly bill of materials
exports/
stl/ STL files for printed parts
drawings/ PDF or DXF drawings
*.step Full CAD exports
firmware/
README.md Firmware notes and planned controls
src/ PlatformIO or C/C++ source
include/ Shared headers
arduino/ Arduino IDE sketches
photos/
Build photos, CAD screenshots, and plot output images
- Open the Onshape CAD link above.
- Review the cleaned bill of materials in
docs/bom.md. - Export the full assembly from Onshape as a STEP file and place it in
exports/. - Export printable parts as STL files and place them in
exports/stl/. - Build the frame and motion system from the CAD and BOM.
- Add electronics and firmware once the controller board is chosen.
- Add build photos and a first-plot photo to
photos/.
For CAD review:
- Open the Onshape link in a browser.
- Use the Assembly tab to inspect the full mechanism.
- Use the BOM in
docs/bom.mdto match parts to the design.
For local files:
git clone https://github.com/Photun/pen-plotter.git
cd pen-plotterFor firmware:
Firmware upload instructions will be added after the controller board and motor driver setup are finalized.
For the full assembly:
- Open the assembly tab in Onshape.
- Right-click the assembly tab at the bottom.
- Choose
Export. - Pick
STEP. - Save the file into
exports/.
For 3D printing:
- Open the Part Studio or Assembly containing the printable part.
- Right-click the part or tab.
- Choose
Export. - Pick
STL. - Save individual files into
exports/stl/.
Design: in progress in Onshape
BOM: cleaned and uploaded
CAD exports: not uploaded yet
Firmware: scaffold added, code not written yet
Build photos: not uploaded yet
This project is licensed under the MIT License. See LICENSE.