The Calming Sensor

By Omid Ettehadi & Veda Adnani

Github link:

Stress, anxiety and anger are all emotions or states that most of us deal with in today’s day and age. All of them, are also contagious and easily spread amongst people. It’s best to attack and deal with these emotions. It’s best to nip these emotions in the bud using technology to facilitate the process.

The idea for our low fidelity prototype is to create a device that can calm its wearer during the moments that they feel like everything is the worst. Using biofeedback for self-reflection or somaesthetics, the device senses the heart rate of the wearer and provides them with instant motivational feedback in stressful situations (as opposed to just raw data). The purpose of this device is to induce instant calmness, promote self-efficacy, help keep the user motivated and empower them to tackle stressful situations that they otherwise may avoid in their day to day lives.

Subtleness: The vibration is soothing and gradual, pleasant and relaxing.

Intimate correspondence: The vibration frequency and motivational interface react to the heartbeat rate captured by the pulse sensor.

Making space: The device is extremely light, easily portable and can give the user a few moments of personal headspace even in the most crowded gatherings.

Articulation: The rhythmic vibration, along with the encouraging interface helps a user relax and calm down. Research shows that positive quotes can promote self-efficacy and it is our hope to encourage that through this prototype.


Fig 1: Low fidelity prototype placed in a glove, shown here with the wearer and without.


In Class reflection

Something that really stuck with us during the class was the discussion on the different approaches to biofeedback. When dealing with Biofeedback as a form for self-reflection, you need to consider the way the device provides you with more insight and awareness about your own body. Something that was challenging in our project was to find the ideal method of communicating with the user without publicly sharing their data.



Our research process led us to discover that there are several products in the market that detect stress, very few of them actually help the wearer actionably deal with the stress. Most wearable devices currently also detect heart rate but rarely give the wearer any feedback/ insight or call to action on the data gathered. This tends to make the wearable experience dull since the wearer cannot act upon the data and improve or amend things as they might the desire to do.


Fig 2: From left to right: Our vision for the prototype was inspired by HeartMath sensor, Stress chips, and a vibrating watch(Doppel)

Idea and worksheet

Having worked out the sheet in class, we had a clear picture of the prototype idea. We wanted to create a device that regulates stress, anxiety and other forms of negative emotions that trigger elevated heartbeat. It comprises of minute sensors on the wearer’s fingertips, and a stylish wrist band to enclose the microcontroller seamlessly.


Fig 3: Idea sketch for high fidelity prototype


Fig 4: In class worksheet


The device consist of a pulse sensor and an output component in the form of vibration. It also contains an interface output on a screen that corresponds with the user’s heart rate.

1 x Arduino Micro

1 x USB cable

1 x 2mm Mini Vibrating Disk Motor

1 x Pulse Sensor

1 x Glove

Ancillary material to sow sensors, and a computer to process the code



As shown in the ideation section, we turned the glove inside out and sowed the heart rate sensor onto the pinky finger and the vibration motor onto the ring finger. Thereafter we connected them using cables to the Arduino micro, which we fastened to the wearer”s wrist using the glove itself.




Fig 5: Inside out glove few for fabrication of components. They were sewn onto the glove for this prototype.


To get a better understanding of the sensor and its capabilities, we started experimenting with the examples from the PulseSensor Playground. After going through all the examples, We Chose the Getting_BPM_to_Monitor example as the base for our code and made our modifications to that file. We initially tried using the Adafruit ESP32 Feather for the project, so that we could connect the glove using the internet to the user’s mobile phone. Due to the limitations of this board in dealing with Analogwrite, we were not able to run any of the examples on the Feather and therefore decided to stick with the Arduino micro for this stage of the project and use the Serial Control to communicate with the computer.

In the Getting_BPM_to_Monitor example, the device already calculates the beat per minute of the user and prints on the Serial monitor, in addition to turning onboard LED one every time it detected a heartbeat. We added another pin to control the vibrating disk motor. We set the code, such that if the heart rate of the person went higher than the threshold set by the user, the vibrator would turn on. We experimented with leaving the vibrator on for the duration of the time the heart rate of the user was higher than the preset value, but after some testing, we saw that the constant vibration leads to an increase in the heart rate of the user. We made some changes to the program so that if the user’s BPM passed the threshold level, the device would vibrate at a 50 per minute rate to mimic a slow heart rate and using the body’s natural reaction to the frequency to lower the user’s heart rate.

The next step was to connect the Arduino to P5. We used the serial control, so that every 200 ms, the Arduino would send the status of the LED (indicating heartbeat) and the BPM to the P5. We wanted to use this information and further assist the user in their attempt to lower their heart rate. We decided to stick with something simple. We used a drawing of a heart to indicate the user’s heartbeat and to print out positive thoughts when the user’s BPM passed their preset threshold. This was to make sure the data is perfectly transmitted between the devices. By finding the right conditions, we can now set the P5 to do any actions we want in order to lower the user’s heart rate, such as play relaxing music or etc.


Fig 6: Circuit



Fig 7a and b:  7a shows the calm state, and 7b shows the stressful state with calming motivational messages.


Fig 8: WIP CODE with preview > Arduino and p5.


As a team, we were fairly clear about a realistic scope for the timeframe we were given. Our priority was to get the sensor working to the vibration and only thereafter did we incorporate the interface functionality.


The vision for the final product

If we were to develop a higher fidelity prototype, we envision gaining more accuracy with data for thresholds of stress, anger, anxiety or any other negative emotion that is accompanied by a change in heartbeat patterns.

We would also focus on improving the ergonomics of the sensors, and making them more wearer friendly and unintrusive. The vibrations on the current prototype are fairly simple, however, we would love to customize the vibration to the emotion in a rhythmic way, so as so as to maximize its effectiveness in tackling the stressful situation. We would even consider personalizing this motion to its user depending on how they react since every user is unique and might respond differently to different emotions.

It would also benefit us to help track and save the data that we are able to gather for the wearer to determine their emotional patterns and help them tackle their issues in a sustainable long-term manner.



Wearable vibrating wrist watch:

Stress strips: