Reminder String with Bracelet

Experiment by: April De Zen


The purpose of this assignment is to create an ambient reminder, taking that into consideration I thought it would be neat to update the old string on your finger trick for reminders. The new twist would be having the string change colours on your finger to remind you. Since this will need some battery power, I added a bracelet to the design so the ring wouldn’t become bulky.

Materials & Tools
Thermochromic pigment
1 roll of conductive thread
1 roll of resistive thread
1 roll of regular thread
1 roll of yarn
1 piece of sheet felt
3x 3V round battery
Sewing needles
2 Alligator clips
DIY French knitting kit

Workshop and experiments
In class we experimented with Thermochromic pigments. We dyed fabrics and threads and blended the pigments with white paint as well. We tested how resistive thread can be used to send a low current through the pigment in the fabrics to change the colour.

Creating the wearable
After formulating my idea, I started making it. First using a DIY French knitting tool (link to instructions) I created the base of the bracelet and left extra yarn on each side to create a ring. My 1st bead was to use the resistive thread and use my friendship bracelet making skills to weave the thread into the yarn (link to friendship bracelet instructions). Once the thread was incorporated into the yarn I could start testing to see if the colour would change to white and how much voltage I would need — at least that was the plan.

screen-shot-2019-02-14-at-10-40-06-am screen-shot-2019-02-14-at-10-36-06-am

1st Failed Attempt
Turns out, the pigment on the thread brushed off if you handle it to much so as I was weaving the tread the pigments change right off and there was no colour left on the thread. I still ran a line of conductive thread for the resistive thread through the bracelet because I was convinced I would find a way to fix the colour issue.


2nd Failed Attempt
Disclaimer: DO NOT DO THIS.
I had a thought that I would try painting the pigment on and for some reason I thought I would use the conductive thread instead of the resistive thread. I thought it would work better…
I wove the conductive thread to the yarn and painted the pigment on. When I tried to test it, it sparked immediately and blew out my batteries. Bad idea.


3rd Failed Attempt
Back at the studio, I got my hands on some more pigment mixed in water do I could try dying the 1st attempt to bring the colour back. I thought this worked, it was bright blue and looking amazing. When I tested it, the thread turned white just like it should but when it was disconnected it didn’t go back to blue. It stayed white. Another fail.


4th Attempt (not ideal)
Out of complete desperation, I another took a test piece of yarn and 5 strands of resistive thread and quickly knotted the yarn with the thread. Then I painted it to see if this would work. Maybe I could still save my original prototype by painting instead of dying the thread. Upon testing, it looked like it would work so I have it a go.


Next Steps
I really don’t like these pigment, I don’t know if I even want to take this any further. Not sure if it’s just a bad batch of pigments or if I missed an important step to setting the colour but I really didn’t enjoy this medium.

Activity Nudger

The concept:

The Activity Nudger light is a desktop companion that notifies a person working at their desk when they have been sitting for more than an hour, gently nudging them to get up for a few minutes. The device works with an on-off switch mechanism that controls the two states a person can be in. i.e Stationary Mode and Mobile Mode. While in Stationary Mode the device lights up white with a yellow ring and when in Mobile Mode, it glows ambiently in a greyscale color scheme slowly changing colors from black to white.

The design / Worksheet:


  • Display info that is important but not critical:

Activity nudge shows the user time information in a visual manner. It informs them that they’ve been working for at least an hour and are due a break. The info is not critical in that, if the user feels like they are not ready for a break yet, they can simply reset the Stationary mode by pressing the button to toggle the state. Ignoring the device, does not result in any critical side-effects.

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

When the device is in Stationary mode, it is in the periphery as no animations are happening, allowing the user to focus on their task at hand. When it switches into mobile mode, the ambient nudge, gently notifies the user and becomes the focus of attention. However, the user can with the click of a button, switch back to stationary mode thus shifting the device back to the periphery.

  • Focus on the tangible; representations in the environment

It is also a small, portable device that sits atop one’s desk and blends into the study/work environment non-intrusively. When it is off, it still blends into the desk environment as it looks like a small book.

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

The Activity Nudger stays white in stationary mode and when in mobile mode it lerps through a greyscale color scheme that it not distracting to the eye as it gradually changes going from white to greys to black with the yellow ring turning white as an additional indication of state.

  • Aesthetically pleasing and environmentally appropriate

The book theme fits into the office/study environment. Additionally, I would like the glass for the book to be frosted so that the ambient lights are even more muted and less distracting.

Low-fidelity Prototype:

Parts list:

  • Arduino Genuino Micro
  • 1 concave pushbutton
  • 1 single LED light
  • Jumper cables
  • Breadboard
  • 220 Ohms resistor
  • 10k Ohms resistor

screenshot-2019-02-14-004120Circuit diagram created on web app.


Arduino code:

The Arduino code for the device monitors signals from the push button and passes data to a Processing sketch over serial communication. Using an if condition, I toggle between the Stationary & Mobile state whenever the button is pressed.




Processing code:

The Processing code alerts a user to get active by creating an ambient nudge notification that tells them they have been stationary or working on something for at-least an hour. During testing, time was sped up to switch the state from stationary to nudge for mobile after a minute. When designing your own activity nudge use the time values you desire. I user 60 steps for 60 seconds a min and 60 min and hour, I user 1000 to represent 1 second. For an hour change this to 3,600,000  in the millis() check.

When msg is received over serial communication in serialEvent(), the string is split into an array and then depending on the state i.e 1 = = Stationary and 2 == Mobile, the isMobile boolean value is then set. This is what the draw loop determines to which animation to draw.

In my draw loop I use the millis function to run at set time intervals and change the background from black to grey in the Mobile state. In the Stationary state, the millis() check is used to figure out when to trigger the ambient nudge notification if a user has been in the Stationary state for atleast an hour or when testing atleast a minute.






When you need to run algorithms that happen over time – it is better and more efficient to use the millis() function. I had attempted to use a for loop and count down from a specific number to determine what color to make the ambient background, however this didn’t work because the loop still ran too fast and i couldn’t get the gradual change in colors and millis() gives a much cleaner solution.

Found a nice circuit diagram creation web app:


Github link to code: here

Performing an action every x-seconds : here


Keep Walking!

Slow Technology Activities

During class workshop we worked on preparing thermochromic items; we dyed thermochromatic fabrics and resistive threads, painted fabric with acrylic mixed thermochromic pigments, and made our own screenprinting templates. Later, we sewed thermochromic threads to dyed and painted fabrics to test slow technology when actuated by heat.

We studied Pulse Width Modulation that is used to vary the output power between 0 and 255. Then, we experimented this feature with an LED light using Arduino “fading” sketch to make it fade in and out and then we tested making it fade faster and slower by modifying the increment value. We tested PMW again with for a slow vibration motor using vibration_PWM.ino sketch.

 Class workshop documentation:







Ambient Device Concept


I want to design an ambient notification device that aim to improve daily walking activities. This can be achieved by making a smart carpet with embedded resistive pressure sensors to detect our gaits. When someone walks across the carpet, the sensors actuate notifications.  The slow technology I’m proposing will use weaved Shape Memory Alloys, looks like a wire mesh textile, to create a wall sized ambient display that gives info about people walking activity via 3D volumetric morphology. This informative art piece is best to be hanged on the wall of the main living room of the house.

Because I don’t have shape memory alloy available, I tested gradual actuation using thermochromic fabric and threads for ambient  notification. The same logic and programming code applies for gradual actuations in shape memory alloys. Below are some resources for researches done by others, in addition to inspirational images that explain the trajectory of my design intentions.

SMA Smocking

Functional textiles driven by transforming NiTi wires

Inspirational images of wire mesh sculptural art by Eric Boyer and Bonnie Shanas



Thermo‐responsive shape memory alloys are able to adopt a temporary configuration and return to their programmed physical shape when heated to a determined activation temperature.

SMAs are treated to memorize their shape at considerably high temperatures (450 C – 550 C).  To get to an aesthetically sculptural form, the woven wires can be fixed to a cast and then placed in the furnace for 15 minutes in order to memorize its artistic volumetric form.

This informative art is displayed whenever family members are walking around in  the house. When people are inactive, the sculptures will look flat and dull. When the art piece looks dull, then it’s a reminder to get up and have a small walk to bring back its beauty. Technically, when there’s no electric current, the corners of the art piece will be pulled away slowly through a pulley mechanism to flatten the sculpture. And when the sensors are activated by people walking on the smart carpet, this will actuate the SMAs to gradually shrink back to their memorized sculptural form. The shrinking force must be greater than the pulling force.  With this slow ambient notification device household members are encouraged to keep walking in order to maintain the aesthetics of the 3D wall art.

Circuit schematics:


Arduino Code:



Next steps:

This project explores ways to make wall art and sculptures alive, interactive and functional. I aim to make a higher fidelity prototype to be tested at all different stages. first stage is weaving the SMA nitinol wires, then try training them to give them a 3D cultural form. I also want to explore options and mechanisms for flattening the sculptures when they’re not actuated. Wiring and connections should be well studied and hidden in order to enhance the aesthetic visuals.

Wake Up Curtains

Timer Curtains
Workshop #4 Notes
Olivia Prior

Demo of the wakeup curtain pattern.
Demo of the wakeup curtain pattern.

Timer Curtains are curtains that use thermochromic paint to allow light into a room by gradually removing the colour from the pigment on the patterns of the fabric by using electrical voltage.  The heat from the voltage turns the painted pattern to white which allows for more light to enter the room. The curtains are activated by a timer or an alarm that allows the user to set either a time to wake up or to set a time that they would like to get up and take a break. The patterns gradually remove themselves one by one, so the transition from patterned curtain to white is an ambient experience. This allows for either a slow wake-up or slow reminder to that a break is coming up.

With this project, I wanted to create a product that used patterns as a form of time telling. Upon exploring the thermochromic paints I was curious as to what would happen if you made multiple tiny patterns and could control them individually. I had painted dots onto a sheet and it reminded me of the UI/UX pattern of “loading ellipses” you often see on websites. I wondered how you would be able to use this known UI/UX pattern into the physical world as a notion of timekeeping, but also keeping the connotations of a moment “loading”. I wanted to see if it was possible to gradually remove the dots over time to create a white sheet, to explore the applications of this method, and to see if it was an effective use of a clock.

Workshop notes & ideation write up
Workshop notes & ideation write up

Process & Explorations
I started off by painting patterns using two colours of thermochromic paint. I initially wanted to test how far the heat from the voltage could spread along one colour before bleeding into the adjacent colour pattern.

The patterns painted with thermochromatic pigment.
The patterns painted with thermochromic pigment.

I created multiple different patterns on many sheets of white fabric, and once dry sewed some resistive thread through the different colours.

Resistive thread stitched along the length of one of the pigment colours.
Resistive thread stitched along the length of one of the pigment colours.

I attempted to run 5V power from my Arduino to the sewn thread using alligator clips that were simply connected to power and ground. At first, I saw no change. After seeking some advice, I realized that the distance of the sewn circuit was a big factor in the amount of heat that would be dispersed through the thread. The longer the circuit with a lower voltage, such as 5V, would only be seen if the circuit itself was small.

I adjusted the placement of the alligator clips to the first few stitches and immediately saw a difference.

Demo of heat from the circuit changing the pigment on one small part of the circuit.
Demo of heat from the circuit changing the pigment on one small part of the circuit.
Back view, showing the alligator clips attached to the resistive thread. The heat from the current has changed the colour of the pigment form the back.
Back view, showing the alligator clips attached to the resistive thread. The heat from the current has changed the colour of the pigment from the back.

I tested to see if I could make the thermochromic paint fade in an out be connecting the power to a digital output pin on the Arduino. Then I made the delay twenty seconds between turning the power on and off on the pin. In the video below you can see a slight change in the pigment.

Video if thermochromic pigment changing from the heat of the circuit. 

With this knowledge and the set of tools that I had, I assessed the pieces that I painted. I saw that the dots each had a small surface area and came across the idea of slowly fading out the dots individually as a form of an ambient technology. The dots could be used as a timer: the user could set an amount of time, and the dots would slowly fade out. The dots once “vanished”, would indicate that the time is up without interrupting any thought. In terms of installment, I envisioned this pattern on windows curtains. As the dots turned white, they may gradually let in more light into the room and giving the illusion that the person who set the timer should go outside for a break. If the changing of pigment let more light into the room, the curtains would extend the act of ambient notification from simple pattern change to a lighting change in the space.

Envisioning the dots on a full length curtain. There are currently around 60 dots on the curtain, to symbolize minutes.
Envisioning the dots on a full-length curtain. There are currently around 60 dots on the curtain, to symbolize minutes.

I sewed small stitches along the length of each dot to start. I then clipped an alligator clip onto the power and ground of each dot. I made sure that the dangling threads did not touch each other as I was aware of the small working space I had created for myself. Reflecting upon the soft circuits project, I did not want to have a clean workspace.

Close up detail of the resistive thread sewn into the dots.
Close up detail of the resistive thread sewn into the dots.

I then moved each of the pins into the Arduino digital pins and ground. I made my code turn on a new pin every five seconds. The change of the pigment was gradual but effective. Nearly the entire dot had disappeared.

The dots changing colour from the circuit.
The dots changing colour from the heat of the circuit.
Screenshot of simple code used mock up the dots fading in sequential time.
Screenshot of simple code used mock up the dots fading in sequential time.

Diagramming for future iterations
I started to consider how I would be able to expand this project further and to place emphasis on the concept of a clock. I sketched out some process ideas of how this could operate and look:

Envisioning the dots on a full length curtain. There are currently around 60 dots on the curtain, to symbolize minutes.
Envisioning the dots on a full length curtain. There are currently around 60 dots on the curtain, to symbolize minutes.
Envisioning the dot curtain in action. The dots slowly disappear in correlation to the time that was set for them.
Envisioning the dot curtain in action. The dots slowly disappear in correlation to the time that was set for them.
As the timer nears the end, the dots have nearly all faded.
As the timer nears the end, the dots have nearly all faded.
Once the timer finished, the dots would all be completely faded.
Once the timer finished, the dots would all be completely faded.
This pattern envisions the dots in a clock like formation, to very physically represent time.
This pattern envisions the dots in a clock like formation, to very physically represent time.
This curtain envisions what "would happen if the curtain was entirely covered in pigment?" The curtain is striped and the thread would be sewn down the patterns to slowly fade out the stripes.
This curtain envisions what “would happen if the curtain was entirely covered in pigment?” The curtain is striped and the thread would be sewn down the patterns to slowly fade out the stripes.

In these images, I had included two colours of pigment on each dot. Aesthetically speaking, I really enjoy the complimenting colour contrast of both pigments. In my first trial (the “rainbow” pattern), the bleed of the heat from the voltage did not breach onto the second colour due to the width of the brush stroke. Having different colours fade in and out at different times could be used as different types of timers or indicators.

Other use cases for the combination of thermochromic pigment and curtains.

  • Inspired by Harry Potter, the curtains could be used as a “remembrall”. The remembrall is a device that changes state when the owner needs to be reminded of an item of importance. 

Scene snippet of character Neville Longbottom using a “Remembrall”

  • Wake up curtains. The curtains could be given a time and aid in an ambient wake up, similar to the Philip’s Hue Lights wake up on alarm function.
Two images of the Philip's Hue Lights interface for the wake up and go to bed "routines"
Two images of the Philip’s Hue Lights interface for the wake-up and go to bed “routines”
Two images of the Philip's Hue Lights interface for the wake up and go to bed "routines"
Two images of the Philip’s Hue Lights interface for the wake-up and go to bed “routines”
  • Stopwatch: the opposite of a timer. Once set, the pattern could fade in rather than fade out. The pattern could reflect time passing, rather than counting down.
  • The different colours could reflect different weather outside. If the temperature is hotter, the blue could fade away, or vice versa with the pink hues.

Questions to consider for future iterations

  • How would one interface with the curtains? Would there be a web app that they could use to indicate the timer? A button, potentiometer, and LCD screen combination for changing the time, or starting, and stopping the process?
  • How dense does the pattern need to be to affect the light in the space? If the curtains do not affect the lighting of the space, does the fabric need to be hung like a curtain, or could it be a wall hanging?
  • How could the wiring be improved for the patterns? The length of the connections affects the heat generated from the circuit, which would ultimately affect the fading of the pattern. Would using conductive thread and having short connections to multiple power sources be the most effective?  
  • Would having the curtains alter the user’s position in the room? What if their work station was turned away

 The thermochromic pigment is a very accessible and enjoyable technology to explore within soft electronics. The resistive fabric when connected to a circuit has a very similar behaviour to a switch, which when connected to either bespoke interfaces or APIs allows for endless possibilities of applications. Through exploring the concept of time and curtains as an ambient technology I discovered that power management and circuit management are the most concerning factors in setting up a viable product. These mini-experiments are explorations into looking at the possibilities of how one could add thermochromic pigment as apart of their electronics toolkit. Overall the pigment is a useful tool that has lots of applications for creating bespoke experiences embedded in everyday environments.

References and research 

Kobo Kant write up on thermochromic paint

Example of using thermochromic paint and resistive thread on “soft’ materials in a circuit 


Philip’s hue lights ambient wake up tutorial

The Invisible Motivator

By Veda Adnani

The workspace can be very stressful for most, and often we need messages of security and reassurance to keep us going. These inspirational messages usually form part of our ambient environment in the form of postcards, or cut outs. But I believe that the experience of motivating oneself, is more intimate and private and it can be awkward to have strangers at your desk space analysing and staring at your personal messages, often asking questions that can make the user uncomfortable. The Invisible motivator aims to resolve this issue, with an ambient system that only displays messages to its user on the user’s demand at the push of a button, else camouflages with their environment. It blends into other artefacts that the user collects and displays in their personal desk space.

483aec30-c7fc-4315-8e9a-234f1e4b11bbFigure 1: Completed prototype

38921bf3-c69b-4f17-87c1-cdaf514ec2caFigure 2: Closeup of invisible message patch

4a8d027b-fca1-4acb-af1f-163e575ed097Figure3: In class worksheet

In class

We learnt how to work with multiple forms of thermocromic pigments in class, which was an insightful process. We learnt how to make dye, paint and screen print with the medium. This helped us with using the pigment in a versatile manner. I found that these pigments are extremely useful when dealing with temperature sensitive projects, especially wearables. They can also be used alongside other devices like heat pads, as a feedback indicator.

After class I, conducted research on different projects with thermocromic inks to better understand how the medium works and what it can do.


After class I proceeded to test some of the patches we had made with two different stimuli, the first was a hairdryer, and the second was our e-textile tester with 3 batteries of 3v each, which is 9v of total power. I found that the material reacts to the extreme heat of the hairdryer much more instanteously and effectively as compared to that of the e-textile controller.

39977dd3-c0f6-4f62-83d9-d28532081835be82c854-7b46-4312-9665-e79a709c8b71Figure 4 and 5: Testing patches at home with the e-textile tester


For my prototype I used the following materials

– Thermocromic ink in blue

– Acrylic paints both white and blue

– A paintbrush

– A patch of cloth

– Resistive thread

– Basic sowing supplies

– Arduino Micro

– Push Button

– Alligator clips

– Diode

– Modfset

– E-textile tester with 3 batteries of 3V or battery pack


I began my fabrication process by mixing the blue thermorcromic ink with white acrylic paint, and making a mixture of blue and white acrylic paint in the same colour. Once both the mixtures were ready I painted the purely acrylic mixture onto a patch of cloth and let it dry. This part of the prototype is the non-reactive one.

Thereafter I took the mixture with the thermocromic ink and painted a motivational word onto the patch that I had painted previously, and tried my best to ensure that it camouflages into the base. I painted 2 coats of the paint to make sure that it is reactive enough.

Once this mixture was dry, I ran a running stitch of resistive thread across the word. I ensured that it was equally distributed and aesthetically pleasing.

094d9c1a-6b04-428e-a534-43dd7ebb6299Figure 6: Mixing and matching paints (both thermocromic and regular)


ec6abac5-d6b8-46d1-bae1-b59134747b15   59edc86b-39d2-4bf9-b143-e6243efc735d

Figure 7, 8, 9: Painting the base patch, painting the thermocromic message, stitching the resistive thread onto the patch.


I built a circuit with a push button, since I only wanted the message to activate on the user’s demand (or auto display it at fixed intervals of time in the next version of this prototype). For the circuit I took inspiration from a project on by uzarate (link in citations)

Prior to building the circuit with the painted patch, I ran a test at home with a regular patch to see if it works.

f1a20593-21f7-47c3-9a65-6cc72d61e383Figure 10: Cirtuit

4d2aea68-5d26-42a0-b463-29ead0d2faccFigure 11: Testing the circuit at home with a regular patch

(Circuit reference by uzarate on

The only difference between this circuit and mine is that I used the e-textile tester as the second power source with 3 batteries of 3v each within it.


For the coding process, I used a simple I/O code for Arduino. Screenshot below.



While the circuit did work, and the e-textile controller lit up, I feel like the power supple was insufficient, as the ink reacted perfectly to heat from hands and a hair dryer but took sufficiently longer and was slower with this circuit. I am to fix this in the next version of this prototype.

90352083-4375-4257-87b3-875fa82cbe49Figure 13: Cold patch

9047da0e-d986-4ae3-97ce-6946353b2ff5Figure 14: Activated patch


This patch can be placed inside a simple photo frame , even be developed further into a camouflaging patch on their desk wall to minimise notciability for non-users. wWith a push button hidden under the user’s desk at a convenient distance, I envision the user using this prototype as a stress buster during a hectic work day.



Instructables, Uzarate






Snack-time describes a speculative ambient body-centric design project in which people can use it as a reminder.  I am again doing this project for people with diabetes. I know they sometimes forget their snack time in their fast-paced working/ studying environment.  The purposes of this project I imagined working with shape-memory alloys) that highlights when it is time for a snack.

Why this project:

  • We can set alarm on our phone, but lots of people got bored of getting another digital note. Who wants to see another alarm?
  • This product allows them to get some creative input into own treatment.
  • This note- Snack– can vary, and be customized.

attachment-1Above you can see a sketch of my concept.

I have learnt how to shape a shape- memory alloys. You have to give it shape and heat at a high temperature. When it gets colder you can change its shape, When the system works again, the wire gets warmer because it is also a resistor, and gets its original shape again.

Below you can see the low-fidelity prototype of my concept.

I discovered “Fritzing” software. It was my first time using it and found it very useful because I did not have some of the components for the circuit. I

In the image below you can see the sketch of the circuit. The red spring is representing the flexinol (shape-memory alloy).


  • Spreadsheet Data: You can find  here:
  • Hardware: Circuit and Arduino-UNO
  • Software: Arduino
  • Breadboard 
  • Shape Memory Alloy (Flexinol)
  • Batteries (I used a 9V. Don’t forget you need a way to connect it to your breadboard)
  • 1 Voltage Regulator 
  • 1 Rectifier Diode 
  • 1 Resistor
  • Connector Wires (I use alligator clips and jumper wires)




  • Heating code ( here to download): I used it to apply heat on the alloy. I tried to customize it with the code below

int springPin = A1;

void setup()

pinMode(springPin, OUTPUT); // Set the mode of springPin to output.


void loop()

digitalWrite(springPin, HIGH); // Turns on spring.


  • Timer (here to download): I also tried to customize the code by this DTime.ino code. The code itself did not work. I tried to fix it and apply it onto the heating code as well.  I also tried the codes that I found at the library as Arduino-timer, ArduinoThreads, LightDimmer.


  • Learned about how we shape memory-alloy and how it works.
  • Alloy gets its shape by higher heat and voltage.
  • Learned about and used Fritzing for the first time.
  • My knowledge in using Arduino, and reaching the sources still give me a disadvantage.

Information sources:


Next step:

  • I could not make LEDs, memory alloy work (together) with Arduino. Still, I have to work on coding. I am investigating Adafruit, GitHub etc.

You Are the Nature

Github link:

You are the Nature is the first step towards connecting yourself to nature. The project monitors your heart rate and controls the speed of the flow of water for your office table’s fountain. The faster your heart beat, the higher the flow of water, the more natural sound and the more relaxing your environment. The device helps you to lower your heart rate without taking much for your attention and time.


My goal was to develop a system that helps us monitor our body’s status without requiring much processing from the user. Being that I have always been fascinated with human’s heart rate and how much data there is, I wanted to build something that does the monitoring for us in the background and shows us the result without giving us any numbers.

But when I got into designing the product, I realized the bigger goal in knowing our heart rate at any time is to monitor,  and I thought wouldn’t it be much better if the design could actually do the monitoring in the background for us without getting us involved in the whole process.

I found that our body’s heart rate is hugely impacted by the sound in our environment. But finding a sound that is always playing without annoying the user is really hard, so I thought how about natural sounds. I decided to build a small table fountain that creates more water noise when the heart rate is hard so that it would automatically lower the user’s heart rate by relaxing them.



I did not have a table fountain nor a water pump, so to get started I replaced the pump with a DC Motor as the pump is simply a DC motor underneath and tried designing the circuit that can control the speed of the motor.

I did not have the heart sensor anymore, so I used a potentiometer as the input that controls the speed of the motor.

The DC Motor requires a higher voltage and current than what the Arduino board can offer with its pins, so I needed to design a circuit that would allow me to use a 9V battery to run the DC Motor and control the voltage using Arduino.

I was able to do that by using a TIP120 Transitorthat was controlled by sending a PWM signal to its base and completing the rest of the DC Motor circuit by passing it through the collector and the emitter legs of the circuit. The base signal basically acted as a switch connect the other two legs together at the rate of the PWM signal.

Part List:

  • Breadboard
  • Jumper wires
  • Arduino Micro
  • DC motor
  • TIP120 transistor
  • Rectifier Diode
  • 220 Ohms Resistor
  • 10K Potentiometer
  • 9V Battery


I talk more about the challenges that I faced in the “Insights” section. What I was able to achieve was to control the speed of the dc motor using the potentiometer.



I initially tried using the feather ESP32 for the project so that the connection of the heart rate values would be much easier using the wifi, but after a deep dive into the coding I realized that I needed to use the PWM of the board, and because of the weird story going on with the PWM of the Feather I decided to use the Arduino Micro instead.

The hardest part of the project was designing a circuit that would allow an external 9V source to power up the DC Motor. I was able to find similar examples to it online, but all of the examples did not work. When I was trying to control the speed of the motor, I was only able to turn it off or on.

I tried writing my own PWM code using digital wite and delay and giving different timings for the delay base on the heart rate value, but the process just seemed too complicated and even after that I was still not able to fully control the speed of the motor.

After a bit of calculation, I found that the resistor value that I was initially using was too high (1K Ohm) and did not allow much current to flow into the transistor’s base. To get more current into the base, I changed the resistor to a smaller one (220 Ohm).  That did the trick, and I was finally able to fully control the speed of the DC Motor.

I can use the same circuit to run any other device that requires higher voltage and current than what the Arduino can offer.

Information sources:

How to build your own Fountain:

How to control a DC Motor Speed using PWM:

Next Steps:

The next step would be to purchase a 12V Liquid Pump and test the code with the pump itself. After that, I need to join this experience with the previous one, that measure the user’s heart rate so that I can replace the potentiometer with real data from a heart rate sensor. The final step would be to find the ideal body for the project that would also look nice on my desk.




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.


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.