Skip to content

5. E-textiles

References & Inspiration

Working with electronics isn’t exactly my strongest skill, but it’s something I’ve been wanting to get better at for a long time. I really believe that as our material world becomes more alive — more responsive, interactive, and communicative — we’ll be able to uncover new layers of human experience that we haven’t yet explored.

One of my biggest inspirations is Behnaz Farahi. I love how she uses interactivity and advanced materials to explore deep themes like emotion, feminism, bodily perception, and social connection. Her work reminds me that technology can be both critical and poetic at the same time.

Behnaz Farahi's Critical Matter

For this week’s assignment, I’m inspired to create something along the lines of Elizabeth Meiklejohn, Laura Devendorf, and Irene Posch’s Magnetic Reverberations, and Laura Devendorf, Sasha de Koninck, Shanel Wu, and Emma Goodwill’s A Fabric That Remembers. I want to explore tactile and embodied interactions — ways materials can sense, respond, and hold traces of touch or movement.

For this week’s assignment, I got inspired by many amazing Fabricademy alumni and current students.

Some of the directions that caught my eye:

Research

This week, I focused on understanding the basics of electronics and interaction — how sensors, circuits, and programming can bring materials to life.

1. Understanding the Basics

Concept What It Means Notes
Circuit A path that lets electricity flow. Needs a power source and a load (output). The base of all electronics.
Series Circuit One shared path → same current, split voltage. If one part breaks, the whole circuit stops.
Parallel Circuit Multiple paths → same voltage, split current. Each path works independently.
Voltage (V) Electrical “pressure” that pushes current. Must meet or exceed forward voltage.
Current (A) Flow of electricity from + to . Too much can burn components.
Resistance (Ω) How much a material slows current flow. Controlled with resistors.

More on this in Liza Stark’s lecture

2. Sensor Basics

Type Signal Example
Digital ON / OFF Button, switch
Analog Variable or continuous Light, pressure, temperature

2.1 Creating Basic Digital Sensor

Components

# Name Description
1. Felt Soft base layer that provides structure and insulation.
2. Conductive Tape Used to carry electrical current between layers.
3. Folding Fabric (with hole in the center) Flexible middle layer that allows the circuit to bend and connect through the hole.
4. Felt Extension Strip + Conductive Tape + Paper Clip Connector Combination layer that extends the connection outward, adds top conductive tape, and attaches the clip as a connector.

Final Assembly and Exploded of Digital Sensor

Assembly Steps

Step Action Notes
1. Start with the Top Felt. This will serve as the uppermost layer of the circuit.
2. Apply conductive tape on the underside of the top felt. This creates the upper contact surface.
3. Add the Connector Layerfelt extension strip + conductive tape + paper clip connector. Make sure the connector touches the conductive tape on the underside of the top felt.
4. Place the Folding Fabric (with a hole in the center) underneath the connector layer. Align the hole directly with the contact area so current can pass through.
5. Apply conductive tape on the top side of the base felt layer. This connects with the layers above through the hole.
6. Position the Base Felt as the final layer. Serves as the main structure and insulation for the circuit.

All layers are assembled with double-sided tape.

*Digital Sensor Test*

2.1 Creating Basic Analog Sensor

# Name Description
1. Felt Soft structural layer that provides flexibility and insulation.
2. Conductive Tape Creates the electrical pathways between layers.
3. Velostat Pressure-sensitive material; its resistance changes when pressed.

describe what you see in this image

*Final Assembly and Exploded of Analog Sensor*

Assembly Steps

Step Action Notes
1. Start with the Top Felt. This serves as the upper layer of the sensor.
2. Apply conductive tape on the underside of the top felt and slightly over the edge. Acts as the top electrode for signal output.
3. Place the Velostat beneath the conductive side of the top felt. This forms the pressure-sensitive layer.
4. Apply conductive tape on the top side of the base felt. Acts as the bottom electrode, connecting to ground.
5. Position the Base Felt under the Velostat to complete the stack. Provides structure, insulation, and flexibility.

describe what you see in this image

*Analog Sensor Test*



Digital Push Sensor: Turning the LED On and Off

This circuit uses an Analog Pressure Sensor (or soft button) as a digital switch to control an LED.
When you press the sensor, it sends a HIGH signal to the Arduino and turns the LED ON.
When you release it, the signal returns to LOW, and the LED turns OFF.


Components

  • Arduino UNO
  • 1 × Digital Pressure Sensor (or soft conductive button)
  • 1 × 10 kΩ resistor (for pull-down)
  • 1 × LED (any color)
  • 1 × 220 Ω resistor (for LED current limiting)
  • Jumper wires + breadboard

Circuit Overview

  • 5 V (red wire) → one leg of the pressure sensor
  • Other leg of the sensor → connected to:
  • Digital input pin (e.g., D8)
  • 10 kΩ resistorGND
    → Together they form the pull-down circuit
  • LED:
  • Long leg (anode) → digital output pin (e.g., D5) through 220 Ω resistor
  • Short leg (cathode) → GND

describe what you see in this image

*Turning the LED on and off with a textile digital pressure sensor.*



How It Works

  1. When the sensor is not pressed:
  2. The pull-down resistor keeps the input pin connected to GND (0V).
  3. Arduino reads LOW (0) → the LED stays OFF.

  4. When the sensor is pressed:

  5. The sensor connects the digital pin to 5 V, overriding the pull-down resistor.
  6. Arduino reads HIGH (1) → the LED turns ON.

  7. The pull-down resistor ensures the pin never “floats” (unstable between 0–5 V).
    Without it, the input would randomly read HIGH or LOW, causing flickering or false triggers.


Arduino Code

const int ledPin = 5;
const int buttonPin = 8;

void setup() {
 pinMode(ledPin, OUTPUT);
 pinMode(buttonPin, INPUT);
}

void loop() {
 bool pressed = (digitalRead(buttonPin) == HIGH); // HIGH = pressed
 digitalWrite(ledPin, pressed ? HIGH : LOW);
}

Digital Push Sensor: Turning the LED On and Off

Analog Pressure Sensor + RGB LED with Arduino UNO

This setup combines an Analog Pressure Sensor and an RGB LED to visualize pressure as color changes.
The pressure sensor forms a voltage divider, converting changes in pressure (resistance) into an analog voltage that the Arduino can read.


Components

  • Arduino UNO
  • 1 × Analog Pressure Sensor (Velostat pad or similar)
  • 1 × 10 kΩ resistor (for voltage divider)
  • 3 × 220 Ω resistors (one per LED channel)
  • 1 × RGB LED (common-cathode or common-anode)
  • Jumper wires + breadboard

Circuit Overview

  • 5 V (red wire) → one leg of the Analog Pressure Sensor
  • Other sensor leg → connected to:
  • A0 (green wire) — reads the analog voltage
  • 10 kΩ resistorGND (black wire)
    → Together they form the voltage divider

  • RGB LED:

  • Red leg → pin 9 via 220 Ω resistor
  • Green leg → pin 10 via 220 Ω resistor
  • Blue leg → pin 11 via 220 Ω resistor
  • Common leg → GND (if common-cathode) or 5 V (if common-anode)

describe what you see in this image

*Controling the LED's color with a textile analog pressure sensor.*


How It Works

  1. When the Analog Pressure Sensor is not pressed, its resistance is very high (≈ 1 MΩ), so the voltage at A0 is close to 0 V.
  2. When pressed, the sensor’s resistance drops (to a few kΩ), raising the voltage at A0.
  3. The Arduino reads this analog value (0–1023) and maps it to a color hue using PWM signals on pins 9–11.
  4. The RGB LED gradually shifts colors as the applied pressure increases.

Why We Use a 10 kΩ Resistor

The 10 kΩ resistor is a fixed resistor that works with your pressure sensor to form a voltage divider.
It converts the sensor’s variable resistance into a measurable voltage range for the Arduino’s analog input.

If you don’t include this resistor, the circuit won’t have a clear reference path to ground, and A0 would just float, giving you random or unstable readings.


How to Choose the Right Resistor Value

You want your sensor readings to cover most of Arduino’s 0–5 V range.
To find the best resistor value, match it roughly to the average resistance of your pressure sensor.

Sensor Resistance Range Recommended Fixed Resistor
100 kΩ – 1 MΩ (very high) 47 kΩ – 100 kΩ
10 kΩ – 100 kΩ (medium) 10 kΩ – 22 kΩ
1 kΩ – 10 kΩ (low) 1 kΩ – 4.7 kΩ

If you’re unsure, start with 10 kΩ — it works well for most Velostat sensor.

You can verify your choice by monitoring the analog value in the Serial Monitor: - No pressure → should read near 0–50 - Full pressure → should read near 900–1023

If your readings stay too low or too high, adjust ( R_{fixed} ) up or down accordingly.


How to Read Analog Value in the Serial Monitor

To see how the voltage changes as you press the sensor, upload this simple code:

void setup() {
  Serial.begin(9600);  // Start serial communication
}

void loop() {
  int sensorValue = analogRead(A0);  // Read the analog value
  Serial.println(sensorValue);       // Print it to the Serial Monitor
 delay(100);                        // Short delay for readability
}

Arduino Code

To run the circuit, upload the following code to your Arduino.

const int rPin = 9, gPin = 10, bPin = 11;

void setup() {
 pinMode(rPin, OUTPUT);
  pinMode(gPin, OUTPUT);
  pinMode(bPin, OUTPUT);
  Serial.begin(9600);
  delay(100);
  Serial.println("sensor\thue\tr\tg\tb");  // header: 5 labels
}

void loop() {
  int s = analogRead(A0);                 // 0..1023
  s = constrain(s, 0, 1023);
  byte hue = map(s, 0, 1023, 0, 255);

  // very simple hue→RGB ramps (no text anywhere)
  byte r, g, b;
  if (hue < 85) {                // 0..84
   r = 255 - (hue * 3);
   g = hue * 3;
    b = 0;
  } else if (hue < 170) {        // 85..169
    byte h2 = hue - 85;
    r = 0;
    g = 255 - (h2 * 3);
    b = h2 * 3;
  } else {                       // 170..255
   byte h3 = hue - 170;
   r = h3 * 3;
   g = 0;
   b = 255 - (h3 * 3);
  }

 analogWrite(rPin, r);
  analogWrite(gPin, g);
  analogWrite(bPin, b);

  // one numeric line per sample, tab-separated
  Serial.print(s);   Serial.print('\t');
  Serial.print(hue); Serial.print('\t');
  Serial.print((int)r); Serial.print('\t');
  Serial.print((int)g); Serial.print('\t');
  Serial.println((int)b);

  delay(50);
}

Analog Pressure Sensor + RGB LED with Arduino UNO

Integrating Two Soft Sensors into Textile Swatches (Hard–Soft Connections)

Goal: Combine the digital push sensor and analog pressure sensor into one or two textile swatches, connecting both to the Arduino through visible hard–soft transitions (snaps, rivets, or alligator clips).

How it works:

Digital swatch: fabric push sensor toggles LED ON/OFF.

Analog swatch: fabric pressure pad controls LED brightness / color. Each sensor is sewn or layered onto fabric, and conductive threads or fabric tape end in metal snaps that connect to wires or clips leading to the breadboard and Arduino.

Fabrication files


  1. File: xxx 

  2. File: xxx