Skip to content

5. E-textiles

References

Anuvad is an Ahmedabad, India, based studio doing project like these that combine traditon and tech.

Project Jacquard to weave interactivity into textiles

Both these projects incorporate tech, especially electronics, into fabric, to make material and objects that are sensitive, reactive, and interactive.

Research

How to Get What You Want, also known as Kobakant.at, is the premier resource for all things fabric x electronics x DIY. I am thoroughly amazed at the ingenuity of the builds documented here.

Here are some of my frequent references.

General e-textile sensor references

Pressure and squeeze sensors

Textile sliders and potentiometers

Analog readings and voltage divider

NeoPixels and wearable output

I had worked with NeoPixels extensively during my FabAcademy final project, and I had found these links very very handy.

Ideation

I had several ideas to use everyday items to turn into sensors by hijacking their conductive and insulating properties.

List of items :

  • snap buttons
  • metal beads
  • wires and conductive thread
  • metal wool from kitchen vessel scrubber
  • velostat fabric
  • copper or aluminium foil pieces/tape

These could be used to make digital On/Off switches or analog sensors with a range of outputs.

alt text alt text alt text alt text alt text alt text alt text alt text

Fabric sensors

Digital switch

A snapfit/ press button attached using either fine copper wire or with conductive thread acts as an On-Off digital switch.

text

Pressure sensor 1 - Squeezee

A steel mesh pot-scrubber, when squeezed, increases contact between it's strands, and drops in resistance. This change in resistance can be used to infer pressure.

text
text
text
text text text
text

While it does show a change in resistance when squeezed manually, enclosing it in the fabric samosa pocket seems to bring the mesh closer/make it denser, so the range of the variation is reduced quite a lot. This will have to be debugged later - either by opening it up and removing material, and/or adding insulating fibres like paper or cotton or fabric shreds into the mix.

Pressure Sensor 2 - Velostat

Next I used a velostat piece sandwiched between 2 felt pieces from the OSCF week.

I stitched up a series of running stitch lines using conductive thread on both felt pieces to create contact between the velostat and the snap buttons, to which other conductive paths could be attached to complete the circuit.

Next I stitched together the entire sandwich of felt-velo-felt with regular thread and a blanket stitch to seal up the edges.

I made two arms using felt strips, with the other half of the snap fit buttons stitched at one end, Cu tape from button to other end, and jumper wires soldered to the Cu tape end.

The final circuit would be
Arduino pin - jumper - Cu tape - snapbutton - velostat sandwich - snapbutton - Cu tape - jumper - Arduino pin

text text text

text

text

Effectively, this was

  • a pressure sensor, with the velo-sandwich as the sensor
  • an on-off switch or digital sensor, if the snap buttons were engaged/disengaged

Slider 1 - Bead with conductive fabric

(pressfit buttons version)

alt text

alt text

This was a simple slider consisting of :

  • a fabric base
  • a strip of conductive fabric
  • a metal bead
  • thin Cu wires
  • pressfit buttons
  • the jumper + Cu tape + pressfit button felt arms from the pressure sensor

The circuit was was follows :

  • the arduino pins connect to each felt arm through the jumper
  • the pressfit buttons on one jumper arm connects to it's mating half on the base fabric
  • the pressfit button is stitched into the base fabric + conductive fabric strip using Cu wire
  • the conductive fabric is in sliding contact with the metal bead
  • the metal bead has 2 Cu wires running through it and anchored to the base fabric.
  • 2 wires were used to mantain symmetric tension and keep the bead aligned to the conductive fabric
  • they also increased the friction in sliding the bead and made the positioning more controlled
  • one of the wires is connected to another half of a pressfit button stitched into the base fabric
  • the felt arm has the mating half of the pressfit

The circuit is complete when the pressfit arms are connected to the arduino pins and the mating pressfit buttons The sensor effect comes from the sliding bead and the varying length of the conductive fabric in the circuit

text

Slider 2 - Bead with conductive fabric

(aglet version)

Same as the pressfit version but faster to execute since I used aglets - pressfit rivets with a hole, typically used to reinforce shoelace holes in shoes. Being metal, they are conductive. Being pressfit rivets, they saved a lot of stiching time.

This was a simple slider consisting of :

  • a fabric base
  • a strip of conductive fabric
  • a metal bead
  • thin Cu wires
  • aglets
  • jumper cables cut in half and stripped The circuit was was follows :
  • the arduino pins connect to the jumper
  • the bare end of the jumper is connected to a Cu wire which is connected to the aglet
  • the aglet is pressfitted into the base fabric + conductive fabric strip using its pressing tool
  • the conductive fabric is in sliding contact with the metal bead
  • the metal bead has 2 Cu wires running through it and anchored to the base fabric.
  • 2 wires were used to mantain symmetric tension and keep the bead aligned to the conductive fabric
  • they also increased the friction in sliding the bead and made the positioning more controlled
  • the 2 strands of Cu wire are actually one length of wire threaded from one corner of the base fabric to the diagonally opposite corner through the bead, and then under the short side of the base fabric, up through the neighbouring aglet, and again diagonally across to the remaining corner via the bead.
  • the felt arm has the mating half of the pressfit

The circuit is complete when the pressfit arms are connected to the arduino pins and the mating pressfit buttons The sensor effect comes from the sliding bead and the varying length of the conductive fabric in the circuit

text

Basic Analog Sensor code

Can be used for any analog sensor. The sensor creates a voltage drop between the 5V and the A0 input pin, and the 10k resistor prevents noise on the A0 pin by grounding it when not receiving an input.

// Analog Sensor Read

int sensorPin = A1;
int sensorValue = 0;

void setup() {
  Serial.begin(9600);
    pinMode(sensorPin, INPUT);

}

void loop() {
  sensorValue = analogRead(sensorPin);
  // Serial.print("Sensor value: ");
  Serial.println(sensorValue);
  delay(500);
}

Analog Sensor Connections

text

Sensor terminals - 5V and A0
10k resistor - A0 and Gnd

Replace the LDR in the circuit with the crafted sensor.

Serial output

text text

This is fairly random, I am still trying to debug what is wrong here.

The range of ressitance offered by the length of conductive fabric vs the conductivity of the cu wire is resulting in a very low band of variation across the length of the conductive strip, and this makes it prone to being affected by other factors. While it is working in principle, I would want to work on this further before any practical applications can be made.

Hard soft connections

These were some of the hard-soft connections I explored for this exercise

  • Pressfit buttons + Conductive thread text

  • Pressfit buttons + Fine Copper wire text

  • Copper tape + Pressfit buttons + Conductive thread

  • Copper tape + Jumper wires
    text

  • Copper wire + Conductive Thread
    text

  • Conductive thread + Perf-board
    text

Project - Wearable Vambrace with glowing motifs

Concept

A wearable vambrace - a forearm armour used in the middle ages by archers as well as falconers training their falcons and hawks - with pressure sensor based NeoPixel lightup.

I wanted to use the squeeze or pressure sensor as an input, and based on the level of the input, light up neoixels.

The mapping would be :

Pressure -> Brightness
OR
Pressure -> Number of LEDs

Though I had stared with just lighting up some neopixel LEDs, eventually I settled on creating the White Tree of Gondor, defined by Neopixel LEDs.

The tree motif would be on a forearm covering vambrace, while the sensor would be in the palm of the glove, to be activated by squeezing. The microcontroller, currently an Arduino Uno, would be the Xiao RP2040, stitched onto the back of the hand.

The vambrace would have aglets to easily lace it up onto the forarm.

text text text text
I found the image at the very end of the week, of the same concept but in leatherwork ! Image credits : Grommet's leathercraft, Black Raven Armoury

text text text

Neopixel Tree sketch
XIAO on fabric
neopixels on perfboard 0 attachment plan

Process

I started with cutting perfboards ot size and filing them clean. One board for each neopixel, with an extra row of holes at both sides to be able to stitch the perfbaord pieces into the fabric.

text text text text

Once the perfboards were cleaned, I cut up a neopixel adhesive strip and glued each led in place on the boards. Then they were placed on their location and a few small stiches of thread kept them in place. Once they were staying put, I traced the +5V and GND paths across the fabric from LED to LED.
text text text text

Where thread crossed over other threads, I applied masking tape over the conductive threads to maintain electrical separation.
text text text

Once the 5V and GND paths were sorted, I ran a third path for the Sig IN and Sig Out pins. While the 55V and GND paths could be branches, parallel or series, the SIG path had to be a series for the neopixels.

Finally I tested my code and wiring on a square panel using an Arduino to make sure there were no issues with the code, before connecting the same base circuit + arduino + code to the Neopixel tree.

text text text text text text

While the code certainly works, there seems ot be something shorting LED 4 and the tree isn't lighting up LED 4 onwards. This needs some reworking and meticulous testing to correct and get it working as intended. However, in principle, it works. It defeintely needs the rest of the process as well - cutting the base fabric to size, adding aglets to make it wearable, and generaly tidying up.

Code for basic Neopixel test :

#include <Adafruit_NeoPixel.h>

#define LED_PIN     6      // Pin connected to the NeoPixel data line
#define LED_COUNT   4      // Number of NeoPixels in the strip

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();           // Initialize the NeoPixel strip
  strip.show();            // Turn OFF all pixels at startup
  strip.setBrightness(100); // (optional) set brightness 0–255
}

void loop() {
  // Simple color cycle: red → green → blue
  colorWipe(strip.Color(255, 0, 0), 100);  // Red
  colorWipe(strip.Color(0, 255, 0), 100);  // Green
  colorWipe(strip.Color(0, 0, 255), 100);  // Blue
}

// Helper function: fill the strip color by color
void colorWipe(uint32_t color, int wait) {
  for (int i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, color);
    strip.show();
    delay(wait);
  }
}

Issues, Conclusions and Reflections

  • A number of fabric based sensors were crafted. Some were successful, some should work in principle but need practical refinement.
  • A number of methods to make hard-soft connections were explored.
  • I realised stitching is a good but time-consuming process while Cu tape is quick-and-easy, but may not be durable. This is seen in effect in my wearable week where, unlike the considerable conductive thread stitching I did here, I go ahead and use Cu tape extensively.
  • Debugging shortcircuits in conductive thread is extremely tiresome - I had to give up and take pause even though the project was a version of something I had already done and so I knew what issues were to be expected.
  • however, on the whole, this is a whole new dimension of electronics embedded into textile and soft materials, that I am looking forward to explore.
  • the inherent hackyness and use of unexpected properties of random objects also adds to the fun !

Files

Code already inserted across this page.