The Toggle project covers the hardware and firmware for a stepper motor driven head swapper for a 3D printer. On initial power-up the stepper motor is driven in one direction which loads one head to the print position and operates a limit switch. The direction is then reversed which loads the other print head, the number of pulses being recorded and checked against an expected value. Future calls to swap the print heads are signaled by setting or clearing an input port, the distance moved on each change being compared with the value recorded on power-up. A park position is available and signaled by anothe input port: Park position is a position with both print heads partially retracted and allows a touch probe to be used to probe the build stage for level and flatness.