HelpMe! Trigger using EMG

Discretely broadcast an emergency alert to trusted friends via an EMG trigger activated by clenching fist

Similar projects worth following
Users can clench their fist for 60 seconds to trigger an emergency alert that is transmitted to trusted friends via smartphone. Haptic feedback is provided when the alert is triggered, and when it is received by friends. Location data for continuous tracking via GPS on smartphone.


How can people alert their friends that they have been attacked, or are in danger, without alerting the attacker? We need a way to discreetly communicate with a smartphone or other communications device! The communications device can then notify a network of trusted friends of the attack. 

So we want to trigger an alert of an emergency situation using a discreet trigger. And then notify the person in danger that the alert has been sent to their network of trusted friends. In the case of a false-positive, the person in danger should be able to cancel the alert by entering a passcode to their smartphone.


So, the alert trigger in this solution is clench fist for 10s. We use EMG acquired from forearm to detect this. The user is informed of alert trigger by vibrate smartphone or vibrating a motor on an armband. The user would then have a set amount of time (e.g. 60 seconds) to cancel via entering a passcode to smartphone software. If the user doesn't cancel, then the alert is sent to network of trusted friends, and the user would get further haptic feedback from armband vibrate that the alert was been RXed by one of the trusted friends. The alerts will include location data from GPS. The alerts continue to be sent until cancelled by the user. Each alert including location data for tracking (e.g. if user is kidnapped).

General overview of solution:

1. Trigger: The trigger is clenching fist for 10s. Sensor is EMG attached to forearm via fabric band.

2. EMG sensor to Feather (wired)

[EMG sensor: supply voltage +3.3V or +5V , output EMG envelope so rectified; using MyoWare™ Muscle Sensor (AT-04-001) ]

[ Adafruit Feather 32u4 Bluefruit (which is referred to as arduino mostly)]

So all we are doing is read voltage from the EMG sensor using the Feather e.g.

void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:

So, we are going to get different voltages for non fist-clenched conditions, and fist-clenched conditions. Once we get the voltage we expect for fist-clenched occurring for the 10 seconds, we know to trigger the alert. Unfortunately, whilst the voltages for fist-clenched and non fist-clenched (relaxed hand) are likely to be significantly different. The voltages for other hand actions (e.g. shaking hands, holding a pen, gripping a mouse) might not be so different to the voltages we get for fist-clenched!! See the problems section for more on this.

3. It's just some python code on Feather to say if we got that fist-clench. If we did we can give haptic feedback from actuator on fabric band that alert is now triggered. And Feather will bluetooth comm to smartphone app that alert triggered. Smartphone can go ahead and vibrate too. Say we have a 60s cool-down for user to deactivate if this is false-positive. Deactivation would be via smartphone app, after which the Feather is again waiting for the fist-clench voltage.

4. Now smart-phone will go ahead and  see what kind of connections it has, and send out the alert! 

5. Then smartphone can notify Feather via Bluetooth that alert received successfully by trusted friends. And the Feather turns on the motor for haptic feedback to alert user (discreetly) that the alert has been sent out and received!

Overview of hardware:


Outline of system flow


Haptic Feedback

So, the idea is to provide haptic feedback for the user when an alert is triggered, and when...

Read more »


Hardware Outline

JPEG Image - 111.58 kB - 04/12/2018 at 21:23


  • 1 × Adafruit Feather 32u4 Bluefruit
  • 1 × ​DRV2605L Haptic Motor Controller
  • 1 × Battery Evaluation, Demonstration Kits, Boards and Modules / Evaluation Kits, Boards and Modules
  • 1 × Vibrating Motor Disc
  • 1 × MyoWare EMG Sensor with electrodes

View all 6 components

  • Testing MyoWare with Arduino

    Neil K. Sheridan04/18/2018 at 20:08 0 comments

    First of all, the MyoWare Muscle Sensor can be connected to an Arduino, and the Arduino connected to a laptop (which is not connected to the mains electrical grid). So, we can see the data acquired from EMG in real-time, using serial monitor (see )

    void setup() {
    void loop() {

  • Adafruit Feather 32u4 Bluefruit LE details

    Neil K. Sheridan04/15/2018 at 18:46 0 comments
  • Training the HelpMe! for each user

    Neil K. Sheridan04/15/2018 at 18:45 0 comments

    What's the problem?

    Unfortunately, whilst the voltages for fist-clenched and non fist-clenched (relaxed hand) are likely to be significantly different. The voltages for other hand actions (e.g. shaking hands, holding a pen, gripping a mouse) might not be so different to the voltages we get for fist-clenched!! So erm, first of all we need to see what kind of voltages we get from the EMG sensor for different hand positions! 

    Additionally, different people will produce different voltages! So we need to try this for for several people too. Well, it will be a fun experiment to get data for that I think! And it might be useful for others to use!

    Training the HelpMe!

    Now, of course, there is another thing we could do! We could get each HelpMe! to learn the the correct voltages corresponding to fist-clenched for each individual user. Well, to be honest, I think this is the only approach! Since we don't have a one-size fits all for fist-clenched voltages! So I guess we will have to do this with software on the Feather, the smartphone app (to direct the user what to do e.g. clench you fist for training purposes, and to instruct the Feather which code to run). We can save the results to the MicroSD on the Feather.

    I guess everyone is thinking, oh isn't there some machine learning thing we can do instead? Yeah, I did think of that. We could collect a large dataset of different hand position voltages. Maybe it is something to think about in the future..

  • Haptic Feedback

    Neil K. Sheridan04/15/2018 at 18:43 0 comments

    Haptic Feedback

    So, the idea is to provide haptic feedback for the user when an alert is triggered, and when the alert has been received by a trusted friend. I found these very small vibrating motor discs which could be used to deliver the feedback (size 10mm diameter, 2.7mm thickness; 11000 RPM at 5V, 0.9 grams). These could just be switched on/off. Or else, we could use a small motor driver - e.g. the  DRV2605 from TI - chip. This has an in-built library of various motor effects! You can see these waveform library effects in the datasheet here . So that would be pretty cool, in order to provide different types of haptic feedback for each situation! Adafruit already put the chip on a board (size 18mm x 17mm x 2mm, 1 gram) schematic here .

  • Outline of system flow

    Neil K. Sheridan04/13/2018 at 19:13 0 comments

    Alert cancellation: 

    This would occur via the user giving a passcode to the smartphone app.

  • Example of operating instructions

    Neil K. Sheridan09/14/2017 at 18:57 0 comments

    Example of operating instructions. It is called HelpAI because I called it this when it was an xprize entry. It didn't make the semi-finals :-( Anyway, these give an idea of what it's all about, but are not entirely correct for my updated version. You can see it was going to use the Guardian Circle smartphone app to alert trusted friends.


    The HelpAI system is designed to allow you to trigger an alert message that is sent to your network of emergency responders discretely and quickly in case of physical attack. You can trigger the alert message by making a fist with your left/right hand and holding it for 60 seconds. For the system to function, you will need to wear a special armband just below your elbow at all times. This armband will be continuously monitoring your hand, so if your hand remains in a close fist position for 60 seconds, it will send a message to your smart-phone informing it that you may have triggered an alert message.


    You should hold your hand closed in a fist position for 60 seconds or greater. It doesn't matter if you hold it in this position for longer than that, but you must hold it in the fist position for at least 60 seconds! Once the system has detected this it will ask your smart-phone if it has access to either WiFi or mobile networks in order to notify your emergency responder network. If it determines you do have access to WiFi or mobile networks via your smart-phone it will inform you by vibrating your armband for 10 seconds approximately.  Once you receive this vibration you can be sure that the system has notified your emergency responder network that your require assistance.


    In some situations the system may incorrectly think you wish to trigger an alert! Perhaps you are shaking your fist at someone! Or perhaps you are trying to open a jar or bottle! Or gripping something tightly! In these situations, the system will again provide that vibration that it has detected an alert and is ready to notify your emergency responder network. You now need to access your HelpAI smart-phone application and enter your passcode to cancel the alert. You will have 60 seconds to perform this action from the time your confirmation vibration begins.


    1. Download the HelpAI app and the Guardian Circle app from the app store using your smart phone

    2. Complete instructions for setting up your network of emergency responders using Guardian Circle

    3. Enter the HelpAI app and follow setup instructions to enter your cancellation of alert password and couple using bluetooth with the armband. Remember to leave bluetooth and wifi active on your smart-phone at all times!

    4. Try out putting on your armband! You should place it around 3 fingers width from your elbow, on the inside part of your upper forearm. The images in the HelpAI app will guide you through the placement process.

    5. Now you are all ready to go! Let's try triggering an alert and then cancelling it! Hold you hand in a fist for 60 seconds and see what happens! You should get a vibration on your armband! Now open your HelpAI app and cancel the alert by entering your cancellation of alert password.

    6. Now, for a final check! Let's notify the people in your emergency responders network that you are going to try out the system and see if it works! Give them all a text/whatsapp/DM/etc. that you are just trialling the system and not to worry! For example "I am going to try my new HelpAI system at 9pm so this is just a test but please let me know when you received my alert!"

    7. Now, hold your hand in a fist for 60 seconds. You'll get that vibration on your armband. Don't do anything!  Give it a couple of minutes and check your notifications! Hopefully they will all be saying "we got your alert".

    8. So you are done! Just remember when you might send out false alerts! Shaking fists at colleagues for instance!?...

    Read more »

View all 6 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates