My old apartment had a full wall whiteboard. I had some spare robotics parts lying around at the time so I thought I’d try to build something fun.
The printer consists of two stepper motors at the top two corners of the drawing surface connected by spools to a marker in the middle. By carefully controlling how the motors spin, you can move the marker around the board and draw. An arduino accepts commands from a python program and drives the steppers though a stepper driver circuit.
I wrote two python programs for the printer. The first simply typed text and the second converted a bitmap image to a sequence of lines that could print out an approximation of the picture. This program involved a combination of edge detection and density detection algorithms.
Future iterations could have the ability to lift the marker up from the board. I am also considering building a much larger scale version that can create murals.