eTextile Swatch Exchange 2017: At the Fringes

Posted on Jun 20, 2017 in Craft, Sensors
eTextile Swatch Exchange 2017: At the Fringes

Title: At the Fringes

Credits: Liza Stark

Year of Invention: 2017

Fringes hang beneath. They create the boundary between finished object and the outer world. They give movement to otherwise static textiles, unmasking the potential for action. This swatch employs a pulling mechanic to turn fringe into a switch. Ribbons, fabric scraps, and other textile leftovers are placed between two conductive patches drawn together by magnets. When pulled out, the patches make contact and trigger an LED. Each switch is part of a series of voltage dividers acting as a resistor ladder that allows multiple switches to exist on one ATtiny analog pin.

Fringes is also a term used to describe people living on the outer edges of society, people who don’t fit into confined social and societal categories. Some of us choose to live at the fringes in countercultural movements or the like, while some of us have no choice given our gender, ethnicity, or socio-economic background within a given cultural context. Exchanging stories of fringe experiences creates opportunities for empowering dialogue and shared understanding. This swatch is a first prototype of a story collecting and telling project inspired by a series of workshops at the intersection of eTextiles and activism. Pulling a piece of fringe will activate a fabric speaker patch within a larger quilt to reveal a personal experience of living in a fringe space.


Sound Scales by Meg Grant, 2013/14
Embedding components into ornamented textiles with hanging or free-flowing embellishments.

Voltage Divider by Pauline Vierne, Paul Seidler and Jussi Mikkonen, 2016
Using resistor ladder and voltage divider principles to put multiple switches on one analog pin.

Resistor ladder tutorial

Quilting and crafting circles as spaces for community building and collective storytelling.


  • 1210/3528 SMD LEDs
  • Copper taffeta fabric
  • Heat’N’Bond Fusible Interfacing
  • ATtiny 85
  • 8 pin socket
  • 1K Ohm resistor
  • 3K Ohm resistor
  • 5.1 K Ohm resistor
  • 10K Ohm resistor
  • Neodymium magnets
  • 3V battery
  • Calico
  • Ribbon and fabric scraps
  • Fabric Glue
  • Solder

Fabric bonding
Vinyl Cutting

13 x 16.5 cm




(There is a lovely soundtrack courtesy of NYC, so you might want to mute until the next video 🙂

Patterns, Templates, Schematics, Circuit Diagrams:








int sensorPin = A3;
int sensorVal;

int ribbon1 = 2;
int ribbon2 = 1;
int ribbon3 = 0;

void setup() {

pinMode(sensorPin, INPUT);

pinMode(ribbon1, OUTPUT);
pinMode(ribbon2, OUTPUT);
pinMode(ribbon3, OUTPUT);


void loop() {

sensorVal = analogRead(sensorPin);

//all buttons open
if (sensorVal == 0) {

//turn on all LEDs
digitalWrite(ribbon1, LOW);
digitalWrite(ribbon2, LOW);
digitalWrite(ribbon3, LOW);


//ribbon1 pulled
else if (sensorVal >= 928 && sensorVal <= 934) {
//turn on ribbon1
digitalWrite(ribbon1, HIGH);
//turn off ribbon 2 & 3
digitalWrite(ribbon2, LOW);
digitalWrite(ribbon3, LOW); }

//ribbon 2 is pulled
else if (sensorVal >= 785 && sensorVal <= 790) {
//turn on ribbon2
digitalWrite(ribbon2, HIGH);
//turn off ribbon 1 & 3
digitalWrite(ribbon1, LOW);
digitalWrite(ribbon3, LOW); }

//ribbon 3 is pulled
else if (sensorVal >= 674 && sensorVal <= 680) {
//turn on ribbon3
digitalWrite(ribbon3, HIGH);
//turn off ribbon 1 & 2
digitalWrite(ribbon1, LOW);
digitalWrite(ribbon2, LOW); }

//ribbon 1 & 2 are pulled
else if (sensorVal >= 949 && sensorVal <= 955) {
//turn on ribbon 1 & 2
digitalWrite(ribbon1, HIGH);
digitalWrite(ribbon2, HIGH);
//turn off ribbon 3
digitalWrite(ribbon3, LOW); }

//ribbon 2 & 3 are pulled
else if (sensorVal >= 859 && sensorVal <= 864) {
//turn on ribbon 2 & 3
digitalWrite(ribbon2, HIGH);
digitalWrite(ribbon3, HIGH);
//turn off ribbon 1
digitalWrite(ribbon1, LOW); }

//ribbon 1 & 3 are pulled
else if (sensorVal >= 942 && sensorVal <= 947) {
//turn on ribbon 1 & 3
digitalWrite(ribbon1, HIGH);
digitalWrite(ribbon3, HIGH);
//turn off ribbon 2
digitalWrite(ribbon2, LOW); }

//all ribbons are attached
else if (sensorVal >= 959 && sensorVal <= 965) {

//turn on off LEDs
digitalWrite(ribbon1, HIGH);
digitalWrite(ribbon2, HIGH);
digitalWrite(ribbon3, HIGH);