Workshop 4.

Workshop 4 (thermodynamic paint and ambient devices)

In class exercise


We used the dyed pieces of fabric in the thermodynamic paint and and even the thread.

After the material is dry, you can attach three 3v batteries to form 9v to run current through the thread. The other thing you could do is, use your brad board and the 5V on the arduino. This works, but a small length of thread.





I conducted research using the worksheet provided in class. While I was going through the sheet I came up with a rough idea on what the ambient device could be. In class our brief was to think of something which is subtle and in the environment. After looking over all the examples of various ambient devices presented in class, I was very drawn to the thermodynamic paint.

Workshop 4 worksheet
Workshop 4 worksheet


1.Display information that is critical not important.

 device displays information whenever someone is close to a home. It uses a proximity sensor to change the color of the certain “parts” of the painting informing homeowners if somebody is outside or is approaching their house. It is subtle yet displays important information without being loud or intrusive.


  1. Can move from the periphery to the focus of attention and back again

This would be a painting or piece of artwork that homeowners buy to decorate their homes. These painting which are usually seen as decorative items, could also be ambiently informative.

drawing  of ambient device intended use
drawing of ambient device intended use
  1. Focus on the tangible; representations in the environment.

People spend a lot of money purchasing art for their homes. Usually this is used to enhance their environment. I was thinking about making such things more informative.


  1. Provide subtle changes to reflect updates in information (should not be distracting)

The paint will will subtle change due to the electric signals being sent when mapped to the proximity sensor readings.


5) Aesthetically pleasing and environmentally appropriate.

Most homeowners have art of some kind in their home, whether they purchase high end art or ikea, these pieces are used to decorate homes. Thes pieces apart from being aesthetically pleasing, display a lot of important information.










Attendance describes a speculative ambient body-centric design project in which a the relative location of a roster of people are loosely tracked. A family (or a cohort of grad students, perhaps) each have an entry on a fixture (which could be expressed multiple ways – for the purposes of this project I imagined working with shape-memory alloys) that highlights when those people are nearby.

Above is a rough sketch of the fixture realized with shape-memory alloys: lengths of wire twist into an approximation of  the person’s name when they are close, and unwind into nothingness when they are away. Below is the same concept rendered with LEDs on a flat clock-face.  This project was researched and coded with the theoretical understanding that it would be realized with lengths of shape-memory alloy wiring.


I’ve worked with If This Then That and Adafruit IO quite often recently and I’ve been enjoying it, so they were the first place my mind went to when considering how to realize this project.

I started by setting up feeds in Adafruit IOdocu2and a pair of IFTTT applets

to track my location and interface with Adafruit IO. When I enter a radius around campus it sends “1” to the “arrived” feed, and when I leave the radius it sends “1” to the “gone” feed.


A little walking demonstrated that IFTTT and Adafruit IO were interfacing correctly: below you can see that the feeds successfully tracked the instances when I left for lunch and when I returned.


Without shape-memory alloys to play with I had to get speculative with the code. I did some research and learned that SMAs require careful voltage, with some trial and error depending on size. I set up my code to use a transistor and pulse width modulation so that when it is eventually hooked up to SMA I can find the ideal voltage for it.

In the photo below the LED is in the place of the shape-memory alloy.




It took me a fair bit of digging to figure out how to monitor multiple Adafruit feeds in one sketch, and I continue to have some trouble with the syntax of the functions in the Gone/Arrived sections of the code.

I’d like the chance to work with shape-memory alloys properly and expand this concept – until then, I can prove the concept with an LED.

Works Consulted

Welcome Mat


I live in a three story house. Often when myself or my partner arrive home one of is on the third floor (it’s where the TVs live). It is near impossible to hear the door opening when you are on the third floor. With this is mind I set out to make a doormat that would notify the third floor when someone (or something – we do have a 100lbs rottweiler) entered the house. This would provide a soft hello, replacing the screaming hello that often carries up the stairs.




Originally I envisioned a little LED or speaker on the third floor that would require be wired to the sensor at the entrance, but our house has Hue lights and that seemed like a much more elegant solution. Triggering the hue lights would require connecting the Feather to Adafruit IO and Adafruit IO to If This Then That, so my initial prototype goal was to get an analogue sensor speaking to Adafruit IO.

Including the Adafruit IO library in the Arduino IDE provided me with an example analog sketch to base the arduino end off of. This sketch is in constant contact with Adafruit IO which I would need to change later on as I only wanted it to push information when the sensor detects a body, but it was a good starting place.

My Adafruit IO account was set up from a previous project, so all I needed was a new feed. I used to adafruit guide for connecting to adafruit IO found here –

And then I got an error. Even though I had installed the Adafruit IO library in the IDE I was getting an MQTT file not found error. It took some googling to discover that a number of libraries need to be installed for the Adafruit IO library to work, which you would think would be in the Adafruit documentation somewhere… These additional standalone libraries include the Adafruit MQTT Library, The Adafruit HTTP Client Library, and the Wifi101 library. After these were installed I stopped receiving the compiler error and could move on to adding the SSL Certificate to the onboard wifi of the feather as instructed in the guide.

A guide  for this can be found here:

One important note for this process: I was using a Feather M0 Wifi, which to me was different than the standard Feather M0 and as such when i read the line “If you are using a Feather M0 or WINC1500 breakout, don’t forget to update the pins as necessary with setPins()!” I did not think it applied to me. WRONG. Update the sketch with the wifi pins otherwise the firmware updater will receive errors.
Finally I was able to upload and sketch and confirm that the Feather was talking to adafruit. I used a photocell sensor as a test analogue input and conveniently the analogue in example sketch was already set up for this.


AND TADAAAAA!!! Contact!


From here it was a simple matter of adjusting the code to only send information when the cell detected a low enough value and the creation of an applet in IFTTT. At first I tried an applet within IFTTT that handled the logic, but wanted to not send information constantly so changed to an “anytime feed is updated” trigger:

Final code:

//  Based on Adafruit IO Analog In Example
// Tutorial Link:
 Written by Todd Treece for Adafruit Industries
// Copyright (c) 2016 Adafruit Industries
// Licensed under the MIT license.
// All text above must be included in any redistribution.

/************************** Configuration ***********************************/

// edit the config.h tab and enter your Adafruit IO credentials
// and any additional configuration needed for WiFi, cellular,
// or ethernet clients.
#include “config.h”

/************************ Example Starts Here *******************************/

// analog pin 0

// photocell state
int current = 0;
int last = -1;

// set up the ‘analog’ feed
AdafruitIO_Feed *analog = io.feed(“DoorMatFeed”);

void setup() {

  // start the serial connection

  // wait for serial monitor to open
  while(! Serial);

  // connect to
  Serial.print(“Connecting to Adafruit IO”);

  // wait for a connection
  while(io.status() < AIO_CONNECTED) {

  // we are connected


void loop() {

  //; is required for all sketches.
  // it should always be present at the top of your loop
  // function. it keeps the client connected to
  //, and processes any incoming data.;

  // grab the current state of the photocell
  current = analogRead(PHOTOCELL_PIN);

  // return if the value hasn’t changed
  if(current > 300)

  // save the current state to the analog feed
  Serial.print(“sending -> “);

  // store last photocell state
  last = current;

  // wait three seconds (1000 milliseconds == 1 second)
  // because there are no active subscriptions, we can use delay()
  // instead of tracking millis()

It lives!


This project was a good refresher on hooking up the Feather to external systems and a good reminder on the ease of extending it’s functionality outside of it’s circuit. Also a good reminder to not trust documentation all the time as the specifics for connecting the wifi and adafruit IO caused a large amount of time setback in making the prototype. I have been enjoying thinking about ways to interact with the body that don’t revolve around hands and eyes, as that is often the site of tech, so trying to think about different body parts and what the potential could be when targeting them has provided some interesting lines of thought. I think the tendencies with technology, and specifically the bodily notification kind, is to improve our behaviour, which I’m not interested in, but interpersonal communication and the potentially for technological interference there is something that I would like to continue to explore.

Information sources:

Discussed in documentation – adafruit tutorials.

Next Steps:

The next step would be to change the sensor to velostat button, similar to the earlier button I made but larger, to function as the doormat. The code would them have to be adjusted based on the sensor values when tested, but otherwise should be the same. There is a lag in the IFTTT applet because it does not constantly check the feed, so I would consider changing the arduino to speak directly to the hue system to increase speed, but as it stands it seems to be 30 seconds to a minute between sensor activation and light flickering.




Life in the city requires a constant chase against time. From long demanding hours at work to brief hours we spend relaxing with family and friends. This anxious chase, while it might boost productivity for some time, is not sustainable for the body of many people, like me. I find myself overwhelmed, whether it’s the crowding or noise, and I tend to regularly and physically isolate myself from my surroundings to meditate and slow my heart rate and eventually my anxiety down.


Brief Description

StressBracelet is a biosensor that uses galvanic skin response to measure the stress or anxiety level and responds with the lighting of 12 LEDs when stress levels are high. The user of this device would wear the bracelet and go about their day as usual, if the LEDs switch on, or if the user can feel their anxiety rising, they can take a break and do some meditation which would lower the stress and that would lower the moisture in the skin, which in turn switches the LEDs off.

The idea behind this bracelet is that since we, as city dwellers, are all prone to stress, there is a need for a device that silently communicates with us our level of stress is high, and if needed, that we should take a few minutes to breathe and take control of it. Using colourful LEDs added a positive spin to this device, on one hand, the user might be experiencing anxiety, but on the other hand, they will also see a colourful mixture of light, which is a less stressful approach to interact.  


Link to the video



The aim of this experiment is to propose a tool that would help people get rid of their anxiety in public spaces and especially on their commute. The sensor has to be easily portable and accessible on-the-go, while at the same time discrete and personal in its interaction.

Design Process (Documentation)

The reason I decided to create this sensor in a bracelet is because it is important for this device to be handsfree for people to use while they are walking or commuting. I am also interested in bringing to the table the concept of electronic components as a wearable statement that speaks to a digital generation. So, starting from this logic, I began to think of how a bracelet like this might look. Chain bracelets are some of the most popular bracelets used worldwide, whether made of silver or gold, chain designs have been the dominant style for bracelets for a long time.

A sketch of the bracelet in the chain link design
A sketch of the bracelet in the chain link design
A sketch of the LEDs wiring for the chain link design
A sketch of the LEDs wiring for the chain link design
The updated design for the bracelet
The updated design for the bracelet

So, building on that, I decided to experiment with the idea of chaining LEDs create a chain that is then connected to a controller, which then adds a certain functionality of the chain. However, I quickly realized how difficult it, because of the number of wires required to connect the LEDs to the 5V and the ground. So, I decided to tweak my idea and create a different iteration of the bracelet with the LEDs attached to it, rather than hanging from it.

Once I built the circuit, I added more LEDs following the same logic
Once I built the circuit, I added more LEDs following the same logic

For the finger sensor, I decided to use aluminum foil attached to velcro and wrapped around two fingers, index and middle fingers. Although the foil is sufficient for this experiment, it is extremely fragile and cannot be constantly re-used. However, through experimenting with the sensor, I recorded the serial readings and noticed that they were extremely unstable, but I was able to get an idea of the range, between 0 and 13 in a normal state, and 15-28 when activated. The experiment I made used meditation as a way to push moisture in the hands (from sweating due to stress) down and blowing hot air into them to activate the sweat glands and record higher readings. Through moisture in the hands, the voltage on the serial print through the Arduino is either increase (with more moisture) or decreases (with less moisture). This allows us to record those readings and measure to some extent the amount of stress a person is going through.


The end result of the experiment
The end result of the experiment

To build the circuit I followed a similar approach like the one we covered in our last experiment. Connecting one of the sensors to a transistor that is also sending the sensor value to the A0 pin, and the other to the 5V pin on the Arduino. Also, linking the LEDs to digital pins on the Arduino and the ground to the ground. This circuit allows the Arduino to read the amount of voltage that passes through the human skin, which increases when the sweat glands are activated through stress, anxiety, working out, etc.


Fritzing sketch of the circuit
Fritzing sketch of the circuit

Once all the parts were assembled, I moved to the Arduino code. I started off from the provided code in the class presentation slides, which only gave us the ability to control one LED. So, I decided to add 11 more LEDs in order to achieve a sort of ambient effect as a result of the rise in the stress level. In the code, I assigned pins 13 to 2 (with the exception of 10 and 23) as LED pins and connected the positive side of the LEDs to the digital pins on the Arduino. Also, I knew I had to add the “digital.write” line of code for the 11 new LEDs .

Link to the Arduino Code

Tools & Materials Used

12x LEDs

1x Arduino Mega

1x 330 ohm transistor

2x aluminum foils

2x pieces of velcro



The biggest challenge I faced during this experiment was figuring out how to make all the components fit into a wearable device. One of the problems is I only own an Arduino Uno and Arduino Mega, and both are way too large to be considered for wearables. However, having a smaller controller will make this task a lot easier. Also, my original idea of connecting the LEDs and the components in a chain link turned out to be much more complex than anticipated, which led me to change my design drastically.

I am considering other options of how to put this device together for a wearable experience.


Future Steps

During my research into different ways to make this device, I noticed that some people were able to build something very similar without the use of a controller. I am very interested in pursuing that option further and seeing where that would lead.

For this experiment, I used parts from my own collection, however, for my next iteration, I plan to purchase a few parts in order to tweak the device even more.

Learning how to build a biosensor opens up many doors for future explorations into this subject. We can build and customize our sensors to match our bodies.

Peripheral Sweat Bands

Tyson Moll

[Arduino Code:]


Today we worked with themochromic pigments in water and acryllic paint applications. The pigment changes from a coloured tone to white under heat and electric current as typically seen in novelty colour-changing mugs. My favorite example of the technology remains to be the CD version of the Nine Inch Nails album, Year Zero: when the CD is retrieved from a music player, the normally black disk becomes white and reveals hidden detailing.

Year Zero, Before and After

Year Zero, Before and After [Source]

For the purpose of this workshop my idea is to use thermochromic-dyed sweatbands to indicate whether or not there is activity in a sports player’s blind spot within a particular distance. I imagine this could be accomplished with ultrasonic sensors, tuned to activate the bands whenever activity is detected within 10 feet of the user. Using two of such devices could bring an extra level of sensory detection that is visible within a player’s peripheral vision, providing warning of an unseen action before it happens, whether it be an opponent or an obstacle.


For the purposes of conserving material, I decided to prototype this with the existing fabrics we created in class rather than purchase sweat bands for this one-use project. The programming was prepared with an Arduino and code that I slightly altered from an example for detecting proximity with the ultrasonic sensor (included at the top of this post). I sewed the thermochromic material with  conductive thread and connected it to my circuit circuit: the device worked as expected, although based on testing the effect was more immediate with higher voltages (ergo, more heat caused by the electric current). When the sensor was tested with a detection threshold of 10 feet, it behaved somewhat finnicky but was certainly activated enough to prove that it could work; signals that came into contact with fabric, reflectives and non-perpendicular angles caused irregularities. I’ve heard there are more reputable sensors available, perhaps worth looking into beyond the prototype stage.

20190208_135538 20190208_135551 20190208_143830

Naturally, were the device to advance to a proper prototypical state the sweat bands would need a means of communicating readily with the sensor without it being mounted directly to the sweatband (wireless?) and the thermochromic pigment would have to be modified to properly imbue itself in the sweat band with resistance to moisture. The voltage would have to be high enough to  have the effect be noticeable within a certain timeframe, though we have also been warned about running the device for long hours due to the amount of heat generated by the circuitry.

I don’t think that the material as-is is ready for such an environment, but I do think that thermochromic plastics would be effective paired with proper electrical regulation and protection mechanisms. All and all, this was a fun little excercise and I’m glad to have had the opportunity to try out the materials.


Valentine E-cards: Explorations with the Pulse Sensor

My explorations with the heart pulse sensor lead me to creating a low-fidelity prototype of e-cards!

Figure 1. Processing Sketch E-card.

I wanted to explore data transferring between both the Arduino IDE software and Processing using the pulse sensor. The idea of using pulse sensory data to create an intimate and personal interaction sparked my interest in how I could create this sweet savoury like project/prototype.

Figure 2. Progress map of what to do with the pulse sensor.
Figure 3. Workshop #3 Worksheet

I sketched out what I wanted to do step by step on paper. First, I was going to setup and play around with the pulse sensor in Arduino to see how it worked and how the examples provided in the playground sensor library was tracking my heart rate. I followed the instructions from the pulse sensor’s website to help me set up.

Figure 4. webpage.
Figure 5. PulseSensor setup.

I was able to successfully set up the pulse sensor and started playing around with the example sketches in the Arduino IDE.

Figure x. Fritz diagram of led and pulse heart sensor (off screen).
Figure x. Fritz diagram of led and pulse heart sensor (off screen).
Figure 6. Pulse sensor setup part 1. (no beat detected.)
Figure 7. Pulse sensor setup part 2. (beat detected.)
Figure 8. Pulse sensor data on plot monitor on Arduino.
Figure 9. Pulse sensor data on serial monitor on Arduino.

This setup and serial data is from the PulseSensor_BPM code in the pulse playground library. I made a new file called Heart Beat and added the syntax line “Serial.write(myBPM)” to send the data over to processing.

Figure 10. Sending the data through “myBPM” variable.
Figure 11. Sending the data through “myBPM” variable.

I then sent this data over to a processing sketch, opened the port and placed the incoming data in an ellipse’s properties to manipulate its shape.

Figure 12. Sending the data to processing and changing the width of my ellipse by the pulse sensor data.

I later applied this manipulation to an image:

Figure 13. Using the data to control the appearance of a heart image.
Figure 14. Heart image shows up when the sensor detects a pulse.

My incoming BPM would cause the image to appear on the screen every time the sensor read my heart beat. I later had some fun and thought this would be a cute valentine e-card.

Figure 15. Pulse sensor e-card prototype!

For future works I’d like to take this sort of concept online so long distant lovers could send over in-real time e-cards of their partner’s heart beats. This could also be implemented in webcam calls or on common online canvases.

Checkout the process video below!



Dark Red Heart PNG HD



Project Journal #3 – Soma Garden


SOMA GARDEN is a digital garden powered by your bio data. The sweatier your palms, the more plants and flowers grow. By using electro-dermal activity(EDA) measured using DIY sensors and an Arduino, the changes in a person’s skin sweat glands cause changes in electrical resistance in the circuit which will trigger different levels of animations on the dome’s walls.

Ideation & reflecting:

I wanted to create a project that would treat biofeedback about sweaty palms in a positive way. For a lot of people, sweaty palms are a cause of anxiety as sweaty palms are normally viewed negatively in society. My project prompts personal self-reflection as instead of presenting data to show whether the body is under stress whether emotional or physical, it leverages the neutral nature of plants thus taking away any negative connotations.

Transferring authority of interpreting biofeedback back to the individual:

The animations allow anyone interacting with the SOMA GARDEN to interpret the volume of plants and flowers growing in their own way thus transferring authority on interpreting the bio data back to the user. As a developer, my role in the interpreting is minimal and doesn’t add any connotations either positive or negative to the final result because I focused on quantifying the sweatiness of one’s hands and creating different states for the dome; 0 – 20 (not very sweaty), 20 – 60 (slightly moist), 60-120 (sweaty), >120 (very sweaty)

How it works:

The dome responds to different states according to the sensor value ranges:

0 -(no interaction)

Dome’s walls go white / clear

0 – 20 (not very sweaty)

Animation of grass blades swaying in a breeze. 1/4 height

20 – 60 (slightly moist)

Grass blades swaying, flowers growing to half the dome’s height

60 – 120 ( sweaty)

Grass blades swaying, flowers growing to 3/4’s of the dome’s height

> 120 (very sweaty)

Whole dome fills with flowers and plants

Aesthetic visuals instead of biofeedback as numbers, maintains ambiguity so that individual interprets visuals by themselves:

The idea to grow plants came from the notion that sweating means our bodies are losing water  and that “water is life” and plants need water to grow.









Test run results:


To realize this low-fidelity prototype the following materials are needed:

  • Arduino Genuino Micro
  • Jumper cables
  • 2 Alligator clips
  • Aluminium foil
  • Tape or glue
  • Cardstock and writing implements
  • Scissor or cutting tool & cutting mat
  • 10K resistor
  • Breadboard

Circuit Diagram : source

DIY Polygraph

The grey wires in the fritzing diagram represent the sensors. They are connected to analog PIN A0 on the Arduino board.

To create your sensors – follow the instructions here and design the sensors according to whatever your idea is. This article presents instructions for a sensor to be attached around one’s fingers. For my idea, I envisioned having a pad with a palm cut out so that an individual is invited to place their hand on it. The sensors would be on the tips of two of the fingers. Below are images from my steps of creating the sensors.



Design of a high-fidelity prototype:



For a proof of concept I would like to work on creating this dome idea but on a single screen or panel hanging on a wall. The palm rest with the sensors would be placed beside it. I would like to explore perhaps using Google Glass so that the individual can still be immersed in the SOMA GARDEN. I believe having the individual enclosed gives them space to actually reflect in private on what they are seeing and what it might mean to them.  I believe that this design also gives the individual space to determine what their sweaty palms may mean, perhaps if they are feeling anxious the growing plants may distract them enough so that they can calm down and in terms of personal motivations, they can use the SOMA GARDEN as a space to meditate without external pressure.


Dream design:

SOMA Garden high fidelity idea


When coming up with threshold values test the sensors at different times of the day to get a variety in bio data. Additionally test with multiple individuals to get a more reliable sense of what kind of values you might get back.

Test different resistors to get one that suits your needs. Preferably choose a resistor that generates higher values or allows for a wider range of values on the serial monitor. This will help when creating different thresholds for the sensors. For this project a 330 ohms, 1.oK ohms and 10K ohms resistor were tested and a 10K resistor was chosen. Below are screenshots of readings from the testing of the resistors in the circuit.



Galvanic Skin Response Powered by Arduino (note: the circuit diagram shown in this article is incorrect) : here

Detect Lies with Tin Foil, Wire and Arduino : here


Roof Glass Dome: here

Potted plant: here


Runners aid (Posture Sensor) workshop #3

The world of sensors and feedback

For this assignment. We were given a choice of making sensors or to try out existing sensors like heart rate monitor, EMG sensors to select and experiment with keeping in mind the idea of self reflection or self expression.

I tried out the the EMG sensor with my class Nick. From my understanding of the sensor  senses muscle activation. You can then use it to connect to the arduino to get value mapped to sensor value by using a simple serialInputOutput code from sketch examples.

Testing out the the emg sensor. The EMG sensors uses a surface which acts like a bandage on the skin. The accuracy of the reading go down for more than a couple uses.
Testing out the the emg sensor. The EMG sensors uses a surface which acts like a bandage on the skin. The accuracy of the reading go down for more than a couple uses.




Workshop 3 handout
Workshop 3 handout

1)How could your design follow the design recommendations? 1) Instead of representing numbers, represent through materials and aesthetic visuals


Thee posture sensor is used for “running in the dark”it not only activates light. This helps the runner maintain a steady speed while keeping them safe. This falls under the idea of biofeedback, using the bodies momentum.

Thee posture sensor is used for “running in the dark”it not only activates light. This helps the runner maintain a steady speed while keeping them safe. This falls under the idea of biofeedback, using the bodies momentum.

2)Instead of designing for affect-as-information, design for affect-as-interaction. Treat the biofeedback as a prompt for social interaction or personal self-reflection.

I see this sensor as being more of an interaction with the surrounding. Night runs are a great time for reflection and solitary activity. Sometimes, due to some areas not having enough light runners are put in harm’s way from vehicles and unlit paths. I can also see the device having two lights. One to illuminate the path, and one which maybe is connected to a heart sensor.

Sketch based on question 1 of Handout. Sketched out idea with emphasis on material and Aesthetic value
Sketch based on question 1 of Handout. Sketched out idea with emphasis on material and Aesthetic value
"runners aid" sensor. The idea is that the metal piece willsway due to the body's forward momentum lighting up the LED and proceeding with ambient light
“runners aid” sensor. The idea is that the metal piece willsway due to the body’s forward momentum lighting up the LED and proceeding with ambient light

3) Have enough ambiguity that the individual must interpret what the visualization means for themselves.

4) When designing, constantly reflect on how you are making meaning for the individual through your designs. Could you be insinuating that something is negative, unhealthy, etc. ?

5) Reflect on the authority you are giving to the biofeedback device. How could you transfer this authority to the individual instead?

6) Instead of focusing on self improvement

Building sensor

Materials needed


Building the sensor
Building the sensor


Testing out to see the sensor worked. For this I powered the two conductive materials and grounded the metal piece to achieve the led to go off and on. This is a way to switch the circuit on and off.

Using the same principle of circuit connections, I then proceeded to light two LEDS.




Muscle Manager

img_20190207_083929 docu3screenshot_20190207-085348



I get headaches often. I clench my jaw when I’m stressed, when I’m focusing, or when I’m nervous. Discussions with many professionals  throughout my life have convinced me that habitual jaw clenching is bad for my teeth, my bones, my muscles, and is major factor in my headaches.

Mindfulness practice has helped somewhat. With increased body awareness I have been better able to notice when my jaw is clenched, and adjust. I then also ask myself “why might I have been clenching my jaw? What here is making me stressed, or anxious, or focused?” With the symptom noticed I am then able to look outward for the cause.


I imagined a simple wearable (a hat or band?) that could conceal the sensor-stickers of an EMG muscle sensor. I’ve been enjoying playing around with If This Then That (IFTTT) in another class and having fun with it, and I thought this might be a fun way to integrate it as an unobtrusive opportunity for self-reflection.

My concept, then, was a wearable that detects jaw tension. When the tension is sustained the wearable sends a notification to the wearer’s phone, reminding them that their jaw is tense. No judgement is implied; it is simply a statement of fact. The wearer can self-reflect and adjust as required.

A high sensor reading is sent to Adafruit IO, which triggers an IFTTT applet, which sends a notification to the user’s phone.


After playing with and testing the sensor on various muscles with the help of my friend and colleague Amreen, I wrote some code interfacing with Adafruit IO and commented it for clarity, viewable here.

The code uses the Adafruit Feather microcontroller and Adafruit IO Wifi to connect the board to the internet. I used the Adafruit IO Arduino library and the guide here. Note that the Adafruit Feather won’t connect to 5G wifi networks!

In summary, the code checks every ten seconds to see if your tension is above a threshold. If it’s above the threshold twice in a row (signifying extended tension) it sends a “1” value to Adafruit IO. An IFTTT applet, listening to the feed, sends a notification to the user’s phone with a non-judgemental reminder that they are experiencing jaw tension.


Wiring is simple.  From Getting Started with MyoWare Muscle Sensor from the Adafruit website:


My code includes an LED so you can have a real-time visual representation of the sensor’s readings. That LED is currently assigned to pin 13, the built-in LED on the microcontroller, so no wiring is necessary.


The Adafruit IO feed is created automatically when the Feather sends data to it.



Stumbling Blocks

Everything works in theory, but the fact that the electrodes on the EMG sensor are only good for two or three placements has been an impediment to testing. Early in testing I was able to get values consistently from the sensor, but by the end it was unresponsive and was only delivering the same, very high, result.


The upshot of this is that the infrastructure of the project – Adafruit IO to IFTTT – can still be tested, and that it works consistently.

Next Steps

More tuning of sensor placement and adjustment of thresholds and timing is required. If this project was to become a wearable it would have to move away from the MyoWare EMG sensor, as the sticker-based electrodes are not feasible for long-term use or use with a piece of clothing.


This is ultimately a very personal self-reflection project, as I have lived most of my life with physical issues caused by or related to jaw tension. I imagine that this system, were it used by other people, would be adapted into a system that manages whatever tension points they hold.

I chose to send a smartphone notification rather than some other form of feedback because the smartphone is ubiquitous, and notifications tend not to draw undue notice. As monitoring one’s body is a personal experience, I would prefer to have the feedback presented in a relatively subtle and unobtrusive way.

The other option for feedback I considered was haptics, but this still felt more obtrusive than I would have liked. A smartphone notification can be ignored or forgotten, while a physical sensation can not. The intention with this piece is to gently remind the user that they’re carrying tension, and communicate that information when the user is ready for it, not to force them to confront it.


Welcome to Adafruit IO. (n.d.). Retrieved from


Ifttt. (n.d.). IFTTT helps your apps and devices work together. Retrieved from

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: