The goal of this project is to design a system for anyone to submit an image and have a machine reproduce the image onto paper with an everyday drawing utensil. Our prototype will make use of four stepper motors in a rectangle, each attached by wire to a harness in the center for the drawing utensil, to pull it around the surface. The proccess will be controlled by a Raspberry Pi and have a camera attached to the harness for real-time feedback.


While there are existing machines capable of drawing images onto paper such as an XY-Plotter, they rely on having either a fixed drawing space or a fixed work space and have no real-time feedback. We plan to improve on this by having each motor independent and capable of altering their placement, allowing for a range of sizes of the drawing area. Our addition of a camera will also allow for real-time feedback for error correction and oppurtunities for human interaction.



The XY Plotter can do both pen drawing and laser engraving and also has a variety of open source software for customization and control. However, it's drawing space is limited and there's no feedback or interaction during the drawing process in contrast to GhostWriter.


The ZarPlotter has a unique and efficient design, and has a quick (and cool to watch) drawing process. Our design is simliar but we hope to remove the need for a fixed workspace and open source the software powering the system and have an accompanying API.


Functional Requirement:

  • System shall be able to recreate pictures and write out text via a provided drawing utensil
  • System shall be able to detect drawing surface and size, so as to produce an accurate reproduction given the space provided
  • System shall be able to receive feedback via camera/light and act on it
  • System should be able to analyze and respond to human input, such as playing the game Tic-Tac-Toe
  • System should have a mobile or web application that allows transfer or upload of drawing date and notify user of system status

Non - Functional Characteristics:

  • Reliability Requirement: System should be able to communicate wirelessly between motors and microcontroller
  • Portability Requirement: System should be able to be placed down on any size surface and begin drawing

Technical Specifications


Stepper Motors

We will need four of these, each responsible for pulling a wire towards itself, wrapping it onto a small axle. Estimated cost is 15$ per motor which comes out to 60$ total. We will acquire the part from Spark fun .

Stepper Motor Drivers

These will allow us to interface with the stepper motors and send specific commands to each so that they will be able to pull and release the wire attached to the drawing harness. Estimated Cost is 15$ per driver which comes out to 60$ total. We will acquire the part from Spark fun .

CMOS Camera

Camera will be attached to harness and will collect visual feedback for real time updates. This will give our system the potential for a variety of features such as playing tic-tac-toe with a human opponent or be able to detect the size of the drawing surface and update in real time. Estimated cost is 32$. We will acquire the part from Spark fun .

Raspberrypi 2

Raspberry Pi will be used as our main processing platform. Will be orchestrating the control of converting the desired image into pen movements and the different commands for each stepper motor. Estimated cost is 30$. We will acquire the part from Spark fun .




I2C will allow our Raspberry Pi to act as a master to the four slave stepper motor drivers in a quick and easy way to orchestrate the step and release of each in a prioritized manner.