Skip to content

12. Skin Electronics

This week’s focus was on exploring wearable electronics that integrate directly with the skin. Inspired by projects like LED Henna Tattoos, Amrita Kulkarni’s work (2015), L’Oreal My UV Patch (2015), BioStamp Research Connect™, MC10 (2015), and conductive makeup.

I wanted to create something sci-fi-inspired, combining aesthetics and technology in a seamless way. However, I realized the complexity of such projects and decided to start smaller yet impactful.

I envisioned an interactive sticker that would respond to music, but due to the lack of a sound sensor, I shifted to designing a face sticker with pulsing and color-transitioning LEDs controlled by a Xiao ESP32-C3 microcontroller. My goal was to combine aesthetic appeal with functionality in a lightweight and wearable form.

Research

Articles and Projects

Energy Harvesting from Human Body Naomi Kizhner’s Energy Addicts explores speculative jewelry concepts that generate electricity from body movements. This influenced my thinking about lightweight, wearable energy systems. Read more.

Liquid Electronics Research on liquid metal circuits for wearables demonstrated innovative approaches to flexible electronics. Read more.

Skin Tattoos as Electronics Tech Tats by Chaotic Moon introduced the idea of temporary tattoo circuits. These tattoos are designed for applications like health monitoring. Read more.

Haptic Feedback and VR Integration Artificial skin with embedded electronics for haptic feedback in VR inspired ideas for enhancing interaction with wearables. Read more.

get inspired!

Check out and research alumni pages to betetr understand how to document and get inspired

References & Inspiration

Skintillates Temporary Tattoos

Flexible, lightweight circuits integrated into temporary tattoos inspired the practical aspects of skin-safe wearables. Read more.

Neon Cowboys LED Face Jewelry

These face-integrated LED designs guided the aesthetic direction of my project.

Fiber Optic Makeup

A combination of LEDs and wearables applied to facial accessories inspired my choice of location for the design. Read more.

Tools

Process and workflow

Step 1: Soldering the LEDs

I started by soldering individual SMD LEDs to form a flexible strip. This process was challenging due to their tiny size and my large soldering iron head. I burned several LEDs before refining my technique with precise soldering and using tweezers for placement.

Step 2: Circuit Testing

After soldering, I connected the LED strip to a battery for testing. Initially, only 1-2 LEDs lit up due to inadequate power. Switching to a 3.7V Li-ion battery provided sufficient current to power the entire strip.

Step 3: Programming the Xiao ESP32-C3

I tried testing the Xiao to see if it would work but i had issues with it, first I couldn't use Arduino IDE on my own laptop, the extention needed refused to set up so i had to use the other students, second when tring to upload the code to xiao it wouldn't work as the usb cable wasn't connecting and I only had one.

I first tested the Xiao with a few LED:

Code Example

// Define the LED pins
const int ledPinD1 = 1;  // D1 corresponds to GPIO1 on the ESP32-C3
const int ledPinD2 = 2;  // D2 corresponds to GPIO2 on the ESP32-C3

void setup() {
  // Initialize both LED pins as outputs
  pinMode(ledPinD1, OUTPUT);
  pinMode(ledPinD2, OUTPUT);

  // Ensure both LEDs start off
  digitalWrite(ledPinD1, LOW);
  digitalWrite(ledPinD2, LOW);
}

void loop() {
  // Turn LED on D1 on and LED on D2 off
  digitalWrite(ledPinD1, HIGH);
  digitalWrite(ledPinD2, LOW);
  delay(10000); // Wait for 5 seconds

  // Turn LED on D1 off and LED on D2 on
  digitalWrite(ledPinD1, LOW);
  digitalWrite(ledPinD2, HIGH);
  delay(10000); // Wait for 5 seconds
}

Step 4: Putting all the things together

SKETCH:

CODE:

for my actual design Using Arduino IDE, I wrote programs to achieve the following effects:

Pulsing Lights: LEDs fade in and out at different intervals. Color Transitions: Smoothly shift through the RGB spectrum.

#include <FastLED.h>

#define NUM_LEDS 5   // Number of LEDs
#define DATA_PIN 2   // Pin connected to LEDs

CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<WS2812, DATA_PIN, GRB>(leds, NUM_LEDS);
}

void loop() {
  // Pulsing effect
  for (int brightness = 0; brightness <= 255; brightness += 5) {
    leds[0] = CRGB(brightness, 0, 0);   // Red LED 1
    leds[1] = CRGB(brightness, 0, 0);   // Red LED 2
    leds[2] = CRGB(0, 0, brightness);   // Blue LED
    leds[3] = CRGB(brightness, brightness, brightness); // White LED 1
    leds[4] = CRGB(brightness, brightness, brightness); // White LED 2
    FastLED.show();
    delay(20);
  }

  for (int brightness = 255; brightness >= 0; brightness -= 5) {
    leds[0] = CRGB(brightness, 0, 0);   // Red LED 1
    leds[1] = CRGB(brightness, 0, 0);   // Red LED 2
    leds[2] = CRGB(0, 0, brightness);   // Blue LED
    leds[3] = CRGB(brightness, brightness, brightness); // White LED 1
    leds[4] = CRGB(brightness, brightness, brightness); // White LED 2
    FastLED.show();
    delay(20);
  }

  // Color transition effect (applied to all LEDs)
  for (int hue = 0; hue < 255; hue++) {
    leds[0] = CHSV(hue, 255, 255);  // Red LED 1 cycling colors
    leds[1] = CHSV(hue, 255, 255);  // Red LED 2 cycling colors
    leds[2] = CHSV(hue + 85, 255, 255); // Blue LED cycling shifted hues
    leds[3] = CHSV(hue + 170, 0, 255);  // White LED 1 static brightness
    leds[4] = CHSV(hue + 170, 0, 255);  // White LED 2 static brightness
    FastLED.show();
    delay(30);
  }
}
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

ASSEMBLY:

The assembled LED strip was attached to a skin-safe adhesive backing aka eye lash glue, ensuring flexibility and comfort for wearability. The wires and connections were carefully secured to prevent accidental disconnections during use.

Results

Reflection

Challenges

Soldering: The small size of the LEDs made precise soldering difficult, especially with a large soldering head. Power Issues: The initial power source couldn’t support all LEDs. Microcontroller Setup: Debugging the Xiao ESP32-C3 firmware took longer than anticipated.

What I Learned

Techniques for soldering small components. Basics of power management for wearable electronics. Programming simple animations for LEDs using Arduino.

Future Improvements

Incorporate flexible PCBs to simplify assembly. Explore interactivity with additional sensors (e.g., sound or touch). Reduce the size and weight of the design for increased comfort.