Skip to content

5. E-textiles

References & Inspiration

Rachel Freire - mimu glove

Rachel Freire is a London-based designer and e-textile artist who merges fashion, movement, and sound through soft technology.Her work explores how the body becomes an instrument, especially through her e-textile data gloves, which translate gesture into digital or musical signals.

The gloves use conductive fabrics, threads, and flex sensors sewn directly into the textile.
Each bend, pinch, or stretch of the hand sends data to a computer or synthesiser - turning simple hand motions into expressive music.
This bridges the world of performance, embodiment, and sound design, letting wearers quite literally play music through movement.

Electronics: The Fundamentals (E-Textiles Edition)

When we build soft circuits in textiles, we are simply guiding electricity through fabric instead of wires.

These are the essentials to understand:

E-Textiles: Electronics in a Nutshell

Circuit
A loop that lets electricity travel. In e-textiles, we sew the path using conductive thread or fabric tape.
(+ Battery → Components → – Battery)

Voltage (V)
The “push” of electricity.
• Coin cell = 3V · Arduino = 5V

Current (A/mA)
The flow of electricity.
Series = one narrow lane → voltage shared
Parallel = multiple lanes → brighter, even power (best for wearables)

Traces
Your stitched “roads” for electricity - made with conductive thread, fabric, or copper tape.

Switch
Opens or closes the road. Break the path = no light.

LED (Polarity!)
A light that only works one way.
• Long leg = + | Short leg =
• Backwards? No glow!

Materials

material

Conductive Materials for E-Textiles

Conductive materials allow electricity to travel through fabric.
They replace traditional wires and can be threads, tapes, fabrics, or inks.

Types of Conductive Bases

Type Examples
Metals Silver · Copper · Steel · Gold
Textiles Conductive thread, yarn, knit, woven fabric
Other Copper tape, conductive ink, paint

What to Consider When Choosing Material

Factor Why It Matters
Resistance Low Ω = better conductivity
Connectivity Can it be sewn, soldered, snapped?
Feel Skin comfort (soft / scratchy?)
Stretch Does it move with the body?
Thickness Thread vs fabric vs tape

Conductive Thread - Uses

  • Hand stitching - embroidery, decorative seams
  • Machine stitching - in bobbin or top thread
  • Knitting / weaving - blended with normal yarn

Each conductive material behaves differently.
Create a mini
material swatch or data sheet to test resistance & feel.

Tools & Software

Tools & Software for E-Textiles

Software
- Arduino IDE – for programming & testing circuits
- Rhino 3D – for pattern design & laser cutting

Hardware & Textile Tools
- Battery
- Multimeteryour best friend for checking connections
- LEDs (diffused, bright, RGB)
- Conductive thread / conductive fabric / copper tape
- Alligator clips (for quick testing)
- Sewing needles (large eye for conductive thread)
- Baby pliers / small wire cutters
- Sharp scissors (fabric only )
- Fabric pen / chalk (for marking circuits)

Tip: Keep a small “test square” of fabric with an LED + battery.
It helps check continuity before sewing a full circuit.

Understanding Circuits in E-Textiles

A circuit is a closed loop that allows electricity to flow.
In soft electronics, we sew or clip this loop using conductive thread, fabric, or alligator clips. Always avoid a short circuit - when positive and negative touch directly, creating heat instead of light.

Basic Circuit Setup (LED + Battery Test)

Materials: - 3V Coin cell battery + holder
- 2 LEDs (same colour)
- 2–3 alligator clips

Steps: 1. Place the battery in the holder (+ to +).
2. Clip the positive (+) side of the battery to the long leg of the LED.
3. Clip the negative (–) side to the short leg.
4. If it doesn’t light, check polarity, or check for a short circuit (legs touching).

Polarity Tip:
Long leg = + | Short leg = –
Flat edge on LED base = negative side

Series vs Parallel Circuits

Circuit Type Visual Analogy What Happens
Series One-lane road LEDs share voltage → too weak → may not light with 3V
Parallel Two lanes Each LED gets full voltage → both light brightly

svp

Sensors & Resistance

Resistance controls how much current can flow.
- Low resistance → bright LED
- High resistance → dim or no light

Ways resistance changes in fabric:
- Distance: longer path = more resistance
- Pressure: press → resistance drops
- Surface Area: wider conductive path → easier flow

Core Parts of a Soft Circuit

Electronics Description Example
Power source Source of electrons Coin cell battery (3V)
Traces Path that lets electrons flow Conductive thread
Output device What responds LED light
Input device Opens/closes the loop Digital sensor / switch

Circuits are not just electronics - they are stitched stories of light, touch, and interaction.

Making a Soft Fabric Switch (Felt + Conductive Fabric + Velostat)

To create a textile switch, I built a small fabric sandwich using three layers:

Materials

  • Felt (outer base and top layer)
  • Conductive fabric or conductive thread
  • Velostat (pressure-sensitive layer)
  • Needle, thread, or glue

How the Switch Works

A soft switch closes the circuit only when pressed.
When the top and bottom conductive pieces touch (through the Velostat), electricity can flow → LED turns on.

Layer Sandwich

sandwich

Soft switch

Using Arduino to Test My Textile Circuit

arduino

arduino To test if my fabric switch could control an LED, I first opened one of Arduino’s built-in examples:

File → Examples → 01.Basics → AnalogReadSerial arduino}{width=300

This example continuously reads input values, which is perfect for detecting when my fabric switch is open or closed.

Once uploaded:
- With the switch open, the Serial Monitor showed low values (LED OFF)
- When the switch closed, the values jumped high (LED ON)

This confirmed that my textile piece was sending a real input signal to the Arduino.

arduino

Key Arduino Terms & Values

Term / Value Meaning Why It Matters in E-Textiles
GND (Ground) Zero volts – return path All components must connect to GND for the circuit to work
HIGH / 1 ON (5V signal) Pin receives power – LED or output turns on
LOW / 0 OFF (0V) No power – LED or output turns off
1023 Max analog value Full pressure/contact on fabric sensor or switch
0 Min analog value Open circuit – no contact or pressure
255 Max PWM output Full brightness / full volume when using analogWrite()
A0, A1… Analog input pins Read changing values (sensors, Velostat, pressure)
D2, D3… Digital input/output pins ON/OFF signals like switches or LEDs

Adding a Fabric Switch to Arduino

switch

In this setup, I connected my handmade textile switch to an Arduino Uno to control an LED.
The orange felt piece contains conductive layers that act as a soft on/off button.

Following the Wires

01 The Digital Switch

Digital Fabric Switch → LED + Buzzer (step-by-step)

Goal: Press the fabric sandwich → LED lights up + buzzer sounds.

Materials

  • Felt (top & bottom)
  • Velostat (pressure-sensitive layer)
  • 2 × conductive fabric or stitched conductive thread pads
  • Arduino Uno
  • LED (diffused) + 220–330 Ω resistor
  • Piezo buzzer
  • Alligator clips / snap pads / conductive thread

Build the Fabric Sandwich

[ Felt (top) + conductive fabric ]   ← Contact A
[ Velostat (pressure layer) ]
[ Felt (bottom) + conductive fabric ]← Contact B
- Stitch or tape the conductive pads so they only touch when pressed.
- Bring both pads out to clips or sewn terminals.

Wiring to Arduino

  • Switch:
  • One pad → A0 (reads analog pressure)
  • Other pad → 5V
  • LED:
  • D9 → 220–330 Ω resistor → LED anode (+)
  • LED cathode (–) → GND
  • Buzzer:
  • D10 → Piezo buzzer +
  • Buzzer (–) → GND
  • Common GND for all components.

Upload the Code

// Fabric switch controls LED + buzzer
const int SWITCH_PIN = A0;  // textile sandwich input
const int LED_PIN    = 9;   // LED output
const int BUZZER_PIN = 10;  // piezo buzzer

void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int value = analogRead(SWITCH_PIN);   // 0–1023 range
  bool pressed = (value > 800);         // adjust if needed

  // LED control
  digitalWrite(LED_PIN, pressed ? HIGH : LOW);

  // Buzzer control
  if (pressed) tone(BUZZER_PIN, 880);   // A5 tone
  else noTone(BUZZER_PIN);

  // Debug info
  Serial.print("A0 = ");
  Serial.print(value);
  Serial.print("\t pressed = ");
  Serial.println(pressed ? "YES" : "NO");

  delay(20);
}

Test

  • When not pressed → circuit open → LED OFF, no sound.
  • When pressed → conductive layers touch → LED ON + soft buzzer tone (880 Hz).

Troubleshooting

Symptom Cause Fix
LED always ON Input floating Add resistor or use INPUT_PULLUP on a digital pin
Weak or no tone Buzzer wired backward or too low voltage Swap leads or use 5 V pin
Flicker / unstable readings High resistance in fabric Double conductive layers or reinforce with conductive tape
Nothing happens No shared GND Check all grounds connect together

The buzzer adds a second sensory cue - turning a soft touch into both light and sound.

02 The Analog Switch

Armour of Calm

A soft wearable circuit that quietly pulses like breath to soothe and ground.

Guided Breath - building steps (click to expand)

Interaction - “Inhale with light… exhale with dark.” - LED fades 4s up → 4s down. No sounds, no screen.

1) Design in Rhino1 - Sketch mantle outline on XY; panelise into tiles/ribs. - Add stitch holes (Ø2–3 mm), cable channels (engrave), collar tabs. - Check scale with Distance; export SVG (mm).

2) Fabric & Materials - Base: scuba 2–3 mm
- Conductive fabric/thread for pads/traces
- Arduino Uno, diffused LED, 220–330 Ω resistor

3) Laser - Test tile first. Layers: Cut / Engrave.
- Starter settings (tune): Scuba 2 mm → Speed 35, Power 100, Passes 1–2; Engrave → Speed 300, Power 15.

4) Assemble - Sew tiles at hinge slots.
- Route traces; insulate any crossovers; add snap pads near collar.

5) Wiring (Arduino breath) - LED anode (+)D9220–330 Ω → LED
- LED cathode (–)GND
- Optional fabric switch: D2 ←→ GND (pinMode(D2, INPUT_PULLUP))

Why it works - analogWrite(D9, 0–255) fades brightness.
- INPUT_PULLUP keeps the switch stable (LOW when pressed).
- GND = return path; all negatives must meet here.

Arduino Code - 4s Breathing LED (with Fabric Switch)
// Breathing LED with optional fabric switch
const int LED = 9;       // PWM pin for LED
const int SWITCH = 2;    // Textile switch to GND (optional)

void setup() {
  pinMode(LED, OUTPUT);
  pinMode(SWITCH, INPUT_PULLUP);   // HIGH=open, LOW=pressed
  Serial.begin(9600);
}

void loop() {
  bool breathing = (digitalRead(SWITCH) == LOW);  // Switch pressed?

  if (breathing) {
    // Fade up (inhale): 0 → 255 over 4s
    for (int v = 0; v <= 255; v++) {
      analogWrite(LED, v);
      delay(4000 / 255);
    }
    // Fade down (exhale): 255 → 0 over 4s
    for (int v = 255; v >= 0; v--) {
      analogWrite(LED, v);
      delay(4000 / 255);
    }
  } else {
    analogWrite(LED, 0); // Switch not active → LED off
  }

  delay(10);
}

arduinosensorlog

Understanding the Serial Monitor

The Serial Monitor in Arduino lets you see what your sensor is doing in real time.
In this case, it’s reading the analog input (A0) from my fabric switch / pressure sensor.

When I press or release the textile layers, the resistance changes, and the Arduino converts that into numbers between 0 and 1023.

Sensor Condition Reading (approx.) Meaning
Open / not pressed 0–100 Very low voltage
Light touch 400–700 Medium resistance
Fully pressed 900–1023 Maximum signal
Shorted / clips touching 1023 Full 5V signal

What I Did with This Data

  • Set Thresholds:
    Used the readings to define when the light turns on —
    e.g. if (value > 800) → LED ON.

  • Mapped Sensor Range:
    Turned sensor pressure into visual feedback
    higher pressure = brighter LED or faster fade.

  • Debugged the Circuit:
    If the value didn’t change when pressed, it showed a connection issue
    (loose thread, high resistance, or weak conductive path).

Key Insight

By reading and interpreting these numbers, I could “see” what the fabric circuit was doing —
and tune my analog switch to behave just like a real, reliable button.

Troubleshooting the Analog Breathing Switch (Textile + Arduino)

When I connected my textile switch to Arduino for the breathing LED, several issues appeared.
The switch behaved differently than a normal button because fabric is flexible, resistive and unpredictable.

What Can Go Wrong and How I Fixed It

Issue Cause Solution
LED flickers or only half-bright Weak fabric contact or unstable resistance Doubled conductive fabric and reinforced with conductive tape
No reaction in Serial Monitor Switch connected to wrong pin or missing GND Checked wiring: one side to D2, other to GND
Analog value unstable (jumping 300 → 800) Fabric compressing unevenly Added backing felt + tighter stitching to stabilise pressure area
Code too fast to see breath Delay too short Increased fade delay: delay(4000/255); for slow breathing

Strengthening a Fabric Switch (For Arduino Reliability)

  • Used 2 layers of conductive fabric to lower resistance
  • Sewed with double conductive thread for cleaner signal
  • Added conductive tape where the fabric contacts the snaps
  • Avoided glue directly on conductive areas (insulates accidentally)

Soft circuits don’t fail like wires - they fade, shift, and fray. Stability comes from layering, stitching, and giving Arduino a clear signal.

Fabrication files