Following this instructables you will be able to build a hand prosthesis actuated through the myoelectric impulses read from Myo armband by Thalmic Labs. This guide also provides:

  1. the code to send this data into cloud by using Intel Edison + Arduino breakout board so that orthopedics can follow the progress of the user and can suggest him exercises and use methodologies to gain a perfect control of his prosthesis.
  2. the code to analyze EMG and IMU data with Wolfram Mathematica. This way, using machine learning

    algorithms, the best calibration for each user can be reached.

The prosthesis realized in this case is ADAM'S Hand. More info on this project:

Step 1: Flash Custom Firmware on the Bluetooth Module


  1. BLE module with TI CC2540 / CC2541 chip. A good choice is HM-11


  2. CC Debugger or Arduino Uno/Leonardo with CCLoader sketch

  3. Custom firmware for TI CC2541

  4. Microsoft Windows Machine

  5. Soldering equipment, breadboard and Dupont jumper.


  1. Solder the Dupont jumper as in figure (the pins DebugData, DebugClock and Reset are only used for flashing firmware).
  2. Download the CCLoader from https://github.com/RedBearLab/CCLoader
  3. Load the sketch "CCLoader.ino" that you find in the folder CCLoader-Master -->Arduino on the Arduino Uno or Leonardo board.
  4. Wire the HM-11 with the Arduino as in figure.
  5. Download the file MyoBridge_CC2541 and put it in the folder CCLoader-Master --> Windows.
  6. Open Command Prompt in the folder Windows and execute the command: CCLoader.exe PortNumber MyoBridge_CC2541.bin BoardType (where PortNumber is the number of the serial port where Arduino is connected and BoardType is 0 or 1 respectively for Arduino Uno or Leonardo).

  7. Wait a few seconds to flash the firmware and the module is ready to use.

Step 2: Connect Arduino to Myo Armband Through HM-11


  1. Arduino Uno/Leonardo
  2. Myo armband by Thalmic Labs (store.myo.com)
  3. Soldering equipment, breadboard and Dupont jumper


  1. Connect the following pins, as shown in the figure:
    • HM-11 TX to Arduino RX (in our sketch SoftwareSerial is used, then the RX pin is D2);
    • HM-11 RX via voltage divider or logic level shifter to Arduino TX (in our sketch SoftwareSerial is used, then the RX pin is D3). The voltage divider or logic level shifter protects the HM-11 from 5V of Arduino; in this example 20kohm and 10kohm resistors are used;
    • HM-11 VCC to Arduino 3.3V output;
    • HM-11 GND to Arduino GND.
  2. Download MyoBridge library from: https://github.com/vroland/MyoBridge and add it to Arduino IDE.
  3. Load the sketch "ReadMyo.ino" to Arduino board.
  4. Power ON the Myo by connecting it to your pc through USB cable and wear it. Disconnect Myo USB cable and open Arduino Serial monitor. Keep attention to the baudrate (in the sketch it's set to 115200).
  5. You should now be able to read EMG, IMU and POSE data, as shown in the serial monitor figure.

NOTE: If you don't want to print POSE, EMG or IMU data comment respectively lines 77, 134 and 144.

Step 3: Connect Sensor and Servo Motor to Arduino and Control Them With Myo


  1. Myo + HM-11 + Arduino from previous steps
  2. LM35 Temperature sensor
  3. 2 servo motors
  4. Dupont jumper


  1. Connect the servos and the temperature sensor as shown in the image.
  2. Load the sketch "ReadMyoServo.ino" to Arduino boar.
  3. Open the Arduino serial monitor with 115200 baud rate to read the sensors data and to control the servo with Myo pose signals.

Step 4: Send Myo and Other Sensors Data in Cloud With Intel Edison


  1. Intel Edison + Arduino Breakout Board
  2. Myo + HM-11 + Arduino + Sensors and servo from previous step

  3. Dupont jumper


  1. Connect Arduino to Intel Edison + Arduino breakout board through the serial line (Arduino TX to Edison RX and viceversa).
  2. Connect the GND of the two boards.

  3. Load the sketch "ReadMyoServo.ino" to Arduino board.
  4. Load the sketch “DataCloud.ino” to Edison board through Arduino IDE (modifying the SSID and Password of your wireless network)

  5. Open the Arduino serial monitor with 115200 baud rate to read the IP address of your Intel Edison.

  6. Open your browser at the Edison IP Address (use 8080 port, for example to read the values of the sensors in real time.

Step 5: Analyze Myo Data With Wolfram Mathematica


  1. Myo + HM-11 + Arduino from previous steps
  2. Wolfram Mathematica


  1. Load the sketch ReadMyo.ino on the Arduino board.
  2. Download "SerialIO.zip" from library.wolfram.com/infocenter/Demos/5726/...
  3. Install it in /Users/username/Library/Mathematica/Applications. If you need more info you can check williamjturkel.net/2011/12/25/connecting-...

  4. Open the file "MyoMath.nb" and initialize the serial connection by evaluating the red (* SERIAL CONNECTION - OPENING *) cell; keep attention to the COM port and the Baudrate selection!
  5. Evaluate the blue EMG cell or the green IMU cell and enjoy it!
  6. Remember to close the serial connection by evaluating the red (* SERIAL CONNECTION - CLOSING *) cell.

NOTE: the actual version of ReadMyo software support just IMU and EMG separated readings. For this purpose, if you evaluate the blue EMG cell make sure that in the Arduino file the lines 144 and 77 are commented and line 134 is uncommented. On the other side, if you evaluate the green IMU cell make sure that in the Arduino file the lines 134 and 77 are commented and line 144 is uncommented.

<p>Impressive project... I am trying MYO Bridge application. But there is a problem. I programmed my Bluetooth module with CCloader successfully. Bu when i connect the module to the arduino, that happens in serial monitor;</p><p>Searching for MYO</p><p>connected</p><p>Searching for MYO</p><p>connected</p>Searching for MYO<p>connected</p><p>I cannot see any data. I tried with 5 different module (HM10 and HM11). But same situation happened. Do you have any idea? Thank you...</p>
<p>Contact us by email at:</p><p>info@adamshand.it</p><p>or send us a message on our facebook page: </p><p><a href="https://www.facebook.com/AdamsHandProsthesis/?ref=ts&fref=ts">www.facebook.com/AdamsHandProsthesis/<br></a></p><p>We'll try to help you as we can!</p>
<p>Problem has been solved. Arduino IDE must be the latest version. Thank you very much for your help... </p>
<p>You're welcome. If you have any other question contact us again! Bye!</p>
<p>Awesome design. I hope that you will continue to develop it. This would really help a lot of people. </p>
<p>Thank you very much! We'll surely keep working on it!</p>
<p>hello,</p><p>the design of your hand looks good. do you plan on 3d printing this? if no would yo share the stl files? I may be able to offer you some assistance and knowledge in return as I have quite a bit of 3d printed robotic prosthetics under my belt including some of my own builds. If you are interested let me know; If you are keeping this open source I would like to print the files and try it out giving you appropriate credit to the design of coarse. I currently have over 40 amputees in line that I am making hands for so I am experimenting with a lot of options.</p>
<p>Hi, thank you very much. Adam's Hand, at least at the beginning, will be 3D printed, but since the product is based on a mechanism that will be patented, unfortunately we can't fournish you the stl files. However, when our product will be ready we can talk about the beta testing, if you're interested. Do you have a link where we can look at the work you've done?</p>
<p>If yes I mean**</p>

About This Instructable




Bio: Adam's Hand is the First Dialogic, Modular and Low Cost Hand Prosthesis. 3D Printed and fully Customizable, will feature IoT & HomeAutomation.
More by AdamsHand:ADAM'S Hand: a Low-cost Myoelectric Transradial Prosthesis Using Myo Armband 
Add instructable to: