9. Wearables¶
Research and Inspiration¶
Hussein Chalayan¶
Since my student years, I have admired the work of Hussein Chalayan. For me, he is a designer who brings together deep philosophical ideas and the technologies of the future in his collections.
Below are some of his collections with embedded electronics, which still look innovative even 15 years later.
Hussein Chalayan presented his Spring/Summer 2007 collection, One Hundred & Eleven, during Paris Fashion Week. The show quickly became one of the most talked-about moments in contemporary fashion, sitting somewhere between a runway presentation, a performance, and a technological experiment. It reflected on how women’s clothing has changed over the last century and how fashion responds to time, society, and the body.
The idea of transformation was central to the collection. On the runway, garments changed their shape and style in real time, moving from one historical period to another. These shifts happened through hidden mechanical systems developed in collaboration with engineers, turning the clothes into moving, evolving objects rather than static designs.
The most striking piece was a dress that physically transformed while the model was wearing it, shifting through different silhouettes from the early 1900s to the late 20th century. This moment captured Chalayan’s long-standing interest in fashion as something alive — clothing that adapts, remembers, and changes along with the person who wears it.

In 2008, Hussein Chalayan designed the dress with laser dyodes in collaboration with Swarovsky brand.

Ying Gao¶
During my research, I was really fascinated by the works of Ying Gao a Montreal-based fashion designer and professor at University of Quebec.
2526 is the number of hours spent creating two polymorphic robotic garments, from the first idea and sketch to the final stitch.
The project draws inspiration from NFT culture, digital fashion, and virtual clothing — spaces where design is no longer limited by physical materials. Yet the garments themselves are completely real. They are woven, hand-printed, and made from specially developed materials. They are not virtual pieces, but they behave like digital ones: volumes shift, surfaces ripple, and transparency appears and disappears.
This effect comes from a new flexible material combining glass, precious metals, and silicone. Through this work, 2526 explores where fashion stands today — at the intersection of the physical body and an increasingly digital reality, where virtual experiences are becoming part of everyday life.
Social Body Lab¶
I first learned about the projects of Social Body Lab through a presentation by Liza Stark. Social Body Lab is an art, design, and research group at OCAD University in Toronto, Canada, dedicated to exploring body-centric technologies within their social and cultural context.
One of their key projects is Prosthetic Technologies of Being.
Prethecic Technologies of Being. by Social Body Lab
This project looks at how wearable technologies can extend or shift the way we experience ourselves and others. Instead of focusing on medical prosthetics, the team explores “prosthetics” as poetic or expressive tools — objects that reveal emotions, highlight social dynamics, or reshape personal boundaries. These pieces often sit between fashion, performance, and technology, inviting us to rethink what it means to inhabit a body in a technologically rich world.
Also, they have a YouTube channel with very detailed and easy-to-understand tutorials on e-textiles.
Here is a detailed guide on creating a capacitive sensor from Social Body Lab.
Capacitive Touch Sensor With a Servo Motor Using XIAO RP2040 on a Fabrixiao¶
The full workflow for creating a capacitive touch sensor and adding a servo motor reaction using a XIAO RP2040 integrated into a Fabrixiao soft circuit board is below.
XIAO RP2040 is a very small development board built around the Raspberry Pi RP2040 chip. Even though it’s tiny, it’s quite powerful, with a dual-core processor and enough memory to handle interactive projects with sensors, LEDs, and sound.
It’s easy to program over USB-C and works well with Arduino, MicroPython, and CircuitPython. Because of its size and simplicity, XIAO RP2040 is often used in wearables, e-textiles, and other projects where space is limited but flexibility is important.
FabriXiao is a small custom development board made for Fabricademy projects. It was created to make it easier to work with microcontrollers in textile electronics, replacing older, harder-to-use chips with something simpler and more flexible. You can build it yourself and use it to connect sensors, LEDs, and other components in e-textile projects, and it’s designed to be easy to program and power.
1. Tools and Materials Used for Testing¶
| Tool / Material | Description |
|---|---|
| XIAO RP2040 | Microcontroller used as the core of the circuit; first tested via USB power. |
| Fabrixiao textile PCB | Soft PCB used as a base to connect components during early testing. |
| Alligator clips | Used to make temporary connections between the sensor, resistor, and board. |
| USB cable (USB-C) | Used to power the board from a laptop and upload the code. |
| Laptop with Arduino IDE | Used for programming and observing sensor values in Serial Monitor. |
| Multimeter | Used to verify continuity, detect soldering errors, and ensure there were no shorts. |
| Test LED | Soldered or connected temporarily to confirm that the board and pins worked. |
| Conductive fabric or conductive textile piece | Used as the temporary capacitive sensor pad during testing. |
| Resistor (1 MΩ or similar) | Tested between the two pins used for capacitive sensing. |
| Jumper wires | Used for flexible testing setups. |
2. Additional tools and Materials Used for the Final Project¶
| Tool / Material | Description |
|---|---|
| Felt base | A textile foundation where the Fabrixiao and other parts were sewn. |
| Insulated thin wire | Used to connect the sensor, resistor, servo motor, and battery to Fabrixiao. |
| Servo motor | Mechanism used to animate the rabbit ears through rotation. |
| Thin fishing line (леска) | Connected the rabbit ears to the servo horn, enabling movement. |
| Lithium-ion polymer battery (LiPo) | Final portable power source. |
| Snap button | Originally intended to separate external and internal components. |
| Needle + non-conductive thread | Used to sew Fabrixiao, servo motor, pocket, and decorative elements. |
| Textile rabbit character | The final soft sculpture whose ears are controlled by the servo motor. |
1. Soldering XIAO RP2040 to the Fabrixiao Board¶
We began by attaching the XIAO RP2040 directly to a Fabrixiao textile PCB.
This step required careful soldering because:
- Fabrixiao uses conductive fabric traces, which are more heat-sensitive than copper.
- We soldered the pin headers of the XIAO RP2040 onto the textile pads with minimal heating time.
- We also soldered a resistor (used for the capacitive sensor) and a LED to the board.
This created a stable hybrid of a microcontroller and a soft circuit.
After soldering the XIAO RP2040 onto the Fabrixiao textile board, we verified all electrical connections using a multimeter. We checked continuity between each RP2040 pin and the corresponding fabric trace on the Fabrixiao, ensuring that every joint was properly connected. We also tested for unwanted shorts by placing the multimeter in continuity mode and confirming that adjacent pads or traces were not accidentally bridged with solder. This step guaranteed that the board was electrically safe and ready for further testing.
2. Testing the Basic Circuit With the LED¶
Before building the sensor, we verified the connections using a simple LED test.
LED Test Code:
void setup() {
pinMode(D10, OUTPUT); // Use any pin where the LED is soldered
}
void loop() {
digitalWrite(D10, HIGH);
delay(500);
digitalWrite(D10, LOW);
delay(500);
}
This confirmed that:
- power was stable,
- pins were mapped correctly on Fabrixiao,
- the solder joints were solid.
By Mariam Baghdasaryan
3.Building and Testing the Capacitive Sensor¶
We constructed a CapacitiveSensor using conductive fabric.
Because the XIAO RP2040 does not support external Arduino libraries in our setup, we did not use the CapacitiveSensor library. Instead, we wrote a minimal direct-measurement capacitive sensing code using a resistor between two analog pins (A1 and A3). All codes were generated with the help of ChatGPT.
Capacitive Sensor Test Code
// send pin = A3
// receive pin = A1
const int sendPin = A3;
const int receivePin = A1;
void setup() {
pinMode(sendPin, OUTPUT);
pinMode(receivePin, INPUT);
Serial.begin(9600);
}
long readCapacitiveValue() {
long counter = 0;
pinMode(receivePin, INPUT);
digitalWrite(sendPin, HIGH);
while (digitalRead(receivePin) == LOW) {
counter++;
}
pinMode(receivePin, INPUT);
digitalWrite(sendPin, LOW);
return counter;
}
void loop() {
long value = readCapacitiveValue();
Serial.println(value);
delay(100);
}
This verified that the capacitive fabric pad responded to touch.
By Mariam Baghdasaryan
Adjusting the threshold based on Serial values
When testing, we observed the raw sensor output in the Serial Monitor. This helped us determine:
-
the baseline value when not touched,
-
the peak value when touched.
We then selected a threshold slightly above the baseline. This step is essential because every conductive fabric sensor produces different values depending on material, humidity, size, and user.
4. Adding the Servo Motor¶
Only after confirming that the capacitive sensor worked did we add a servo motor, connected to pin A2. We used Servo Corona CS939MG
Servo Corona CS939MG
The Corona CS939MG is a small analog RC servo motor with metal gears that produces about 2.5–2.7 kg·cm of torque and moves quickly, making it suitable for lightweight robotics and hobby projects.
It’s compact (about 22.5 × 11.5 × 24.6 mm) and lightweight (~12.5 g), commonly used in remote control models, small mechanisms, and robotic actuators where precise controlled motion is needed.
Since we could not install external libraries, we used the built-in Servo library.
Final Code: Capacitive Touch + Servo Reaction
#include <Servo.h>
// --- Пины ---
const int sendPin = A3; // зарядный пин (через резистор)
const int sensePin = A1; // сенсорный пин
const int servoPin = A2; // серво мотор
Servo earServo;
int basePos = 0; // стартовая позиция серво
int touchMove = 120; // на сколько градусов двигать
bool wasTouched = false; // фиксируем предыдущее состояние
// --- Функция измерения ёмкости ---
long readCapacitiveSensor() {
pinMode(sensePin, INPUT);
pinMode(sendPin, OUTPUT);
// разряд
digitalWrite(sendPin, LOW);
delayMicroseconds(5);
// заряд
digitalWrite(sendPin, HIGH);
long count = 0;
while (digitalRead(sensePin) == LOW && count < 3000) {
count++;
}
// разряд перед следующим циклом
digitalWrite(sendPin, LOW);
return count;
}
void setup() {
Serial.begin(115200);
Serial.println("Capacitive Sensor + Servo One-Move Test");
earServo.attach(servoPin);
earServo.write(basePos); // изначальная позиция
}
void loop() {
long value = readCapacitiveSensor();
Serial.print("Sensor value: ");
Serial.println(value);
bool touched = value > 110; // порог чувствительности
// --- Выполняем движение только при ПЕРВОМ касании ---
if (touched && !wasTouched) {
Serial.println("TOUCH DETECTED — MOVE!");
earServo.write(basePos + touchMove); // движение на 90°
delay(300); // пауза
earServo.write(basePos); // возврат
delay(100); // стабилизация
}
wasTouched = touched; // обновляем предыдущее состояние
delay(200);
}
By Mariam Baghdasaryan
Summary
-
We soldered XIAO RP2040, a resistor, and a LED onto a Fabrixiao textile PCB.
-
We confirmed electrical connections using an LED blink test.
-
We built and tested a capacitive touch sensor using analog pins A1 and A3.
-
After verifying correct sensor behavior, we added a servo motor on pin A2.
-
Because we could not load external libraries, we used only:
-
minimal custom capacitive sensing code
- the built-in Servo library
Making Project
After testing the circuit using alligator clips, I assembled the project in the following way:
-
I stitched the Fabrixiao with the RP2040 onto a piece of felt (using non-conductive thread).
-
Using thin insulated wire, I attached the resistor and the sensor to the Fabrixiao. I originally made the sensor from two separate parts so I could detach the outer part of the project (the bunny) from the inner electronics using a snap button. Later I decided to abandon this idea and kept the sensor as a single button.
-
I stitched the servo motor onto the fabric and connected it to the corresponding pins on the Fabrixiao.
-
I sewed a small pocket to hold a lithium-ion polymer battery. Then I soldered the battery leads to the Fabrixiao: the black wire goes to –, and the red wire goes to +.
-
I stitched the bunny and attached its ears to the rotating horn of the servo motor using very thin nylon fishing line. After several attempts, I found the correct positioning where the tension was right, and the ears moved smoothly when the servo rotated.
-
At first, I tested the system by powering it through a USB cable connected to my laptop. Later, I will install the battery permanently.
By Mariam Baghdasaryan
E-Textiles Project: Pressure-Controlled Sound Sensor¶
This project explores a simple e-textile pressure (strength) sensor and its integration into a soft textile prototype.
The system converts physical pressure into sound, where stronger pressure results in a louder output.
The sensor is made from two layers of conductive copper fabric with a Velostat layer in between, acting as a variable resistor.
An Adafruit Flora board reads the sensor values using a 5 kΩ resistor and controls a piezo speaker.
1. Tools and Materials Used for Testing¶
| Category | Item | Purpose |
|---|---|---|
| Microcontroller | Adafruit Flora | Reads sensor input and controls output |
| Sensor materials | Conductive copper fabric (2 layers) | Forms the pressure sensor electrodes |
| Sensor material | Velostat | Changes resistance under pressure |
| Passive component | 5 kΩ resistor | Voltage divider for sensor reading |
| Output | Piezo speaker | Produces sound |
| Wiring | Alligator clips | Temporary connections during testing |
| Power | USB cable | Power supply from computer |
| Software | Arduino IDE | Uploading and modifying code |
| Computer | Laptop | Programming and serial monitoring |
2. Tools and Materials Used for the Final Project¶
| Category | Item | Purpose |
|---|---|---|
| Microcontroller | Adafruit Flora | Central control unit |
| Sensor materials | Conductive copper fabric (2 layers) | Pressure-sensitive electrodes |
| Sensor material | Velostat | Pressure-sensitive resistive layer |
| Passive component | 5 kΩ resistor | Stabilizes and scales analog sensor values |
| Output | Piezo speaker | Sound output |
| Textile base | Felt fabric | Structural and soft substrate |
| Conductive connections | Conductive thread | Permanent electrical connections |
| Sewing tools | Needle, scissors | Assembly of textile layers |
| Power | LiPo battery 3.7V | Portable power supply |
3. Testing with Alligator Clips¶
Connection Scheme¶
During the testing phase, all components were connected temporarily using alligator clips and powered via USB from a computer.
Connections:
- Copper fabric layer 1 → GND
- Copper fabric layer 2 → Resistor
- 5 kΩ resistor → between D6 and 3.3V
- Piezo speaker (+) → D9
- Piezo speaker (–) → GND
- Adafruit Flora → USB power from computer
Logic:
- The sensor and 5 kΩ resistor form a voltage divider
- Pressure on the sensor reduces resistance in the Velostat
- Analog values increase with stronger pressure
- The Flora maps sensor values to sound volume
By Mariam Baghdasaryan
4. Assembling the Final Project¶
After successful testing, the project was assembled into a soft textile form:
- The sensor layers (copper fabric – Velostat – copper fabric) were stacked and aligned.
- The 5 kΩ resistor was integrated into the circuit using conductive thread.
- All components were sewn onto a piece of felt.
- Electrical paths were stitched carefully to avoid short circuits.
- The piezo speaker was positioned to allow sound to propagate through the textile.
- The Adafruit Flora and LiPo battery were securely attached.
- The system was powered by the LiPo battery for full portability.
Final Behavior:
- Light press → quiet sound
- Strong press → louder sound
The result is a fully textile-based interactive sound interface, demonstrating how pressure-sensitive materials and passive components can be combined in e-textile systems.
5. Final code and result¶
// -------------------- PINS --------------------
const int pressurePin = A7; // DIY pressure sensor
const int piezoPin = A9; // Piezo speaker
// ---------------- MEASURED VALUES -------------
const int noPressValue = 1023; // no pressure
const int maxPressValue = 20; // strong pressure (calibrate if needed)
// ----------------- SMOOTHING ------------------
float smoothPressure = 1023;
// -------------------- SETUP -------------------
void setup() {
pinMode(piezoPin, OUTPUT);
Serial.begin(9600);
while (!Serial); // for FLORA / Xiao / RP2040
Serial.println("Pressure Sensor Test Started");
}
// --------------------- LOOP -------------------
void loop() {
int rawValue = analogRead(pressurePin);
// Exponential smoothing (good for textile sensors)
smoothPressure = smoothPressure * 0.85 + rawValue * 0.15;
// Consider "pressed" if value goes below threshold
if (smoothPressure < 900) {
// Prevent out-of-range values (IMPORTANT!)
int clampedPressure = constrain(
smoothPressure,
maxPressValue,
noPressValue
);
// Inverted mapping: more pressure → higher pitch
int frequency = map(
clampedPressure,
noPressValue,
maxPressValue,
150, // low buzz
2500 // strong buzz
);
frequency = constrain(frequency, 150, 2500);
tone(piezoPin, frequency);
// ---------- SERIAL OUTPUT ----------
Serial.print("Raw: ");
Serial.print(rawValue);
Serial.print(" | Smooth: ");
Serial.print((int)smoothPressure);
Serial.print(" | Freq: ");
Serial.println(frequency);
}
else {
noTone(piezoPin);
Serial.print("Raw: ");
Serial.print(rawValue);
Serial.println(" | No press");
}
delay(20);
}
By Mariam Baghdasaryan









