Hand Tremor Suppression Wearable Device

We propose an innovative medical wearable device to assist people who suffer from hand tremor (Parkinson's Disease, Essential Tremor etc).

Similar projects worth following
TremorFreeMe is an innovative wearable device which aims to fight tremor and improve patients’ life quality. The device activates the opposite muscles of the ones activated due to tremor. Utilizing an App and Machine Learning, it provides patients with a holistic platform which manages to monitor tremor’s behavioral characteristics and changes, and, in parallel, offers a personalized aid by controlling the tremor’s intensity. For this reason, the sensors (accelerometer, gyro) from our wearable device are used. A user-friendly mobile app -responsive to voice commands- has been developed for the facilitation of the user. The ultimate goal is to enrich our data collection,train our suppression device and reach high level of intelligence which will lead to a fully personalized functional approach for each user. This way, the patient can deal with tremor in daily routine and counter problems related to feebleness for self-managing tasks and daily physical activities.

TremorFreeMe is building a fully functional autonomous battery-powered wearable device which is still in the prototype stage. Its main function is to detect the involuntary tremulous movement, using data from a 3-axis gyroscope &  accelerometer and deliver electrical stimulations through small electrode pads, in order to reduce tremor. For that purpose, we developed an algorithm that is able to make real time decisions and efficiently stimulate the opposite muscles of the ones activated due to tremor , achieving significantly high tremor suppression. We are still in the prototype stage for concept verification. The future design will be smaller in size.                                        


A novel approach in confronting hand tremor.

Adobe Portable Document Format - 1.07 MB - 10/23/2017 at 03:07



The final code for the atmega328p microcontroller.

ino - 10.48 kB - 10/20/2017 at 18:02



Code for testing the circuit functionality.

ino - 1.75 kB - 10/19/2017 at 23:19



3D design of Tremor Free Me smd cap

sldprt - 81.04 kB - 10/19/2017 at 22:12



3D design of Tremor Free Me smd case

sldprt - 118.20 kB - 10/19/2017 at 22:12


View all 10 files

  • 1 × 470kΩ resistor ±1% 0.25W Unit Price 0.02 €
  • 1 × 10kΩ resistor ±5% 0.25W Unit Price 0.02 €
  • 1 × 16MHz Crystal ±30ppm Unit Price 1.66 €
  • 1 × Electrolytic Capacitor 22μF 100V dc Unit Price 0.34 €
  • 1 × Bluetooth Module for Arduino - HC06 Unit Price 8.90 €

View all 20 components

  • New 3D printed case

    Basian Lesi10/19/2017 at 22:39 0 comments

    Having TremorFreeMe a new updated smaller size version  (3.2x3.2 dimensions and 1.2mm height) we designed also the new hosting 3D printed case 

    3D design of Tremor Free Me smd case

    3D design of Tremor Free Me smd cap

    Updated TremorFreeMe Hosting Case
    Updated TremorFreeMe Hosting Case

  • MPU6050 (accelerometer/gyroscope)

    Angeliki Papathanasiou10/17/2017 at 18:12 0 comments

    MPU6050 Details

    Download Jeff Rowberg's Arduino libraries

    In the code we use Jeff Rowberg's Arduino libraries to obtain the gyro/accelerometer data. They are available as a zip file here:

    Unzip the file, find the Arduino folder and copy the two folders "I2Cdev" and "MPU6050" to your Arduino "libraries" folder in the following directory:

    C:\Program Files (x86)\Arduino\libraries

    Changing the sensitivity of the MPU6050

    According to Jeff Rowberg:

    “The accelerometer and gyroscope measurements are explained in the MPU-6050 datasheet in the GYRO_CONFIG and ACCEL_CONFIG register descriptions (sections 4.4 and 4.5 on pages 14 and 15). The scale of each depends on the sensitivity settings chosen, which can be one of +/- 2, 4, 8, or 16g for the accelerometer and one of +/- 250, 500, 1000, or 2000 deg/sec for the gyroscope. The accelerometer produces data in units of acceleration (distance over time2), and the gyroscope produces data in units of rotational velocity (rotation distance over time). The output scale for any setting is [-32768, +32767] for each of the six axes. The default setting in the I2Cdevlib class is +/- 2g for the accel and +/- 250 deg/sec for the gyro. If the device is perfectly level and not moving, then:

    • X/Y accel axes should read 0
    • Z accel axis should read 1g, which is +16384 at a sensitivity of 2g
    • X/Y/Z gyro axes should read 0”


    We will increase the accelerometer and gyro range by changing the following lines of the MPU6050.cpp file.

    void MPU6050::initialize() {     setClockSource(MPU6050_CLOCK_PLL_XGYRO);     setFullScaleGyroRange(MPU6050_GYRO_FS_2000);     setFullScaleAccelRange(MPU6050_ACCEL_FS_16);     setSleepEnabled(false); // thanks to Jack Elston for pointing this one out! }

    This means that for 1G we will read 2048 (acceleration) and for 1degree/sec we will read 16.4 (angular velocity).

    For example if we read 32768 from the gyro, it corresponds to 1998 degrees/sec.

    MPU6050 connection with Arduino Uno

  • Machine Learning Model - Adaptation to each patient

    Angeliki Papathanasiou10/14/2017 at 20:34 0 comments

    Tremor characteristics differ from person to person (eg. tremor's frequency). In addition every patient reacts in a different way to the electrical muscle stimulation (eg. reaction time of the muscle). So there is a need for a device that is patient-adaptive. This is the reason why we use an ML model that adjusts the parameters of the device to the specific patient. 

    At the first stage, the algorithm takes decisions of whether to deliver a stimulation based on the default parameters. After a small training period, in which the user wears the device and we evaluate each stimulation given, our ML model is able to predict if a stimulation should be given or not. This way, at the second stage, the default parameters change to the optimal ones for the specific patient, achieving a high level of personalization.


    To explain further, when we detect an involuntary activation of a muscle (for example flexor), we have to decide for how long we will stimulate the opposite muscle (in that case the extensor). Since we have found tremor's frequency we know that the flexor is going to be activated due to tremor for half of the period time. Now we have to decide for what percentage of this half-period time we will stimulate the opposite muscle (extensor). The optimal percentage parameter varies from patient to patient and depends on many features (eg the angular velocity that the hand has at this specific time of the period, the specific time of the period, the muscle's reaction time in response to electrical stimulation of the patient etc.). Our ML Classification model, using Neural Networks, has two classes, "Give Stimulation" and "Do Not Give Stimulation" and defines the ideal "percentage" (time of period that we are in the class "give stimulation" ) based on the features.

  • Getting our circuit printed on PCB with smd parts

    Basian Lesi10/14/2017 at 18:13 2 comments

    Our team TremorFreeMe started by building a bigger prototype  device for concept verification and as shown here the results are very promising. But our  innovation and goals couldn't be achieved without users feedback, and a problem that tremor patients face everyday is discrimination. So in order to make our device smaller and more elegant we are getting it printed in a pcb board with smd parts.

    Eagle files below 

    Smd schematic & board 

    The making of  pcb board

    Making of

    and the so expected results

    The printed circuit
    The printed circuit

    after soldering the smd parts 

    Final smd look
    Size comparison

    And as always no success without failure !!

    unsuccessful tries

    Due to their size Li-Ion battery, bluetooth, capacitor and the inductor are going to be placed on the bracelet so we keep it in a small size and a round shape being a step closer to the final design that we want to achieve, which is something like the picture below.

  • Circuit Schematic

    Basian Lesi10/14/2017 at 17:07 0 comments

    Here we present the schematic of device's circuit with all the peripheral modules like bluetooth and MPU6050. 

        The above circuit can be implemented on a breadboard (with atmega328p-pu or arduino) or on a  pcb board with atmega328p-au (smd version of  atmega328p-pu). The only pins that are not recommended to change position is SCL-pin27, SDA-pin28 and the Q1 MOSFET must be connected to a PWM pin. 

         What we are doing here is that we have a 3.7V input from a li-ion battery which is being step-up to 5V in order for the atmega328p-pu to be fused  at 16Mhz and be able to have 5V pin-output. The pin-1 (PWM) connected to Q1-GATE is responsible for increasing the voltage across the C5 capacitor (22uF 100V) to the desired voltage we want (0-80V). Because atmega's analog input can't read voltages above 5V, we use a voltage divider with proportion 1 to 47 so we ensure an input<5 Volt. To avoid capacitor discharge while reading the value we use Q2 so we read the value just for a fraction of time (1us). Q3 and Q4 defines frequency. 

  • Really Affordable Construction - Component List

    Angeliki Papathanasiou10/13/2017 at 16:17 0 comments

    Here we present our component list, the quantity of each one needed and their unit price. The total cost is 56.84 € (or 67.19 $). This makes it a super cost-effective solution! The total cost is even going to go down in case of mass production.

  • Why TremorFreeMe!

    bikias.thomas10/11/2017 at 10:49 0 comments

    -Holistic Solution 

    TremorFreeMe does not focus on a  specific need of a tremor patient. It suppresses tremor completely and allows patient to do every regular activity in his daily life. Not feeling incapable of using his hands, patient will be strong and, most importantly, independent, without feeling embarrassed or disabled.


    TFM's final design is going to be elegant  and it could be easily hidden under a sleeve or under the patient's clothes. As a result, patient, who used to feel embarrassed and stressed, will regain his social confidence and a normal life.

    -Include Essential Tremor patients

    Everybody knows about Parkinson’s Disease(PD). However, hand tremor has many forms, with the most common being Essential Tremor(ET), a disease that can affect, also, people in a young age. Unfortunately, there is no medication for ET and, until now, there are no efficient solutions to limit the tremor it provokes to the patient. So, TremorFreeMe's approach constitutes an innovative solution which doesn't exclude any kind of tremor patients.


    Tremor characteristics are not equal for all the patients. Furthermore, it has been observed that each patient's characteristics are changing, not only during aging but also, during the day. The causes of this changes can be psychological( mostly in PD's) or they can be due to the nature of the disease( mostly in ET). For this reason, TFM is using Machine Learning Techniques and Signal Processing Methods to adapt its parameters and  to develop a personalized tremor suppression model  in order to maximize its efficiency.

  • TremorFreeMe Applcation Beta and Instructions

    bikias.thomas10/10/2017 at 09:13 0 comments

    We uploaded a BETA version of TFM application,as well as, installation instructions.

    Although TremorFreeMe's app hasn't got any functionality without the device in a close range, we uploaded this BETA version to give an idea of the User's Interface. We are trying to develop a user friendly environment with easy controls and we are introducing voice commands, in case patient's tremor doesn't allow him to hit the buttons. (NOTE: TFM application can be installed in smart-watches for further patient's facilitation)

    We would appreciate feedback and any kind of suggestions for TFM's application design and for any extra features as well.

    You can download TFM's application BETA version HERE

    You can download application's installation instructions HERE

    And the open source code of TremorFreeMe app

  • Tremor suppressed!

    bikias.thomas09/03/2017 at 16:33 0 comments

    Our first results are very promising , as, we finally managed to reduce patients' tremor up to 85%! 

    We are working hard to make our device work even better and, hopefully, be able to facilitate every patient's life!

  • TremorFreeMe on action!

    bikias.thomas09/02/2017 at 20:54 0 comments

    We are continuously testing our device. We frequently visit local hospitals and we have communication with patients' communities in order to get feedback ,adjust our device and make it better.

View all 13 project logs

View all 10 instructions

Enjoy this project?



Brian Moore wrote 02/25/2018 at 10:38 point

I have a friend who suffers from Parkinson's tremors so I am very interested in any updates/progress to this project

  Are you sure? yes | no

amanahkhan wrote 01/19/2018 at 18:28 point

Can the device be used without Microsoft Azure and Tremor free me app?
There is no  .apk (app) file of tremor free me please fix it. Another question is that i have downloaded the source code of the app there are so many files, which ones to use?

  Are you sure? yes | no

amanahkhan wrote 12/30/2017 at 13:00 point

Hello can you please tell me which ardunio board are you using for Bootloading the Atmega 328p-pu. 

  Are you sure? yes | no

Basian Lesi wrote 12/30/2017 at 16:26 point

Arduino Uno - R3

  Are you sure? yes | no

amanahkhan wrote 12/30/2017 at 16:31 point

thank you. 

  Are you sure? yes | no

Ted Mieske wrote 10/01/2017 at 23:17 point

The pictures shows 4 IRF450, but the schematic shows 2 NMOS.  Where can I get the full article with correct schematic and Code?

  Are you sure? yes | no

Basian Lesi wrote 10/03/2017 at 13:45 point

Hi! There are 4 IRF450 in the circuit but we have not publish any complete schematic yet. Although the pcb design and at the device's picture we can clearly see 4 IRF450.

  Are you sure? yes | no

Nathan Youngblood wrote 09/17/2017 at 21:25 point

Hi! Really nice work. I was wondering a bit about your circuit design. You say you want biphasic stimulation to prevent irritation and burning of the skin. However, I only see one voltage polarity (though there is no circuit diagram, so I could be missing something). How are you getting positive and negative current flow? Are you planning on posting a circuit diagram?

  Are you sure? yes | no

Basian Lesi wrote 09/18/2017 at 01:12 point

Hi! We appreciate your interest. We want to avoid concentrations of anions and cations so we change the direction of current flow, and its simply done by using an H-bridge module. We are getting our circuit printed and we will upload a circuit diagram soon. 

  Are you sure? yes | no

Nathan Youngblood wrote 09/18/2017 at 07:28 point

Oh, that's clever. Thanks for the response. Looking forward to seeing the full diagram when it's uploaded.

  Are you sure? yes | no

bikias.thomas wrote 09/12/2017 at 22:55 point

Hello! We really appreciate your interest! A hands-on trial would be really helpful to us, because we want to  gather as many data as we can.Although your physical presence would be great, we are located in Greece. Maybe in the future we  visit  some Essential tremor communities across Europe. Thank you!

  Are you sure? yes | no

jdgueydan wrote 09/12/2017 at 21:29 point

Any chance of signing up for trials?  I've had essential tremors for a number of years, and unfortunately, my teenage son is now experiencing them.  Medications have not helped enough to do anything requiring fine motor skills.  As an electronics hobbyist , it's almost impossible for me to solder anything smd anymore.  I've seen similar projects over the years, but am still left waiting for someone to make it a reality.  I wouldn't mind even paying for the hardware/software setup.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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