Posted on

Project Report: Hanging Pen Plotter

hanging plotter

One of our members, Jeremy Rans, is currently working on a hanging pen plotter, i.e. a machine that draws on a vertical surface with a suspended pen. The inspiration for the project came from this article on Hackaday. The parts being used include two NEMA-17 stepper motors for controlling the X-Y position of the pen, two EasyDriver stepper drivers, a servo for lifting the pen on and off the drawing surface, and an Arduino Uno for controlling the motors.

The main goal of the project is to make a plotter that can be easily attached to a wall-mounted whiteboard of any size. Most vertical plotters rely on the drawing surface being slightly inclined so that gravity applies the force necessary for the pen to write. Since that’s not really an option with wall-mounted whiteboards, magnets will be used to hold the pen against the board. The plotter will draw using G-Code instructions, a common choice for this type of device.

So far, most of the work done that has been done has been on the software. That includes the Arduino sketch for driving the motors, for which the AccelStepper library has been very helpful. AccelStepper allows for the stepper motors to be driven concurrently which cuts down on a lot of the math that would be involved in having to drive the motors one at a time. The other part of the software is a simple python program for reading in G-Code instructions and telling the Arduino how many steps each motor will need to take to satisfy each instruction. The software was recently tested with a quickly hacked together plotter which can be seen in action in the video below.

With most of the programming work out of the way, the current focus is on the design of the pen holder, the motor mounts & the line guides. The line guides are basically magnetic hooks that the suspension line will run through at the upper left and right corners of the desired drawing area. This allows for the motors & other electronics to remain close together.

Stay tuned for a future update in which we’ll feature the finished product!