Museum of the Hand

Based on my deep interest in technology as a creative tool and the use of technology to illuminate lost knowledge, I created this installation as a mechanism to re-teach humanity the skill and beauty of cursive (latin) script. The installation consists of the Cursive Machine, created in collaboration with my father, Robert H. Pigford, which receives input from a computer keyboard mounted to a classic school desk. Participants sitting at the desk are surrounded by walls made of semi-opaque scrim to amplify the one-on-one relationship between pupil and teacher. When the pupil (participant) types on the keyboard and presses “enter,” the machine demonstrates how to write these characters in cursive script.

View inside the installation (left) and outside (right)

Video Documentation of the Cursive Machine Operation


As of 2017, all but nine states and territories of the United States have adopted the Common Core State Standards for K-12 education. This curriculum does not require the teaching of cursive handwriting, rather it requires keyboarding and leaves the teaching of handwriting to the discretion of the school. Further, the standards require children to “Use technology, including the Internet, to produce and publish writing and to interact and collaborate with others.” The millennial generation is certainly well on their way to meeting this standard!

Cursive Machine in Detail

Originally constructed in 2012, the Cursive Machine is controlled by three Arduino microcontroller modules and four stepper motors with their associated stepper motor driver boards:   

Keyboard_SD_LCD Arduino (the one on the top, left of the machine)
Tension Control Arduino (the one in the top, middle of the machine)
GRBL Stepper Motor Arduino (the one on the top, right of the machine)

Pen and paper movements are directed via G-code commands which are text commands dictating exact position targets for movements in 3 dimensions.  G-codes were originally created by the GE Fanuc Company to control the automated milling and turning machines they produced for sale to many industries.  G-codes are in wide use today in almost all automated, computer numerical control (CNC) operations used to make things.  G-codes are also used to direct 3D printing machines and other machines where precision movement in 3 or more dimensions is needed.

When the viewer has typed his or her desired letters or spaces via the keyboard,  then hits ENTER, the Cursive Machine processes each letter separately from left to right as you would if you were hand writing these letters in cursive.  For each letter or space, a G-code file exists on a microSD memory card mounted on the Keyboard_SD_LCD Arduino microcontroller.  When a letter is to be written, the Keyboard_SD_LCD Arduino microcontroller finds the appropriate file on the SD card and sends that file’s text G-code commands to the GRBL Stepper Motor Control Arduino microcontroller where open source software called GRBL is running.

GRBL software running in the GRBL Stepper Motor Arduino microcontroller takes the text G-codes commands and computes values in terms of number-of-rotational steps and direction that the respective stepper motors should make to move to the next target point.  GRBL then sends those values to the appropriate X, Y, or Z stepper controller boards.  Those stepper motor driver boards, in turn, operate the three respective stepper motors, one for each direction:  The three directions are:

X  where the pen moves left and right,
Y  where the paper moves up or down, and
Z  where the pen moves down to the paper or up to a home position.

Stepper motors are special DC motors with 200 or more “steps” per one revolution of the shaft.  The ability of a stepper motor shaft to turn in such small increments gives the machine its precision.

Mid-line and baseline

Note that some letters end at the mid-height position, and some end at the baseline height.  A letter following a letter that ended on the mid-line must therefore start on the mid-line.  There are 54 G-code files, 2 for each letter (mid-line start, baseline start), and two for spaces.

Before the G-code files could be made, letters were drawn and saved as .eps files using Adobe Illustrator software.  Then each .eps file was subsequently processed with commercial software called Cut2D to create all the different G-code files.

Examples of baseline and mid-line versions of letters

Paper Tension control

Note that there is another Arduino microcontroller for Paper Tension Control.  The weight of an unpowered roller is used to keep the paper taunt over a back-bar so that the pen will not snag the paper.   The paper tension Arduino runs a program to maintain constant tension on the paper as it moves up and down (due to Y stepper motor action).  To do this, an Infra Red proximity sensor is mounted below the un-driven weight roller.  The IR sensor sends a position signal to the Tension Control Arduino microcontroller running PID (proportional, integral, derivative) software which creates an output signal. That signal is send to the Pololu stepper motor driver board which then directs the driven Tension Control roller to move in one direction (pull out more paper) or the opposite direction (send paper back in).  The combination of these actions maintains the desired mid-travel position of the un-driven weight roller thereby maintaining uniform tension on the paper under the pen.

The skateboard wheels are positioned to hold the paper against their respective hard rubber rollers to prevent the paper from sliding on the driven rollers.


An emergency stop circuit with red warning light is provided in case the pen carrying carriage moves to the left or right limit of its possible travel.  E-stop kills power to the machine so that the stepper motor will not burn itself up.  Resetting the machine requires the main power switch to be turned off, the carriage pushed toward the center of the traversing mechanism, and the main power switch turned back on again.


During the run of the exhibition, I taught workshops on how to build drawBots, (a simplified version of the drawing robots I created for the twoLovers installation), as an introduction to the Arduino prototyping platform and the use of physical computing technology as creative tools.

Share Project :