Introduction: MuscleCom - Muscle Controlled Interface

MuscleCom offers a new an innovative way for physically disabled patients to communicate like never before. By measuring EMG values from a person's muscles, the user can control a user interface that will help them communicate on a day to day basis. Through the use of relatively cheap and durable components, we have developed a low-cost and easy to use product/prototype with a low learning curve.

The hardware prototype is based on a Raspberry Pi 3 Model B in a 3D printed enclosure that is running a NodeJS server with a REACT frontend that synchronizes the pulses from the users' muscles.

An example of people that could make use of this product are ALS patients and likewise. People that are able to control a (few) muscle(s) but not able to talk or point. This device is a simple to use interface that gives the patient more independence and more fun.

Please do note: This product is NOT a medical device and is not intended to be used as such or as an accessory to such. It has been designed by students, as a class project.

Step 1: Requirements

Hardware Requirements

  • 1x Raspberry Pi 3B (OpenCircuit)
  • 1x 8GB Micro SD Card + Adapter (OpenCircuit)
  • 1x Micro USB Power Cable + Plug 5V 2.5A (Amazon)
  • 1x RPI3 5 Inch LCD Touch Screen (AliExpress)
  • 1x UTP cable (Amazon)
  • 3x Myoware Muscle Sensors (Adafruit)
  • (incl. 9x 24mm biomedical sensor pads (Sparkfun))
  • 1x 12-Bit ADC: ADS1015 ( Adafruit)
  • 3x Jack Plug Male (like this)
  • 3x Jack Plug Female (like this)
  • 4x 1.5m Sensor Cable (double core, shielded) (AliExpress)
  • 1x Prototyping board (AliExpress)
  • 4x Resistor 330 Ohm (AliExpress)
  • Some red, black and other colored wire

Approximate total cost with above links: ~$130

Software Requirements (Local dev)


  • 5V / min.2.5A (!) Battery Pack (like Nierle, which works perfectly)

Do note: Some of the webshops used above are in Dutch, but English equivalents shouldn't be hard to find.

Step 2: Raspberry Pi Setup

Download requirements

Please download the following items in preparation:

Formatting Micro SD card

  1. Put the SD card in your computer. When prompted to format, choose no
  2. Open SD Card Formatter
  3. Select the Micro SD card
  4. Choose Quick Format
  5. Click Format

Install Raspbian

  1. Unzip the downloaded Raspbian .zip file.
  2. Open Etcher software
  3. Select the unzipped Raspbian .img file
  4. Choose the Micro SD card to write to
  5. Click Flash
  6. After the flashing process is done: If prompted to format by your OS, choose no
  7. Open the Micro SD card root and place a file called ssh in the directory (no extension)

Connect to the Raspberry

The Raspberry has default login credentials, used in the steps below.

  • Hostname: raspberrypi
  • Username: pi
  • Password: raspberry
  1. Disconnect the Micro SD card from your computer and place it in the Raspberry Pi
  2. Make sure your computer is connected to internet via wifi
  3. Connect a UTP cable to your Raspberry, and the other end in your PC
  4. Plug in the Micro USB power adapter

From here, the tutorial will split into 2 parts. One for Windows and one for Mac users.


  1. Use the Windows+R keyboard shortcut to open the Run window
  2. Type in: ncpa.cpl and press OK to open the control panel with network adapters
  3. Click on your Wifi adapter with the riight mouse button, and select properties
  4. Go to the sharing tab, and check "Allow other network users to connect througb this computer's internet connection". NOTE: If this was already checked, please uncheck, save, and check again.
  5. Save the changes by pressing OK
  6. Open Putty
  7. Type the following in hostname (and replace HOSTNAME with the correct value):
  8. Click Open


  1. Open System settings
  2. Go to sharing
  3. Choose internet sharing in the left column (don't enable yet)
  4. Share your connection from Wi-Fi
  5. To computers using Ethernet
  6. Enable internet sharing by checking the box in the left column
  7. Start your terminal and type (and replace HOSTNAME with the correct value):
  1. ssh pi@HOSTNAME.local

Update packages

Before installing anything, update the installed packages by running the following commands:

sudo apt-get update
sudo apt-get upgrade

Install Git
Use the following command to install Git:

sudo apt-get install git

Install screen driver

If the screen does not work out of the box. Check this link for a step-by-step Getting Started on the screen.

Install MuscleCom

Clone the repository

Install Musclecom by running this command:

 bash /PATH/TO/REPO/scripts/

Step 3: Connecting Wires

Connect the wires according to the schematics. Please note these schematics contain 3 sensors. You can connect up to a maximum of 4 sensors with this setup because the ADC has only 4 analog inputs.

The shields will need about 2.9V up to 5.7V. In this design, we'll use them at 5.0V because it has multiple advantages over 3.3V.

When soldering the sensor cables, make sure to use the shielding as ground. This ensures signal strength and less noise.

If you're not using a micro USB plug to power the Pi (like we did), make sure to solder the leads to the contacts underneath the micro USB plug of the Pi. This way it still uses all of the circuitry which is needed for safety and to work properly.

Do note: In the schematics, the sensors aren't the real sensors because the Fritzing files for those weren't on Github yet.

Step 4: 3D Printing

All of the casings that were designed for this prototype are available in STL format and have been printed on an Ultimaker 2+ and Ultimaker 2Go in high detail.

There are 4 STL files:

  • Main case
  • Main case lid
  • Sensor case
  • Sensor case lid

Step 5: How to Use

Please note: The user manual for this product is written in Dutch as this was an unfortunate requirement for the project. Will be translated into English in the future.