Open Project

The Piano Wrist 


This project’s concept is revolved around the idea of creating music wherever someone may be. They could create simple chords and beats with the help of this wearable. This wearable could also be used as a buzzer or as a tool for games played with one’s family.


I have always had times when I am out with my family and I get an idea for a potential artwork or project that I could create in the future which most of the time I resign to typing out in the notes app on my phone. With this understanding of how I felt about getting one’s creativity flowing and unable to start that project when you get the idea I came up with a tool to hopefully help musicians and anyone who writes music to try out their ideas if they get them in locations where an instrument is not available. With the piano wrist, my objective is to create a tool that is easy to use, comfortable to wear and is easily accessible whenever someone is struck with inspiration.


Project Interaction: The original idea I had was to use digital switches using a glove, each finger would control a different note played when touched with conductive fabric, after some research and thorough understanding of concepts learned in class it was decided to use capacitive touch sensors to activate the sound and lights, this is so everything could be kept in one place and it would be easy for the user to make music with this product.

Input: Capacitive touch sensors, Button B and the onboard Switch.

Output: Sound and Light.

Circuit Diagram





After some contemplation, I went with design 1 for my final product, and in order to make it comfortable, I decided to have the “watch” face removable by a button attached to the wristband.


I began creating my wearable by testing the capacitive touch sensors on the CPX with a basic set up of my code.


Used the embroidery hoop to stretch fabric and make it easier to sew the CPX to the cotton and conductive thread paths. I had attached the CPX to the by sewing only through the pins that would not be used for the capacitive touch sensors.  I had to use every pin for the capacitive touch sensors and didn’t want to risk the circuit stop working if I had sewn it through.

After sewing the first line of conductive thread I decided to use the conductive thread instead of conductive fabric as the actual “buttons” as adding the conductive fabric circles wouldn’t have looked too nice against the blue of the fabric and I wanted to sew in the letters beside the sensors.


Final Code





Final Project



Video Link:

Final Circuit Diagram



List of Parts/Materials Used

  • CPX
  • Conductive Thread
  • Cardboard
  • Metal Button
  • Spandex
  • Cotton fabric


  • Embroidery Hoop
  • Embroidery Thread
  • Sewing Needles
  • Super Glue

Reflection & Next Step

Overall I am very happy with how my Open Project turned out as it does what I planned and I really enjoyed creating my model. If I were to remake this project then I would probably make the watch head smaller or try the other design as it would make the end product less bulky. A part of this project that I’m really happy with is the code. Programming the CPX to have a more exciting output than just the sound was something I enjoyed.


Resources & Related Works

“Portable Capacitive Touch Piano” (07. 2019)  Retrieved from

Exploration Journals 1-4

Journal Entries

  1. Sound and Light with the Circuit Playground Express
  2. Fabric Potentiometer
  3. Capacitive Touch and Animations
  4. Coding an RGB LED with an Arduino UNO

Journal Entry #1: Sound and Light with the CPX

For my first journal entry, I wanted to attempt a part of the product I designed for the speculative wearable assignment. For the speculative wearable, I had designed a headband that lights up and changes colour based on the sounds around the wearer, as we have access to make code and our playground express’ I wanted to try and attempt to program my CPX to do the same. To begin, I began researching the capabilities of the CPX and what is in the microcontroller. Upon researching further I found a video on how to program the playground express to react with the sound around it. The code that I created by following this video was fairly simple but within the video, I also learned how to change the brightness of the lights using the switch on the board as well as connect my board to MakeCode itself so I could view the graphs based on the data from my playground circuit and not from the website simulation.


Below are my sound graphs for the sound level detected when faced with levels of 100 and 150,  with the same music each time. I used the same music and volume level to understand how sensitive the circuit’s microphone really is to the sound around it. I immediately noticed that when using the level of 100 the lights were all lit up without any music playing yet and that the lights didn’t all light up with the sensitivity of 150 and the music playing directly beside the CPX.

DataChart from CPX (side by side).jpg

I further decided to test the sensitivity of the CPX by placing the source of the sound at 2 more points of distance (within the same room) to see how the lights would be affected by the sound.

Sound Level: 100 Sound Level: 150
100SoundLevel.jpg 150Soundlevel.jpg

Moving the playground circuit at varying locations from the music didn’t change the number of lights blinking at certain points but it did affect the data in the chart. Different locations affected the varying levels of sound at the different time sources of the playground express.  After creating the code, I played around with the sensitivity of the microphone to see which one would work best for the headband idea I had for the speculative wearable assignment. After playing around with the sensitivity level I decided the default level should be 125 just for areas in relatively low amounts of sound.

After completing this, I managed to program the playground express to light up with the sound I played around with the different light colours for different levels of sound.

This is the code I came up with:

Colour Code with Sound.jpg

I used conditional statements on the sound and the light patterns of the circuit playground express to create different patterns within the LEDs on the board. In doing this we won’t be able to see the sound “level” on the board as the lights don’t gradually move up according to the sound. Instead, the lights will all light up to a colour that signifies which sound level it is in.

Level of Sound


My first code when attempting to change the colour based on the level of sound around the circuit board only changed with three different levels so I tried another method that changes the colour to the actual sound level as the code of the colour, with the first attempt (shown above) it only changed the colour of the CPX to a navy blue even though the codes numbers varied. So trying a different method I instead set the hue value to the sound level and was able to change the colour of the lights to the value of the sound detected.



Overall this exploration was one I really enjoyed and can see myself doing stuff with in the future. I enjoy playing around with the CPX and learning the different things I can do with it. Learning what I can do with all the light settings on the CPX is something I will continue to explore in my own time. Managing to create a part of a product that I came up with for the speculative wearable assignment is something I am proud of because when coming up with my product for the assignment I assumed that an actual prototype version would be much harder to create but with the code that I learned during this exploration, I found that programming the actual lights isn’t as hard as I originally thought.


Ada, Lady. “Introducing Circuit Playground.” Adafruit Learning System,

Core Electronics. “Sound Reactive Lights Project with Circuit Playground & MakeCode.” Youtube, 5 May 2018, .

Journal Entry #2: Fabric Potentiometer

For my second exploration journal, I have tried to create the Fabric Potentiometer which was shown in the week 6 module. The idea of a “dial” that could change the amount of resistance going through the circuit is something that I want to explore. Using the design by KobaKant I wanted to create a volume bar so that on one side of the potentiometer the volume would be really low and on the other would be louder. I wanted to use volume instead of the tutorials use for the potentiometer to be a time sensor. I want to test the potential uses for this fabric “dial”. The original link from the presentation does link to an Instructables page but following that link brought me to a dead end as the instructable couldn’t be found. After searching in several places I was able to find an instructable that showed the uses of the time sensor bracelet and how to create one for the Arduino so I decided to apply some of the steps when creating my bracelet for the CPX. For the purposes of my experiment, I decided not to create a bracelet but just the volume sensor that I could connect to the CPX with alligator clips.

My process of drawing and assembling the circuit:

sketch.jpg  potentiometer_.jpg  potentiometer_sewn.jpg potentiometer_with_resistor.jpg


After assembling the circuit I went on to make the code. Taking the code for the pressure sensor workshop I added volume elements to each if statement to test if the volume would change at different locations on the potentiometer. This method did not end up working so I then attempted to change the volume equal to a variable that changed according to where the connection was placed.

First attempt (did not work): circuitplayground-AnalogScaleForVolume.uf2

Second Attempt (also did not work): circuitplayground-AnalogScaleForVolume2 (3).uf2

After changing the code multiple times I realized that I forgot to add a pull-up resistor to the velostat circle, once I added it I tried all the codes I had made so far and none of them were working as I wanted.


As I originally wanted to control the volume of the CPX’s programmable sounds with this potentiometer the sounds started to give me a headache after listening to them for a while so I decided to change what the potentiometer controls to the LEDs on the circuit playground express. To do so, I researched and found an article on the adafruit website about some basic codes that can be used to chang the lights on the CPX to the value of the potentiometer. Using this code my potentiometer is able to adjust the amount of lights according to where the extra piece of conductive fabric is. The lights are not always accurate to the position of the wiper on the potentiometer but it does adjust fairly well to the location of the wiper.

Final code:


Code:  circuitplayground-twist-1.uf2

Images of final potentiometer:

low potentiometer-1.jpg   medium potentiometer.jpg  high potentiometer.jpg


Barela, Anne. “Make It Change: Potentiometers.” Adafruit Learning System, 18 Sept. 2018,


Plusea. “Time Sensing Bracelet.” Instructables , 26 Mar. 2009,  .

Journal Entry #3: Capacitive Touch and Animations

Since the beginning of this semester, I have been wanting to try to create different light animations on the Circuit playground express. This week I attempted to do so by also using capacitive touch to trigger the two different animations I am planning on creating.

To begin with, this project I determined which pins I would use as the touch sensors, I decided to go with A2 and A6 since they are completely opposite one another. As the pins are far away from each other I won’t need to extend the sensor beyond the pin on the board.

The animations that I wanted to try and create are essentially one of the leaves turning to red and orange and another of apples falling from a tree. With these two concepts for the animations, I went into MakeCode to begin. I created an if statement and used functions to organize the lights and patterns, this way the code wouldn’t be super long and unorganized.

As the block to set all colours kept overriding the other colours I decided to declare each and every light separately even if the colour is on every pixel, this is because I wanted to see the animation as I was coding the lights. After completing the code, I would change this back to using the single block as declaring each and every light for the same colour causes them to turn on separately.

Playing around with the code took about an hour, as I started getting really picky over the formation of how the leaves turned red and orange as I didn’t want them to turn all one after another. The final version of my code changes some leaves to red before all the green leaves have left. I attempted to add a fade when the colours change but was unable to figure out the block to do so. As we only learned how to fade an external LED with the CPX in class, I tried to find a way to do a crossfade of the CPX’s internal LEDs but was unable to find a method that worked. As a result, I picked a softer change of colours that seems more natural from yellow to orange. The softer orange ended up looking very yellow, so I changed it to the standard code for orange.

Final Animation Code: circuitplayground-Capacitive-Touch-Exploration-Journal (2).uf2

Video of animations:

Journal Entry #4: Coding an RGB LED with an Arduino UNO

For my last journal entry, I  wanted to figure out to use these 4 pin LEDs that I got in a box of LEDs from my local electronics store.  Once, I figure out the differences and how to code each light I want to try coding some of the LEDs myself,  with my Arduino UNO.

WhatsApp Image 2021-03-26 at 6.23.53 AM.jpeg

In the box, I bought I got two types of LEDs with 4 legs, and from what I understand I should be able to program which colour I want the LED to light up, so for this exploration journal I am going to research codes and ways I can use these LEDs and attempt to use the techniques with either my CPX or Arduino Uno. I started my exploration by trying to find the difference between the Intelligent control RGB Light is and other LEDs are, as they both look the same.

Upon researching the two LED types I couldn’t find any noticeable difference between how they will act when coded. So I decided to continue researching potential circuit setups for just the common LEDs. Most of the circuit diagrams I came upon had multiple potentiometers which I currently don’t have access to.

Screenshot 2021-03-26 065917.jpg


Then I started to look into different ways the code is made so I could find one in which we code the colours before sending the information to the Arduino and stumbled upon this circuit diagram and decided to attempt to try this set up for my common anode LED first.

Screenshot 2021-03-26 070152.jpg

The tutorial I followed used 2.2K ohm resistors, since I don’t have the same value resistor, I created them with two 1K resistors and a 220-ohm resistor on each pin that required resistors.

This is my circuit with the RGB common anode LED:

WhatsApp Image 2021-03-26 at 8.16.54 AM.jpeg


After I created my circuit I started to code the LED using the code provided on the same page as the fritzing diagram.


After copying the code to test the LED, I realized that the code would never work with the Arduino as it needed specific files within the library of the owner which I could not access to try and understand what it does. So I began researching another method to control the RGB values of the LED.  Around this time, I started to wonder if I could use photosensors to control the value of each light, so I started researching the different ways to connect the photosensors to the LED to try this theory I had.

My photoresistor circuit (not including the 5V wire):

WhatsApp Image 2021-03-26 at 8.16.54 AM (1).jpeg

In the end, I couldn’t find anybody who had previously tried this so I decided to use codes that used potentiometers to adjust the colour led, using this code I would substitute the potentiometer for the photosensor which should essentially do the same thing as it is a type of sensor. The code that I used as a base is from this link: 

The schematic diagram is also very similar to the setup I created which should help with coding my light.

Screenshot 2021-03-27 032319.jpg

Not only did the link provide the code, but it explained it easily which made it easier to understand what each part of the code does. I also stumbled upon a website that explained that the code for potentiometers and for photoresistors almost always is the exact same. You can check that link right here. (Links to an external site.)

This is the version of the code I used:

code 1_indarknessit works.jpg

With this version I was able to change the colour of the LED to the photosensor that was in darkness, I was also able to combine the colours to create purple, yellow and white when there is little to no light on all the sensors. Video Link! (the red, green and blue led’s in the background are intended to stay off, they are just there as an indicator of which photosensor controls a specific colour.)


Assignment 2: Expressive Wearable – Mood Displayer

Parts List

  • Circuit Playground Express
  • Felt
  • Conductive Thread
  • Thread
  •  Two red LEDs
  • Two 220 Ω Resistors
  • Two Tich Buttons

Concept & Objective

The concept for this wearable is to display if someone wants to be approached or left alone. The wearable is meant to be worn as an armband that is lit at all times when on the wearer. It will display either a green smiling face or a red frown which is changed with the digital switch. The idea was inspired to help people with depression and/or anxiety to display what they are feeling and if they are comfortable with being approached. The smile allowing others to approach and the frown to ask others to stay away. If one displays the smile (with the switch on the right side) but feels uneasy at the approach of certain people they can tap on the red “X” and it will display the frowning face for 5 seconds. Similarly, if the switch is on the left, it will display the frown and change to the smiling face for only 5 seconds when the red “X” is tapped.

Concept Sketch 



To begin, I used the digital switch that I created when following the digital switch workshop to experiment and find the best way to apply my LED’s for the frowning face. As the circuit is circular I could display the smiling face with just the LEDs on the Playground Express itself, the only additional LEDs I needed were for the red eyes. First, I experimented with a series circuit on an Arduino breadboard so I did not need to sew anything on the fabric. When attempting this I noticed that two LEDs became bright and the others were a lot dimmer. This is pictured below.


After using the Arduino, I went back to my trialled switch and had sewn a single LED and resistor to the CPX on another pin. As this method worked I decided to attempt a parallel circuit for my lights as parallel circuits evenly distribute the same amount of power to each LED. The full process is shown below, including my sketch of the final circuit and how it turned out.

Trial Circuits:



2 LEDs with Resistors


Final circuit sketch:


Final circuit:


While working on the trial circuit I also started experimenting with the different ways I could encase the code in MakeCode. I trialled using functions with if statements that were called with another if statement, I also attempted using the buttons on the Playground express to control if the smile or frown would be ‘permanent’. With these methods the lights started to blink alternately without any command from the switch so decided to use the if statement with several conditionals to control the lights of the circuit playground express. Along with the if statement I created three basic functions, two of them were to show the face and the last one was to contain the pauses and wipe animations. These functions controlled only which lights were on and no other setting, in doing this it decreased the size of my “forever” function and was easier to maintain. The end result is if the switch is on the right, then the circuit will automatically show the smile and the opposite for when it’s on the left. Some other fun features I added to the lights is that when the digital switch is activated it will first play the colour wipe animation provided in MakeCode that wipes the lights with either blue or grey and then shows the face that is meant to be shown.

Final Version of Code screenshot-2021-02-12-003557

Video demo of wearable being worn!


In high school, I only learned the theoretical parts of circuits and so being able to recall the information that I once learned in the past and to be able to apply it to something I make is a lovely feeling. During this assignment, I realized I spend too much time playing around with the code on MakeCode instead of actually trying to establish a good circuit foundation for the code to run on. I learned how important it is to draft and redraft the circuit design before actually sewing anything down so that it won’t cause any problems later on. In the future, I hope to incorporate the different functionalities of the circuit playground express and also try and see how far I can take a parallel circuit using the board. I would love to experiment and see how many LED’s can the circuit playground take in a parallel circuit.


The only resource that was used within this project was a link to understand the amount of voltage each coloured LED takes as the Circuit Playground Express has an output of only 3.3 V.

Crowell, Gary. “The Forward Voltages of Different LEDs.” CircuitBread, 2 May 2019,

Assignment 1 – Speculative Wearable: Light up Headband


My wearable is a headband that lights up in different patterns according to the sounds around you. It will change to match the sounds around you and create fun patterns of light related to the sounds or music. The product will have three settings, sounds, music and off. These will correlate to the number of times the power button is pressed. The power button is set behind the left ear of the headband so it is out of sight and doesn’t affect the overall view of the headband.

When activated the headband will connect to the user’s phone via Bluetooth and using the microphone of the phone will sense the sounds around the person and adjust the lighting patterns accordingly. If the user clicks the button a second time then the headband will sync the lights to the pattern of the music either being played from the phone or around the user.


The objective behind the creation of this product is to create an accessory that can be fun to wear. It is to create a fun headband that will compliment one’s outfit while it is off as well as help make a statement when the user turns the product on.

Headbands and LED strips already exist so my object is a merge between both the headband and the colourful lights to create something fun to wear. A difference between the lights in the market is that my product can adjust the light-based off sounds that are not just from the music being played.



Close-up sketch of the headband with the proposed materials for the product.

A sketch of the positioning of the headband as well as the light setting on the headband. It is also to show the different visual states of this headband.









Material Mood Board


Similar Works

Two works that I took inspiration from are the following:

  1. Sengled Smart Wi-Fi LED (Kozuch, 2021)
  2. Twinkly Line (Hager, 2021)

Kozuch, K. (2021, January 06). The best smart light bulbs in 2021. Retrieved January 16, 2021, from,review-6194.html

Hager, R. (2021, January 11). Twinkly smart light lineup offers fully addressable Lightstrip and Nanoleaf alternatives. Retrieved January 16, 2021, from