Skip to content

12. Skin Electronics

Research & References

A picture of a robot, a chest and a hand with credits Steve Park Research Group

Electronic skin, also called e-skin, is a soft and stretchy electronic material that can be worn on the human body like a second skin. It is designed to mimic the properties of human skin and can be used to monitor various physiological and environmental parameters such as body temperature, blood pressure, and humidity. Electronic skins are typically made from a combination of flexible and stretchable materials such as polymers & elastomers and are integrated with sensors and electronic components that can detect & transmit signals wirelessly. Some e-skin materials also incorporate nanotechnology, such as carbon nanotubes, to improve their conductivity and sensitivity. The e-skin has applications ranging from healthcare and medical monitoring to exercise and fitness tracking.

E-Skins creates a new user interface that replaces the existing body-worn wearable devices to control external electronic gadgets. It can also integrate with multiple sensors that provide various opportunities in applications like security, robotics, and consumer electronics. As E-Skins are fabricated by layering an active nanomaterial that can attach to humans, they are among the major products that can be used for robots and prosthetics.

Several significant innovations have been made, and several more are in development, making breakthroughs in the field. These technological developments are rapidly moving towards flexibility, energy consumption, energy generation, renewable, self-healing, comfort, and sustainability. For each wearable industry, the concepts of electronic skin are different.

A picture of the advances cronologicaly on electronic skin with credits Ingenious Brain

The fabrication of e-skin involves complex processes to ensure the seamless integration of sensors and electronic components into flexible, stretchable substrates. Techniques such as microfabrication and nanotechnologies are employed to manufacture high-resolution sensor arrays that can be embedded within e-skin.

Overview of the main approaches for the creation of e-skins.

A picture of the main approaches fot the creation of e-skins with credits ELSEVIER

Wearable bioelectronics is a multidisciplinary concept that combines electronics with biological systems. A bioelectronic device can convert biological signals, such as physical, physiological, and metabolic biomarkers, into measurable electrical signals. Wearable bioelectronics does not require clinical experts and specialized laboratory equipment, demonstrating the significant potential for health monitoring in a convenient and non/minimally invasive manner.

Some potential developments in the emerging applications of electronic skins include:

- Robotics: Electronic skins could be used to create more human-like robots that can sense and react to their environment in real time. This is particularly useful in applications such as search and rescue, where robots can be deployed in hazardous environments to locate and rescue people.
- Health: E-skin can be used to monitor a patient’s health in real-time, providing doctors with important information about the patient’s vital signs and overall health. This could lead to more personalized and effective treatments for various medical conditions.
- Wearables: E-skins can be used to create more comfortable and natural wearables than current wearable technology. For example, electronic skin could be integrated into clothing to monitor a person’s posture, detect falls, and even measure their stress level.

Recent commercial developments towards Electronic Skins:

A picture of the recent commercial developers towards e-skin with credits Ingenious Brain

E-skin technologies should exhibit at least a subset of features among certain critical requirements: flexibility, stretchability, self-healing, and high sensitivity. These attributes are essential for ensuring that e-skin can conform to complex surfaces and endure the mechanical stresses associated with human and robotic movements. E-skin must be designed to adhere to irregularly shaped surfaces. E-Skin can adhere seamlessly to human skin or within the body are highly desirable for applications such as health monitoring, medical treatment, medical implants5 and biological studies, and for technologies that include human–machine interfaces, soft robotics and augmented reality.

E-skin technologies are poised to reshape numerous sectors, offering new possibilities through their thin, flexible, and highly sensitive interfaces. By integrating advanced transducer mechanisms and edge artificial intelligence computing, these interfaces not only enhance the quality of services and products but also promote greater user interaction and real-time data processing. Prosthetic and rehabilitation devices equipped with human-machine interfaces can improve the lives of people with disabilities, enabling them to interact more naturally with their environment. Furthermore, recent studies and advanced sensors have achieved sensitivity and accuracy levels not only comparable to human tactile receptors but even superior, enabling unprecedented touch perception and interaction.

E-skin can be broadly categorized into two types, depending on their applications:

(a) Artificial E-skins for robotics and prosthetics, which can replicate the functions of human skin
(b) Biomedical E-skins for real-time collection and analysis of physiological data for diagnosing and providing timely therapeutic interventions.

I also took a look to:

* [Julija Karas - Fab Lab BCN](https://class.textile-academy.org/2024/julija-karas/assignments/week12/)
* [Loes Bogers](https://class.textile-academy.org/2020/loes.bogers/assignments/week13/) 
* [Nature](https://www.nature.com/articles/nature25494)
* [Kobakant](https://www.kobakant.at/DIY/)

Application

Electronics is something I do not domain, and sometimes the logic for it is difficult for me to comprehense. My first approached was on the lecture doing the matrix. For my surprise I was able to assembled it and to make it run on the arduino and fuction correctly.

A graphic of the matrix A picture of the matrix A picture of the graphic of the matrix

My second attempt was with the Xiao. And I wanted to try to light up a led thinking on using it on the skin. At first I looked for a Sketch of the Xiao-ESP32-C3, because I did not remember how I had to connect it, with it I was able to connected all the circuit. Once I had it all arranged I connected the Xiao to the computer, but when I tried it on, the code did not run. There was a problem with the Xiao configuration, but with the help of Luis Hernández, at the FabLab I manage to solved it. It worked!

A scketch of the Xiao-ESP32-C3 to connect the circuit correctly A picture of lighthening the led using the Xiao

Once I had fixed the Xiao connection, I though of my skin electonics proyect. I did not want to make the same matrix as the one made on the lecture. I wanted to have some leds and a matrix but only with 4 points of interaction with velostat.

2x2 Matrix E-Textile Pressure Sensor (Skin Electronic)

Materials

. Xiao ESP32-C3
. Copper tape
. Velostat
. Adhesive plastic
. Leds
. Cables
. Caimans
. Computer

Conceptual design

The project consists in creating a pressure-sensitive matrix using copper tape (conductors) and Velostat (piezoresistive material).

•   Structure: A "sandwich" where two vertical copper strips and two horizontal copper strips cross, with Velostat pieces in the intersections.

•   Function: When pressure is applied, the Velostat's resistance decreases, allowing current to flow. The XIAO ESP32-C3 detects this change and triggers LilyPad LEDs.

Hardware Connections

Since we are using the XIAO ESP32-C3, we must use the specific GPIO (General Purpose Input/Output) numbers in the code.

A table specifying how to connect the Xiao

I tried it sendind the code to the com puter and uploading it, but it did not work. Gemini help me gving some solutions given the results. Here are some of the solutions provided:

•   The matrix columns needs a resistor connected to GND to prevent electrical noise (floating pins). I used a 10k omhs
•   To avoid short circuits, the vertical and horizontal copper tapes must only "touch" through the Velostat. I noticed I forgot that the velostat has to make contact in both sides on the vertical and the horizontal lines up and down. 
•   The LilyPad LEDs can be connected directly to the XIAO pins because they operate at 3.3V, which is safe for the ESP32-C3.

Final Debugging Code

C++
const int fila1 = 2;   
const int col1 = 4;    
const int led1 = 20;   
const int led2 = 21;   

void setup() {
  Serial.begin(115200);
  while (!Serial) { delay(10); } // Wait for Serial Monitor to connect

  pinMode(fila1, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);

  Serial.println(">>> SKIN ELECTRONIC: ONLINE <<<");
}

void loop() {
  digitalWrite(fila1, HIGH);
  delay(10); 

  int valor = analogRead(col1);

  // Print real value to calibrate sensitivity
  Serial.print("Sensor Value: ");
  Serial.println(valor);

  // If value goes above 300 (adjust this threshold as needed)
  if (valor > 300) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    Serial.println("¡PRESSURE DETECTED!");
  } else {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
  }

  digitalWrite(fila1, LOW);
  delay(100); 
}

It did not work! I couldn't make it run. The code is correct because it did uploaded and the baud as well

A picture of the code uploaded A picture of the correct baud

Fabrication files

First attempt Second attempt

Troubleshooting Errors

•   "D0 not declared": We fixed this by using the specific GPIO numbers (2, 3, 20, 21).
•   "OpenOCD / GDB Server Error": We identified this as an Arduino IDE 2.x bug. It can be ignored as long as the code says "Uploaded".
•   "Access Denied / Port Busy": This happens when the Serial Monitor is open while trying to upload. Solution: Close the Serial Monitor, unplug/replat the USB, and upload again.
•   "ESP-ROM message": This indicates the chip restarted. We suggested lowering the umbral (threshold) and checking the GND connection of the resistors.

I remake the matrix and I realized that my velostat was not correctly located and it did not made contact, so I made it all again and used the multimeter to see if there was current or not. It has current so I tried it again, but again it did not work.

Then I tried doing it with the Lilypad, but even though I tried it several times I could not get to work. Something was wrong and finally I found out that the cable had a problem sending the synal to the computer.

New Approach.

After having tried it for many times, I decided to achieve a new code of experimentation. The goal was to be able to light up a led when ever I touch my palm of my hand with my finger.

This was a different approach from the other ones and a new input and output. I thought of making a circuit that whenever I touched with my finger a copper tape a led will light up. So, I started by placing the copper tape on my hand and connecting my finger to the GND, my palm to Pin 2. The +Anode of the LED to Pin13 and the -Anode to the GND of the Arduino.

Connection Scheme:

|Component | Arduino Connection | Position on Hand | | :--- | :--- | :--- | :--- |

| Copper Tape A | GND | On the fingertip (this tape "loads" your finger with ground). |

| Copper Tape B | Digital Pin 2 | On the palm (where the tip touches when bent). |

| LED (+) Anode | Digital Pin 13 | On the wrist (the long leg of the LED). |

| LED (-) Anode | GND | On the wrist (the short leg of the LED). |

Tools

  • 1 Microcontroller (Arduino UNO)
  • I LED
  • 2 Copper Tape Contacts
  • 2 wires

A picture of my hand with the copper tape and the led connected to the wires and the Arduino

As Chat GTP said, the code (optimized with Internal Pull-up) by using INPUT_PULLUP as the best method because it uses the Arduino's internal resistor, preventing "electrical noise" and making the circuit much simpler.

Here is a video of the circuit working.

Code

C++ const int switchPin = 2; // Copper tape on palm const int ledPin = 13; // LED on wrist

void setup() { // Use INTERNAL PULLUP to avoid needing external resistors pinMode(switchPin, INPUT_PULLUP); pinMode(ledPin, OUTPUT);
}

void loop() { // With PULLUP, the pin reads LOW when you touch GND int isTouching = digitalRead(switchPin);

if (isTouching == LOW) { digitalWrite(ledPin, HIGH); // LED turns ON when touching } else { digitalWrite(ledPin, LOW); // LED turns OFF when released } }

I know is a simple approach but I am glad that it finally worked.

Fabrication file

Final Skin-electronics approach