This is the openEMSstim, a hardware board based on an EMS Toolkit from the University of Hannover, that was modified to be used in the UIST 2016 Student Innovation Contest.

What does this do?: This board modulates the amplitude of Electrical Muscle Stimulation (EMS) signals. Here you also find the software that communicates with the board and controls it (android, unity, etc). This board is controllable via Bluetooth and compatible with any BLE device you have (such as your smartphone). It also is controllable via Serial (USB) by plugging in a USB cable from your computer to the Arduino Nano on the board.

A must read before using

0. What you need:

This board does not generate any EMS signal, it is a amplifier that can only reduce the power of the signal you input to it. You need a EMS signal generator too, this will be your input. For your safety, use only: an off-the-shelve, un-modded, original, regulation-approved, medically compliant device. With your device use only standard EMS electrodes (wet, pre-gelled and approved electrodes). You will also need a phone with Bluetooth Low Energy (or a laptop with USB, but we prefer the phone).

How to connect your board


Need a step by step illustrated guide with pictures, here you go.

1. How to setup the openEMSstim? (video tutorial below)


Having problems? Read here the troubleshooting guide.

2. Learn the basics of EMS using an off-the-shelf muscle stimulator(video tutorial below)


3. Using our APIs to connect to different environments, e.g., Python (video below)


4. Want to learn more (get more apps, browse the code, hardware schematics, why this project)?

4.1 Download the source code, apps, arduino code, schematics

You can download all of the files here (in a zip: includes source code, schematics, API for Unity3D, Processing, NodeJs and Android).

The android app is here (download as apk, ready to install and use).

4.2 Have more questions that are not addressed here?

Have a look at the extensive tutorials we provide. If the answer is not there, get in touch.

4.3 Why this project and what is the UIST’16 SIC?

The openEMSstim is a mod by Pedro Lopes of the awesome EMS toolkit (made by Max Pfeiffer and Tim Dünte, at University of Hannover). See the License which acknowledges all the work from the original makers.

This project is forked to (1) provide a simpler design with a few changes, (2) preserve the original design and credit without pulling all the changes to it and (3) be used in the ACM UIST Student Innovation Contest 2016 without needing to change the instructions of the original project which is meant for HCI researchers and not for a UIST student audience.

Acknowledgments & Sponsors

HPI Logo Small

The openEMSstim software and the hardware for the ACM UIST Student Innovation Contest 2016 was kindly sponsored by the Hasso Plattner Institute.

The openEMSstim is a derived work from the EMS Toolkit by Max Pfeiffer and colleagues at the University of Hannover and a result of their wonderful work and the workshops we did together at CHI 2016 and World Haptics 2015. A big word of appreciation to them for their wonderful efforts.