Skip to content

12. Skin Electronics

References & Inspiration

This project was inspired the idea of an accessible health future that allows skin-electronics and e-textile experiments to explore solutions that reduce costs and place healthcare more in the hands of patients, including:

  • DIY Velostat pressure sensors used in community maker spaces

  • Conductive fabric touch switches from open-source wearable electronics tutorials

  • Makey Makey–style skin conductivity demos

  • Open-source strain sensors made from foam and conductive coatings

  • Adafruit’s tutorials on homemade force-sensitive resistors (FSRs)

  • Copper-tape skin contact electrodes created in hacker and e-textile communities

  • Soft robotic pressure pads constructed from layered fabric and Velostat

  • Early DIY EMG/EKG experiments using foil electrodes

  • Temporary tattoo circuits and body-mounted capacitive touch sensors

These DIY real world problem solving based projects informed the development of my own skin-mounted pressure patch, emphasizing accessibility, low-cost materials, rapid prototyping, and body-driven interactivity.

This week I wanted to try to create a pressure sensor that can be used across disciplines from mental health to sleep studies and epilepsy research.

Since my fab lab is at a university, I am hoping to continue to explore this concept with students and professors. A pressure sensor can also be used to gather information for athletics performance as well as spacial needs for plants and animals. Skin electronics in my mind can be developed and deployed across many types of skin surfaces like a dog's paw or a grape on a vine that could use a bit more space. Exploring a pressure sensor allows me to look into all of these avenues in the future.

For this week, I chose the jaw muscle to be the area of the body to test for pressure as it is a space that requires a lot of considerations specifically related to comfort and skin safety. I also expect that it will take quite a bit of iteration to get the sensor just right. I like that these challenges sent with this area of the body as it allows for more research for broader applications in the future.

Tools

Electronics Tools

  • Scissors (for removing jumper wire insulation, cutting conductive fabric, velostat and copper tape)
  • Needle-nose pliers (for bending resistor legs + tightening wire wraps)
  • Laptop with Arduino IDE installed
  • USB cable (micro-USB for Circuit Playground Express)

Fabrication & Prototyping Tools

  • Cutting mat (for safe precision cutting + stable work surface)
  • Clear tape (for temporary holding and securing layers)
  • Ruler/grid surface (helpful for measurement and alignment)
  • Mannequin head (for positioning and testing on a body-like surface)
  • Materials Handling Tools
  • Fingernail pressure (used as a tool to press copper tape and create contacts)
  • Tweezers

Electronic Components Used

  • Microcontroller + Power
  • Adafruit Circuit Playground Express
  • USB power (for prototyping; battery planned for integration)

Skin Circuit Materials

  • Conductive fabric
  • Velostat sheet (used in early sensor attempt)
  • Copper tape (adhesive-backed, for contact pads and wiring points)
  • Cardboard spacer (for mechanical separation of pads in the switch design)

Wires & Connectors

  • Jumper wires (male-to-male originally; ends stripped for direct embedding)
  • Bare copper bundle from inside jumper wires (used for direct contact points)

Electronic Components - 10KΩ resistor (used in first analog prototype attempt) - On-board LED (D13) on CPX for visual alert feedback

Adhesives & Assembly Materials - Clear tape - Double-sided tape (optional; used for securing layers internally)

Process and workflow

My sketches to help me understand the placement of my wires and power sources.

This schematic [^1] was obtained by hand drawing.

This tutorial [^2] was created using tools listed below.

Designing the Sensor

describe what you see in this image

I wanted to ensure that I focused on size, safety, and security when building out this prototype. The entire piece once assembled is about 2x2 inches placed on the skin with the majority of the components placed either in a hair piece or neck piece. The portions of the piece that communicate with the bodyand relay messages from the body are all 100% connected to the skin as much as safety will allow. My goal is to create a device that effectively responds in the ways outlined in it's code and also be safe and secure when placed on the skin. Thing that should be noted:

  • This piece has two copper areas that have been designed and placed specifically to avoid any contact with the skin directly.

  • The masking tape behaves as an insulator, an added security measure, and a safety percaution to further guard the skin.

  • The pouch shape allows for the insertion of the interior copper, and jumper connectors.

Below I show how the pouch is then connected to the "brain" (The circuit playground).

describe what you see in this image

I began by stripping the wires to expose more copper on both sides, then securing those exposed wires to their corrresponding copper pads. (Above)

Next I connected the corresponding wires t their places on the Circuit Playground. Verey simply: White to GRND, purple to A1 and a resistor of 10k attached to both A1 and the 3.3V space on the playground. See below:

describe what you see in this image

Next I opened the Arduino IDE and began testing code (see my code in the example section below. I also tested the placement of the wires on the board based on the hoped foor future placement on a human.

describe what you see in this image

Code Example

This is the inital code that I attempted. I got no respone.

const int sensorPin = A1;
const int ledPin    = 13;


int baseline = 0;
int threshold = 0;


void setup() {
  pinMode(ledPin, OUTPUT);


  Serial.begin(115200);
  while (!Serial) { }


  // --- Calibrate baseline ---
  long sum = 0;
  for (int i = 0; i < 100; i++) {
    sum += analogRead(sensorPin);
    delay(5);
  }
  baseline = sum / 100;
  threshold = baseline + 150;  // adjust sensitivity


  Serial.print("Baseline: ");
  Serial.println(baseline);
  Serial.print("Threshold: ");
  Serial.println(threshold);
}


void loop() {
  int sensorVal = analogRead(sensorPin);


  Serial.println(sensorVal);


  if (sensorVal > threshold) {
    digitalWrite(ledPin, HIGH);   // tiny D13 LED
  } else {
    digitalWrite(ledPin, LOW);
  }


  delay(10);
}
The code above did not go as expected. Unfortunately I kept getting errors because I did not have the correct library added. After adjusting the library and also adjusting the baud rate to see if i can detect any changes at all, I decided to adjust the code.

I tried another code that adjusted the sensing capacity. This one showed me that the Val and Diff are moving but are still not giving me the readout I expect when I press on the sensor.

const int sensorPin = A1;
const int ledPin    = 13;

int baseline = 0;
int delta    = 40;   // sensitivity: smaller = more sensitive

void setup() {
  pinMode(ledPin, OUTPUT);

  Serial.begin(115200);
  while (!Serial) { }

  // --- CALIBRATE BASELINE ---
  long sum = 0;
  for (int i = 0; i < 100; i++) {
    sum += analogRead(sensorPin);
    delay(5);
  }
  baseline = sum / 100;

  Serial.print("Baseline: ");
  Serial.println(baseline);
  Serial.print("Delta threshold: ");
  Serial.println(delta);
}

void loop() {
  int sensorVal = analogRead(sensorPin);
  int diff = sensorVal - baseline;
  if (diff < 0) diff = -diff;   // absolute value

  // See raw reading + difference
  Serial.print("Val: ");
  Serial.print(sensorVal);
  Serial.print("  Diff: ");
  Serial.println(diff);

  // Turn LED on if value changed enough from baseline
  if (diff > delta) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  delay(10);
}

Results

Unfortunately I did not get the outcome that I expected within these first few days of prototyping and look forward to continuing to work on my connections and coding.

Video

I will upload video of the skin attachment once I have ironed out the issues with my unresponsive circuit.