Overview
Building on our previous project Breath – Responsive Meditation, we set out to design an experience where two people breathe together to achieve a shared sense of calm and connection. Inspired by long-distance couples, friends, and families, we asked: can synchronized breathing become a form of communication across distance?
Keywords: Arudino Microcontroller, Gyroscope/Accelerametor Sensors, C++, Programmable Air (PA)
Team Members: Brian Bishop with help from Andre Lira, Christina Tang, Fabrizio Guccione, Audrey Oh, and Avery
My role: Coding (C++ in Arduino IDE) and prototyping
Status: Completed, Github, Presented in ITP winter show
Process
Initial Research:
Based on early research and feedback from fellow creators, we decided to keep the experience fully analog. The intended flow was:
Detect Person One’s breath
Detect Person Two’s breath
Signal when the two are in sync or out of sync
Following the first feedback session, we identified several key logistical questions to test:
How should multiple microcontrollers communicate (Bluetooth, Wi-Fi, or wired)?
What form should the output take, especially in relation to breath and air (e.g., programmable airflow, wind sensors, haptics)?
What is the overall narrative or experiential journey for the user?
Idea: Create an inflatable that Partner One inflates and deflates using their breath, allowing Partner Two to close their eyes and feel the other person’s breathing through touch.
Prototyping
Detecting Breath
Sethescope
Idea: We tried detecting breath non-invasively by modifying a stethoscope with an electret microphone, but the signal was too noisy and could have been heartbeat rather than breathing. We then tried a piezo sensor, but it still didn’t give stable readings.
IMU
Idea: We reused our IMU code from the first project with two updates:
Added an exponential moving average for real-time recalibration
Designed a belly-mounted enclosure after learning that all breathing causes belly movement
Connecting Microcontrollers
Bluetooth
Problem: The microcontrollers had incompatable bluetooth modules. For us to connect them, we would need an additional part for the PA
2 Nano IOT 33 microcontrollers to hold/be the breath sensor for each individual
Programmable Air was built with an Arduino Nano controller
WiFi Nina
Concept: What if we use a third arudino Nano IOT 33 as a router and have the two breath sensor arudinos connect to it via wifi and then the router and connect to the PA via serial communication.
Fabrication
Idea: Create an enclosure for the programmable air for the inflatable to grow out of. The box and logo were created using a laser cutter.
Playtesting: Midway Checkpoint
Testing the IMU sensor:
The IMU sensor is built into the arduino. We had an LED connected to the sensor and when an inhale was detected the light would turn on and when an exhale was detected the light would turn off
Unsuccesful sensings seemed a result of unrelaxed posure and pushgin the sensor into the abdomin
Most successful sensing was when individual was leaned back and gently holding the sensor to their abdomin
Testing the Programmable Air:
We used a latex balloon and created a simple program to inflate and deflate the balloon automatically
Feedback/Challenge Posed: Ovreall people liked the experience of feeling someone's breath and having that inflatable interaction. However, a question to consider was posed: What is the role of technology in this experience? We wanted the experience to be as analog as possible. If we have two people what's stopping them from having their backs back to back to sync their breathes?
Pivot Idea: Create a DIY inflatable sculpture that would inflate when the users were in sync and deflate when the users were out of sync.
Proccess (Continued)
Connecting Programmable Air to Arduino Router
We ran into several challenges when trying to connect the programmable air to the Arduino Nano IoT 33 and had to troubleshoot through multiple approaches.
1st Attempt – Serial Communication:
This didn’t work because the Arduino Nano’s serial pins were already being used by the programmable air to configure the device.
2nd Attempt – Two Pumps:
We tried using one pump to blow air and another to vent it. We assumed we could reverse the servo motor using an H-bridge, but that doesn’t work for servos. Fixing this would have required additional components, essentially rebuilding the programmable air system.
3rd Attempt – Simple Wiring:
We asked if we could work smarter by connecting a digital pin from the Arduino Nano IoT 33 directly to a digital pin on the programmable air and send a HIGH or LOW signal when the pair was in sync. The challenge was finding an available pin. We used digital pin 5 and set it as a pull-up resistor.
Problem:
The default signal behaved differently when the USB was plugged in versus unplugged. Because the pin was set as a pull-up, it defaulted to HIGH with even a weak current. The USB stabilized the ground when plugged in, but removing it caused the ground to float, leading to inconsistent behavior.
Solution:
We added a transistor as a signal isolator (open-collector switch). This prevented back-powering, eliminated floating states, and created a stable common ground. In this setup, a LOW digital signal allows the pull-up to default to HIGH. Transistors are magical—we learned they’re not just for isolating power sources, but also for stabilizing signals between circuits.
Circuit Connection with just a Wire
Circuit Connection with a Transistor
DIY Inflatable
We spent significant time debugging the circuitry and code, connecting everything to the programmable air to ensure a refined perceptual experience. For the inflatable, we chose a butterfly to represent a shared journey—exploring whether two people can stay in tune while focusing on an external goal.
1st Attempt: We collected plastic bags, ironed them together, and cut them into a butterfly shape. We couldn’t gather enough material, and the learning curve was steep.
2nd Attempt: We discovered we had access to Mylar and sewed a fabric butterfly with Mylar inside. However, the Mylar kept popping when inflated.
Problem: Mylar seemed like a plausible solution but failed during testing. The only material that worked reliably was a latex balloon—leaving us to question how to represent the output while staying true to our theme.
Solution: (to be continued)
Ambitious prototype - Created using AI
Sewing
Ironing Myler Together
Myler and Latex Breaking Through Fabric
Butterfly Enclosure
Meanwhile, we began fabricating the Arduino enclosures as butterfly wings made of wood. We used a bandsaw to cut the main shapes and a Dremel to clear out space inside for the Arduinos. The top wing shape was cut with a laser cutter. After painting the wood, we assembled the pieces and laser-cut a stand for the wings to sit on.
We also received feedback that making the inflatable explicitly a butterfly felt a bit cheesy. Instead, we were encouraged to let the inflatable remain open to interpretation by the user. This feedback pushed us to keep brainstorming and refining the concept.
Powering the Project
Ah yes—the moment when you test everything together, switch to wireless, and wait for the lights to turn on…
and wait…
and wait…
and wait…
From our last project, we should have known alkaline batteries wouldn’t cut it—especially when powering things like a servo motor. We assumed four alkaline batteries in series would be enough since, technically, we were “just” powering an Arduino. Wrong.
Problem: We kept hitting brownouts. Turns out the Wi-Fi module draws a lot of current (plot twist: it’s not just sensors that are power-hungry).
Solution: lithium-ion batteries.
Testing
Brain and I playtesting
Listen for the 'Click' as they breath in sync
Pivoting Output
Pivot Idea: We decided to create a tree filled with balloons that a pair inflates together. When the two people are breathing in sync, the balloon inflates; when they fall out of sync, it stops. Each balloon—filled by their combined breath—represents a shared “breathership,” and together they form a tree of breatherships.
And thanks to Brian’s great idea, we created placards shaped like our original logo to tie everything together—drawing people in while maintaining a cohesive visual story.
The Show!
Strangers Finding Their Way to Communicate
Parents & Their Kids
Friends Compete for Largest Breathership!
Watching the Breathship Tree Grow
Timelapse of Breathership Tree
Feedback: You never know how people will interact with your work!
Future: The first iteration was a solo meditation experience. The second involved two people connecting through synchronized breathing. A third iteration, if we were to do one, would expand this to a group-breathing landscape.