I've been really interested in recent months in developing more awareness of my own body. So far I've explored this through analog practices, including mindfulness exercises and dance. For my class "Rest of You," I'm interested in exploring what digital technology can bring to this equation. I have noticed recently how much tension I hold in my shoulders, in particular when feeling socially anxious or self-conscious. I suspect there is a way in which I subconsciously contract this part of my body as a way of shrinking or hiding. Given the connection between posture and emotion, my hope is that catching and correcting this tendency can help me to feel more relaxed and more confident.

The EMG sensor seemed to me to be the most immediately useful for capturing information about tension held in my body. Since my goal is greater bodily awareness, doing lots of data collection and then analyzing it is less interesting to me. I'm more interested in what I might gain from a biofeedback system. Could I build better bodily awareness, and better habits of posture, if a digital system was alerting me when I was building up tension in my shoulders?

Still, I needed to collect and visualize some data first in order to understand the data and how I might want to system to respond to it. To this end, I made a simple setup using an Arduino and the Sparkfun MyoWare EMG chip, hooked up across my left shoulder muscle via Sparkfun's cable shield. The Arduino was sending EMG readings over serial to a NodeJS script which logged them to CSV along with a timestamp. Simultaneously, I jotted down self-reported scores in a notebook on two different dimensions: "self-consciousness" and "negative emotionality." For the first, I tried to capture how much I felt self-conscious or anxious about being seen by other people. For the second, I tried to capture my level of negative thought patterns and how intensely I felt them. I tried to self-report every 3 minutes, but in practice there were often longer periods between reportings, as I was in class at the time and was not using any timer to notify myself when to report. Both ratings were on a 1-10 scale, although in practice I never wrote down any scores above a 5.

EMG electrode placement (blue/red are on the muscle, black is ground)
Arduino listening to EMG data from MyoWare and sending to my laptop.
Example notes

I collected a total of four datasets, each lasting about an hour, over the course of an afternoon of classes. I had to throw out my first dataset because my laptop kept going to sleep, leaving big gaps in the data. I was able to install software that forced my laptop to keep awake (Windows 10 power & sleep settings seemed to be ignored), so my remaining three datasets were good. They are labeled in the graphs by their starting times - 1:48PM, 3:26PM, and 4:57 PM.

Raw EMG Data

It's hard to see patterns in the raw data. It looks at a glance that perhaps the shoulders are more tense when I'm self-conscious (higher numbers in the EMG represent a contracted muscle), but I can't be certain. So, I processed the data with a script that averages the EMG readings across the time period before a self-report. When I was self-reporting, I was thinking about my state of mind since the last report. So, by averaging the EMG reading across that interval of time and lining it up with the self-reports, I get a much more useful visualization.

Average EMG During Window of Self-Report

This visualization is a little bit clearer. Again, there seems to be some correlation with self-consciousness, but no apparent correlation with negative emotionality - except in the last trial, where negative emotionality seems to track the average EMG a little better.

However, there is a further problem with my data - when I use my arms, my shoulder muscles contract. Fortunately, I included notes in my recordings (see earlier image) as to when I had been moving my arms around or typing since my last self-report. So I deleted those entries from my averaged datasets, and graphed again.

Average EMG During Window of Self-Report, with Movement Data Removed

Finally, having removed the data that was corrupted by movements, we can see some patterns of correlation. There seems to my eye to be some correlation between self-consciousness and the average EMG, particularly in the 1:48PM dataset. The correlation is weaker in the 3:26PM dataset, and possibly not present in 4:57 PM. There are a few possible explanations for this change. One is simply that the correlation in the first dataset was a fluke. Another has to do with the quality of the EMG readings. Something that stands out to me is how the overall EMG is much higher in the later two datasets, with averages consistently above the 200 range, which had been the highest average reading in the first dataset. The EMG averages are also more consistent overall in these latter datasets. It could be that as I became more mentally and emotionally drained throughout the day, my shoulder muscles became tighter overall. Then, the fluctuations due to self-consciousness or other mental states would be smaller and less noticeable. The greater variability in the average EMG readings in the first dataset supports this hypothesis. Physiological factors like hunger and blood sugar could also change my baseline muscle tightness - during my 12-3pm class period, I am usually satiated from lunch, but for most of my 3-6pm class period I am hungry for a meal that I cannot have until class is over.

Yet another explanation has to do with the unreliability of self-reporting of mental state. You can that the variability in my self-reported self-consciousness also declines across the three datasets. I would describe myself as feeling calmer overall, and more focused, in the later class, so it may be that my fluctuations in mental state were smaller, and this made them less visible in my muscle tension. As I ask myself how self-conscious or how negative I feel, I'm comparing myself to recent states of mind. I don't have access to very accurate perception of how my mental state compares to a particular moment one or two hours ago. Thus, my self-report scale may not compare to itself well across datasets. In particular, I could imagine that as I become calmer overall, I report smaller fluctuations in mood as being more significant - thus, my actual mental state would be even flatter in the second two datasets than it appears on the graph.


My data collected so far seems to indicate a correlation between shoulder muscle tension and self-consciousness. I don't have enough solid evidence for that correlation to be scientifically established in any way. However, I feel confident enough to proceed down this path - even if mostly because I'm curious to try out biofeedback here. However, this analysis does give me a lot to think about when designing that biofeedback system.

The critical question in designing such a system is: when should it give me feedback? If the goal is to remind me to relax my shoulders, it needs to catch when I'm overly tensing them. An immediate challenge here is that I also use my shoulder muscles when I'm moving my arms - how can the system distinguish between those movements and emotionally-driven tension? If I'm correct that my baseline muscle tension was higher in the second two datasets in spite of being calmer overall, then averaging recent EMG readings would not be a very effective means of catching emotionally-driven tension. On the other hand, if I simply look for sudden spikes in the EMG data, I will probably mostly detect instances where I engage my shoulder muscle in order to move my arm.

I think that I might be able to strike a balance between these two extremes by searching for increases in muscle tension that occur over a few minutes. Average EMG would still be the relevant measure, but instead of using an absolute threshold, the system would alert me when muscle tension increases rapidly and stays high. Short bursts of tension from moving my arms would be ignored - although some false positives would probably occur if I'm doing a sustained task with my arms in front of me, I could ignore them or temporarily disable the system. However, if my baseline muscle tension was different from day-to-day or throughout the day, the system would not give false positives for this.

The second challenge would be how to alert me in a relatively subtle but hard-to-miss way. I am thinking that a simple vibration via a wearable piezo buzzer might be an effective approach. A more interesting possibly would be an armband that tightens in response to electric current. There could be an affordance for additional biofeedback with this design: the system could be programmed such that once the armband tightened in response to a detected increase shoulder tension, it would only release once my average shoulder tension had returned to what it's pre-event levels, progressively relaxing as my shoulders relaxed. Thus, once activated, the system would also act as a biofeedback device guiding the process of consciously relaxing my shoulders. That is a bit of an ambitious project, though, especially since I have no knowledge off the top of my head as to which hardware components would allow for such a possibility.