Established: January 19, 2010

The Peppermill project is an exploration into the design space of user interface devices that are able to source their power from the physical effort involved in interacting with them. We refer to this kind of device as being interaction-powered.

In the prototype Peppermill device, we use a geared DC motor and a simple electronic circuit to enable interaction-powered rotary input. When turned, the circuit provides a temporary power source for an embedded device, and doubles as a sensor that provides information about the direction and rate of input. To illustrate the capabilities of the Peppermill device, we have developed a remote controlled multimedia-browsing application.

The Peppermill in use.

The TEI 2010 paper “The Peppermill: An Interaction-Powered User Interface Device” describes the motivation, design and application of Peppermill in much more detail.

Make your own Interaction-Powered Device

The front-end electronic system, which generates power and provides signals relating to the direction and speed of rotation of the device, is available as a separate circuit – the Peppermill Power Board. This is very easily powered by a wide variety of motors and geartrains – even old cordless drills. With a user-selectable output voltage it can be used to power a range of embedded electronic solutions, including Arduino, making it easy for others to explore user-powered electronic devices.

Front view of Peppermill Power Board.

Rear view of Pepper Power Board.

How to use the Peppermill Power Board

Attach the terminals of a geared DC motor to the grey connector. Use the white switch to select the maximum operating voltage for your target circuit (2.5, 3.3 or 5.0 Volts), and connect the PPB to your target circuit using the header pins. The pins labelled V+ and GND provide a regulated power supply, and pins Speed and Direction can be connected to analog inputs on a microcontroller.

The PPB has a built-in microcontroller and an array of LEDs to provide instant feedback about the direction and rate of turn. To use this feature, set the black switch to CAL (Calibrate). Give the motor a quick turn, until you see the LEDs light up briefly. Set the switch to RUN, and when you turn the motor the LEDs should light up in a sequence that matches the direction and rate of turn.

Different motors will generate different amounts of power depending on the size of the motor, the gear-ratio of its gearbox and the rate of turn. Note that the PPB is designed for a maximum input of 24V and maximum output of 100mA.

The PPB is a research prototype and is provided as-is with no support, no warranty and no implication of suitability for any application; please treat it accordingly.


The downlad package is released under the Apache 2.0 licence, and includes the source and HEX files for the firmware running on the PIC microcontroller. It also includes a full bill of materials, well as the Gerber and Altium design files for the PCB.

You can also download the PPB schematic and bill of materials as a PDF file, or click on the image below to get a larger view of the schematic as a JPEG image.