E-Textiles and Wearables II#


“The human body resonates at the same frequency as Mother Earth. So instead of only focusing on trying to save the earth, which operates in congruence to our vibrations, I think it is more important to be one with each other. If you really want to remedy the earth, we have to mend mankind. And to unite mankind, we heal the Earth. That is the only way. Mother Earth will exist with or without us. Yet if she is sick, it is because mankind is sick and separated. And if our vibrations are bad, she reacts to it, as do all living creatures.”

- Suzy Kassem, Rise Up and Salute the Sun: The Writings of Suzy Kassem

Thoughts and Objectives#

Resonance and Vibrations:#

I understand, through studies in morphic resonance and in yogic theories regarding the subtle vibrational bodies, that we can consciously tune into particular frequencies, either through music, chanting, healing practices such as sound baths or the use of tuning forks, which can help alter our perceptions, emotions, and our physical bodies.

Through music, vibrational healing and ecstatic dancing (meaning a form of dance in which the dancers, abandon themselves to the rhythm and move freely,leading to trance and a feeling of ecstasy), great healing can be done for our collective trauma as emotions are the nexxus between matter and mind, going back and forth between the two and influencing both. The way in which we move our bodies, use our voices and instruments can clear space for new emotions, neuron pathways, and thought patterns to arise, which then go on to take physical form in our words and actions, and these actions have the capacity to change the world.

To demonstrate this I will make a belt for the purpose of ecstatic dance using a mini DFplayer, in the future I would like to add an acceleometer so that the music reflects each movement made with the body.

Effects of EMFs on the Resonant Body#

After much research I have come to the conclusion that the full effects of man-made EMFs are not fully understood yet, and that further research must continue in order to comprehend the long term fluctuations of the resonant body at a molecular level when exposed to a constant bombardment of field modifyers. The current issue lies within the increasingly rapid necessity and reliance upon the production and mass consumption of EMF emmiting devices and systems in a relatively short span of time, considering the length of time mutations at a cellular level begin to take place within an organism or species, we will not be capable of seeing and understanding the outcomes of our actions for at least a generation.

At an emotional and psychological level however, we may already be subject to many distortions caused by EMFs. Highly sensitive people report feeling headaches, anxiety, suicide and depression, nausea, fatigue and loss of libido. The body has it’s own resonant centers or chakras where our most vibrant emotions are stored, amplyfied and ignited into our bodies in the form of molecular reactions which affect our health.

At a conciousnesss level EMFs could be affecting the links within our collective unconcious and therefore even how we operate as a society. Through the theory of morphic resonance we can conclude that, after much deliberation as to where in the physical body consciousness rests, we have not yet found a tangible link between mind and body. Tuning into a dimension of consciousness and of collective knowing through the physical body through fields of corresponding resonance seems increasingly more difficult when so many other man made fields are circulating our bodies.

Within this theme, I will construct a fractal antenna with the capacity to pick up EMFs and display a visual, sound and haptic response for the user.

Textile Speaker#

Sound and the Resonant Body#

All matter, including our bodies and cellular system, vibrate and resonate with vibrations of various frequencies. On the basis of this knowledge, sound therapy has been used traditionally as a way of healing a range of health conditions by activating and resonating with the body through sound frequencies to clear and heal blockages and change brainwave patterns. Sound is a powerful tool and has been found to arouse self healing processes within damaged DNA strands and enhance emotional and mental states.

Forms of sound therapy include gong baths, tuning forks, Tibetan singing bowls, chanting and drumming therapy.

Sound therapy is meant to stimulate the auditory senses with the purpose of modifying brainwave frequencies. The alpha brainwave state, activated at a range of 8 – 12 Hz is associated with daydreams, creativity and connectivity of thought patterns. The theta brainwave state which follows is reached at a frequency of 4 – 7 Hz and is associated with deep meditation states, hypnosis and REM sleep.

Matching sound to movement to create a trance-like form of ecstatic dance, where the wearer or the speaker belt, through the level of vigour in movements can control the outcome of the sounds. The objective is to encourage the wearer to experience and experiment with sound frequencies through organic movement, breaking through normal brainwave patterns to soften the ego self and open a space where the mind is attuned to bodily sensation and vibrations, bringing awareness to the present. In this state a pre-conditioned state of being which allows for creative flow is initiated.

The coiled texile speaker ressonates at a frequency of 8 Hz, stimulating the alpha brainwave state.


The sound produced by a speaker is the result of a coiled metal which creates a magnetic field when an electric current flows through it. An electromagnet is placed hovering above or below the speaker coil, the vibrations caused between these attracting and repelling fields causes pulsations on the tensed surface of the textile speaker coil emitting audible sound waves.

Fabric speakers are made by running 5-9V sound amplified signal through a very conductive coil in close proximity to a magnet. The total resistance of the coil should be 8 Ohms. It is best to weave a tight surface or embroider on a fabric that can be made taught like a drum so that the vibrations between the magnet and coil can amplify sound waves.

Kobakant: Sound Amplifying Circuits

Fabric Speakers

Stretch Sensor#

I used this workshop from Kobakant: Knit Accelerometer, to produce my own. I decided not to use it for this assignment, as I found that with vigorous movement as in dancing, the connections became brittle and the value readings through Arduino became unstable.

Citcuit: Arduino Nano + DFPlayer Mini#


Embroidered Speaker: Wearables II from Catherine Euale on Vimeo.

Circular Knit Speaker from Catherine Euale on Vimeo.


DFPlayer - A Mini MP3 Player For Arduino

 This example shows the basic function of library for DFPlayer.

 Created 2016-12-07
 By [Angelo qiao](Angelo.qiao@dfrobot.com)

 GNU Lesser General Public License.
 See <http://www.gnu.org/licenses/> for details.
 All above must be included in any redistribution

/***********Notice and Trouble shooting***************
 1.Connection and Diagram can be found here
 2.This code is tested on Arduino Uno, Leonardo, Mega boards.

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup()

  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));

  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
  Serial.println(F("DFPlayer Mini online."));

  myDFPlayer.volume(20);  //Set volume value. From 0 to 30
  myDFPlayer.play(1);  //Play the first mp3

void loop()
  static unsigned long timer = millis();
//  if (millis() - timer > 3000) {
//    timer = millis();
//    myDFPlayer.next();  //Play next mp3 every 3 second.
//  }

  if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.

void printDetail(uint8_t type, int value){
  switch (type) {
    case TimeOut:
      Serial.println(F("Time Out!"));
    case WrongStack:
      Serial.println(F("Stack Wrong!"));
    case DFPlayerCardInserted:
      Serial.println(F("Card Inserted!"));
    case DFPlayerCardRemoved:
      Serial.println(F("Card Removed!"));
    case DFPlayerCardOnline:
      Serial.println(F("Card Online!"));
    case DFPlayerPlayFinished:
      Serial.println(F(" Play Finished!"));
    case DFPlayerError:
      switch (value) {
        case Busy:
          Serial.println(F("Card not found"));
        case Sleeping:
        case SerialWrongStack:
          Serial.println(F("Get Wrong Stack"));
        case CheckSumNotMatch:
          Serial.println(F("Check Sum Not Match"));
        case FileIndexOut:
          Serial.println(F("File Index Out of Bound"));
        case FileMismatch:
          Serial.println(F("Cannot Find File"));
        case Advertise:
          Serial.println(F("In Advertise"));

EMF Detector with Haptic, Visual and Sound Output#

Note:This EMF detector is based on a project and workshop by Afroditi Psarra.

An electromagnetic field is a physical field produced by electrically charged objects. It affects the behavior of charged objects in the vicinity of the field. The electromagnetic field extends indefinitely throughout space and describes the electromagnetic interaction.

During the 20th century, environmental exposure to man-made electromagnetic fields has been steadily increasing as growing electricity demand, ever-advancing technologies and changes in social behaviour have created more and more artificial sources.

Low-frequency electric fields influence the human body just as they influence any other material made up of charged particles.

Low-frequency magnetic fields induce circulating currents within the human body. The strength of these currents depends on the intensity of the outside magnetic field. If sufficiently large, these currents could cause stimulation of nerves and muscles or affect other biological processes.

Fractal Antenna#

A fractal antenna is an antenna that uses a fractal, self-similar design to maximize the effective length, or increase the perimeter (on inside sections or the outer structure), of material that can receive or transmit electromagnetic radiation within a given total surface area or volume.

To create the fractals you can use a free online fractal generator:

I used a vinyl cutter with copper for the first antenna, and two versions of the tree fractal antenna where done with an embroidery machine on denim. The first uses silver conductive thread and the second (which produces the best results) uses copper. The illustrator files can be downloaded from the Files section along with the Fritzing documentation.


Programming Attiny85#

I followed this Tiny AVR Programmer Hookup Guide, which has all the steps and drivers that need to be downloaded in order to use the AVR programmer for the Attiny. I also found it useful to take a look at the Attiny85 Datasheet.

PCB Custom Board#


/* ATtiny-based EMF detector with
 * visual, sonic and haptic feedback
 * Etextiles SummerCamp workshop
 * June 2016

#define NUMREADINGS 25 // raise this number to increase data smoothing

int senseLimit = 200; // raise this number to decrease sensitivity (up to 1023 max)
int coil = A1; // coil antenna connected to analog pin A1
int val = 0; // value reading from the coil

int audioOut = 0; // 8-Ohm speaker or female mini-jack connected to digital pin 0
int led = 4; // led connected to digital pin 4
int vibe = 3; // vibration motor connected to digital pin 3 - through an IRL3103 hexfet mosfet

// variables for smoothing the antenna's readings
int readings[NUMREADINGS];                // the readings from the coil
int index = 0;                            // the index of the current reading
int total = 0;                            // the running total
int average = 0;                          // final average of the coil reading

void setup() {

  pinMode(led, OUTPUT); // initialize led as an output
  pinMode(vibe, OUTPUT); // initialize vibration motor as an output
  pinMode(audioOut, OUTPUT); // initialize speaker or mini-jack as an output

  for (int i = 0; i < NUMREADINGS; i++){
    readings[i] = 0;                      // initialize all the readings to 0


void loop() {

 val = analogRead(coil);  // take a reading from the coil antenna

  if(val >= 1){                // if the reading isn't zero, proceed

    val = constrain(val, 1, senseLimit);  // turn any reading higher than the senseLimit value into the senseLimit value
    val = map(val, 1, senseLimit, 1, 1023);  // remap the constrained value within a 1 to 1023 range

    total -= readings[index];               // subtract the last reading
    readings[index] = val;                  // read from the coil
    total += readings[index];               // add the reading to the total
    index = (index + 1);                    // advance to the next index

    if (index >= NUMREADINGS)               // if we're at the end of the array...
      index = 0;                            // ...wrap around to the beginning

    average = total / NUMREADINGS;          // calculate the average
    int freq = map(average, 0, 1023, 60, 8800); // map the average reading in frequencies from 60-8800Hz
    int dur = map(freq, 60, 8800, 2, 50); // map the freq to control the frequency duration (millis)

    beep(audioOut, freq, dur); // call the sound producing function
    fade(); // call light effect function
    vibrate(); // call the sound producing function


// the light effect function
void fade () {
  if (average > 50) { //play around with this number
  int brightness = map(average, 0, 1023, 255, 0); // map average in PWM scale to control the led's brightness
  analogWrite(led, brightness); // fade the LED accordingly
  else {
  digitalWrite(led, LOW);

// the vibrate function
void vibrate () {
if (average > 50) { //play around with this number
  int vibration = map(average, 700, 1023, 50, 0); // map average in PWM scale to control the vibration's intensity
  analogWrite(vibe, vibration); // vibrate the motor accordingly
  else {
  digitalWrite(vibe, LOW);

// the sound producing function
void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)
{  // http://web.media.mit.edu/~leah/LilyPad/07_sound_code.html
          int x;   
          long delayAmount = (long)(1000000/frequencyInHertz);
          long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
          for (x=0;x<loopTime;x++)   


Spider EMF Detector from Catherine Euale on Vimeo.


1. Speaker#

Speaker: Fritzing
Speaker PCB Milling Files
The circuit, code and PCB board illustrator files, are available for download Here.

2. EMF + PCB#

EMF Fritzing
EMF PCB Milling Files
The circuit, code and PCB board illustrator files, are available for download Here.