This was my final project for the Designing with Raspberry Pi course at Douglas College. I designed and built a CNC pen plotter using 3D-printed parts modeled in Autodesk Fusion and developed the control software from scratch. The project was featured in a Douglas College article.
To keep costs low, nearly all mechanical components were 3D printed, including the structural frame and motion system. Only essential off-the-shelf parts such as motors, bearings, and the pen were sourced externally. Even the timing belts were printed in flexible TPU filament.
The plotter runs on custom software developed specifically for this project. It includes a GUI with multiple drawing modes, including direct image upload. Uploaded images are processed using automated edge detection (Canny), followed by toolpath generation via depth-first traversal of the extracted line data.
In addition to image tracing, the software supports procedural modes such as random maze generation, spirograph-style patterns, and text rendering. Stepper motor control is handled with substepping and acceleration to ensure smooth and responsive motion.