Skip to content

12. Skin Electronics

Prototype

Sparkles, Sizzles, and Smarts!

It’s the grand finale of Fabrication Week the last hurrah before we move on from lasers and layers to sensors and sparkles. This time, the project was all about Skin Electronics turning conductive materials and LEDs into wearable magic. With my partner in crime, Rawan, we plunged into an adventure full of glitches, "aha!" moments, and shiny surprises.

Brace yourself for a story of gold, crystals, and circuits told with laughter, mistakes, and a healthy dose of caffeine!

Research: Skin Electronics

This week, I explored the fascinating world of skin electronics and their integration into wearable designs. These technologies have revolutionary potential for healthcare, interactive fashion, and IoT systems.

Monitoring Health with Breathable Electronic Skin | Takao Someya

Explore how Takao Someya's research is pushing the boundaries of wearable tech with breathable electronic skin for real-time health monitoring.

Introduction to Skin Electronics and Its Applications

This video breaks down the fundamental concepts of skin electronics and their diverse applications in wearables, sensors, and health monitoring devices.


Phase 1: Research The “Will It Conduct?” Show

We kicked things off with a multimeter and some seriously weird ideas. Our mission? To figure out what could conduct electricity of conductive Ink.

Materials Used

  • Carbon powder
  • Glue
  • Vinegar
  • Water
  • Gold leaf
  • Charcoal
  • Glycerin

🔌 The Results Are In!

Material Conductivity Rating Verdict
Charcoal + glue 0.5 Ω "You’re hired!"
Gold leaf 0.2 Ω "Luxury AND function welcome aboard!"
Vinegar + glycerin 10 Ω "Uh, no. Try harder next time."
Plain glue Infinite Ω "Literally does nothing. Bye!"

Charcol

Plot Twist

  • Gold leaf not only worked best but looked incredibly bougie. We knew it had to be in the final design.

Phase 2: Inspiration Cue the Brainstorm Storm!

💡 I had my heart set on a crystal encrusted RGB earpiece with temperature sensitive LEDs.

Inspo

💡 also Rawan wanted a continuous face line with embedded LEDs and crystals the stuff of futuristic fashion shoots.

🚨 Eureka Moment!
Why not connect these designs into a dynamic duo? A shared temperature sensor circuit would be the perfect bridge!


Phase 3: Prototyping AKA, My Glorious Mess Phase

Welcome to the land of trials, errors, and tiny tools scattered everywhere.


Experimenting Where Dreams Meet Reality (and Reality Wins)

Before we dove into the deep end, we had to decide our stars to figure out what work best for us :

  • Xiao Board Messy but effective
  • Temprature Sensor A love hate relationship
  • Crystals The journey to make PLA look like diamonds.

Making the Circuit The Brain Behind the Bling

01 Circuit Design: Layered Genius

Building this circuit was like assembling a lasagna deliciously layered, perfectly functional, and electrifyingly awesome

Circuit Design

1️⃣ Base Layer:
The stage where all the action happens. Non-conductive, sturdy, and ready to host the drama.

2️⃣ Positive Vibes Only:
Laid the positive wire like a roadmap to fabulousness. Without it, there’s no spark literally.

3️⃣ Array Magic:
Connected the bling squad (arrays) to the positive. Like tiny disco balls, they were ready to shine.

4️⃣ Insulation: Keep It Together:
Smoothed on an insulating layer to keep the chaos out and the sparkle safe. It’s the duct tape of the circuit world.

5️⃣ Negative Energy, But Make It Cool:
Finished with the negative wire the yin to the positive’s yang. It brought balance, power, and a touch of mystery.

The result? A circuit that’s as smart as it is shiny.Bling on!

02 Prototyping: Wrapping It All Together

Prototyping wasn’t about fancy soldering it was about getting hands on, wrapping wires, and shaping the dream into reality.

Prototype

Here's how it went:

1️⃣ Ear It Is:
I shaped the circuit into an earpiece because why not wear my brilliance? The design featured line arrays to give it that futuristic, tech-chic vibe.

2️⃣ Layered Brilliance:
First, I wired the positive layer, then added sketch tape for isolation. Finally, I wrapped the wires for the negative layer keeping everything neat and functional.

3️⃣ Jumper Magic:
I connected it all with jumper wires and a battery to complete the circuit. Voila! The LEDs were ready to glow.

4️⃣ Test the Glow:
Plugged it in, crossed my fingers, and watched the micro RGB LEDs light up. Boom working brilliance, in ear form!

It wasn’t just a prototype; it was a wearable tech success story. 🎧✨

Tools

 - **Sketch Tape**: Used for isolating negative and positive circuit paths.
 - **Solder Wires**: Essential for making reliable electrical connections.
 - **Micro RGB LEDs**: A key visual component for creating lighting effects in the prototype.
 - **Jumper Wires**: Useful for connecting components easily with battery.
 - **Battery**: Provided the necessary power for operation.
Pro Tip
  • Double check connections. I didnt isolate it enough and wondered why the circuit wasn’t working (oops).

Phase 4: Making the 3D Printed Crystals

This was where the magic of Cura slicer and Ultimaker S5 wizardry came into play.

🖨 Crystal Printing Settings:

Setting Value Why It’s Awesome
Material PLA (Blue/White Transparent) Makes LEDs look like diamonds.
Layer Height 0.1 mm Smooth but not slow.
Infill 15% Lightweight brilliance.
Build Plate Adhesion Brim Keeps those tiny parts from flying away.
Print Speed 70 mm/s Balance of speed and precision.

Prototype


Phase 5: Coding Turning Science Into Sparkles

We designed a temperature sensitive circuit to make LEDs shine brighter as things heat up.

Prototype

first attempt

The magic words (a.k.a. code) that made it all happen:

#define TEMP_PIN 2       // Analog pin for the thermistor
#define LED_PIN 7        // PWM pin for the LED (must support analogWrite)

void setup() {
  Serial.begin(115200);   
  pinMode(LED_PIN, OUTPUT); 
}

void loop() {
  int sensorValue = analogRead(TEMP_PIN);
  float voltage = sensorValue * (3.3 / 4095.0);
  float temperature = (voltage - 0.5) * 26.3;

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" C");

  if (temperature >= 30) {
    fadeLED(); 
  } else {
    analogWrite(LED_PIN, 0); 
  }

  delay(1000);  
}

void fadeLED() {
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(LED_PIN, brightness);
    delay(10);
  }
  delay(1000);
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(LED_PIN, brightness);
    delay(10);
  }
}
Prototype

🛠️ Explanation - Serial Communication

Serial.begin(115200);
This enables debugging communication with the Arduino Serial Monitor.


Pin Mode for LED cpp pinMode(LED_PIN, OUTPUT);

🔄 2. Main Loop Logic

The loop() function keeps repeating itself during operation. Here we monitor sensor data, process that input, and control the LED effect.

void loop() {
   int sensorValue = analogRead(TEMP_PIN);               // Read analog data from the temperature sensor
   float voltage = sensorValue * (3.3 / 4095.0);        // Map analog reading to voltage
   float temperature = (voltage - 0.5) * 26.3;          // Convert voltage to a temperature in °C

   Serial.print("Temperature: ");
   Serial.print(temperature);
   Serial.println(" °C");

   if (temperature >= 30) { 
       fadeLED(); // Trigger LED effect if temperature crosses 30°C
   } else {
       analogWrite(LED_PIN, 0); // Otherwise, ensure the LED is turned off
   }

   delay(1000); // Wait for 1 second before repeating the logic
}

Analog Signal Conversion

Read Sensor Data

int sensorValue = analogRead(TEMP_PIN);
Reads the analog temperature sensor’s signal.

💡 Logic Explained

float voltage = sensorValue * (3.3 / 4095.0);
Maps raw analog values into actual voltage values based on a 3.3V system.

Convert Voltage to Real World Temperature

float temperature = (voltage - 0.5) * 26.3;

Translates voltage into °C temperature using a specific calibration formula.

LED Trigger Logic

if (temperature >= 30) { 
  fadeLED();
} else {
  analogWrite(LED_PIN, 0);
}
Turns on the LED effect if the measured temperature rises to 30°C or higher. Otherwise, it ensures the LED is turned off.

Delay

delay(1000);
Waits for 1 second before running the loop logic again.

💡 3. LED Fading Logic

 The fadeLED() function provides a PWM effect by dynamically adjusting the LED's brightness over time.
void fadeLED() {
  for (int brightness = 0; brightness <= 255; brightness++) { // Fade-in effect
    analogWrite(LED_PIN, brightness);
    delay(10);
  }

  delay(1000); // Wait momentarily at full brightness

  for (int brightness = 255; brightness >= 0; brightness--) { // Fade-out effect
    analogWrite(LED_PIN, brightness);
    delay(10);
  }
}

🚀 Explanation of How it Works

Prototype

Fade In Logic

for (int brightness = 0; brightness <= 255; brightness++) {
  analogWrite(LED_PIN, brightness);
  delay(10);
}
LED brightness smoothly increases from 0 (off) to 255 (full brightness).

Hold at Full Brightness

delay(1000);
Waits for 1 second at full brightness before transitioning to fade-out.

Fade Out Logic

for (int brightness = 255; brightness >= 0; brightness--) {
  analogWrite(LED_PIN, brightness);
  delay(10);
}

LED brightness smoothly decreases back to 0.

⚙️ 4. Variables & Constants To ensure cleaner, easier to read, and modular code, define constants at the top of the program.

const int LED_PIN = 9;         // Pin number connected to the LED
const int TEMP_PIN = A0;       // Analog pin connected to the temperature sensor

🏆 Why Constants Matter Using constants like LED_PIN and TEMP_PIN makes the program easier to debug and reuse. If you ever change a pin's connection, you only need to adjust the constant value rather than hunting through the entire code.

🛠️ 5. Debugging Debugging with serial communication allows real-time feedback during testing.

Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");

✅ Why Use Debugging? Helps validate that sensor readings are correct. Enables troubleshooting faulty logic or unexpected values.

🖥️ 6. Coding Environment Below are key details about the tools and platform used during this coding phase:

Tool/Component Purpose Arduino IDE Code development environment Serial Monitor Debugging tool LED_PIN/analogRead() For controlling LED response

👩‍💻 Coding Fail Moment

  • I forgot a semicolon, and the board just blinked at me in protest.

Phase 6: Final Assembly and Testing

🎯 Final Touches:

Tools

  • Black tape
  • Solder Wires
  • Micro RGB LEDs
  • Sensor
  • Battery
  • Copper Wires
  • Ressitor
  • Paint
  • Shrink Heats
  • Pliers

Process

  • Wrapped the wires Based on the deisgn.

Prototype

  • Isolated everything double while checking there's no short circuit.

Prototype

  • Attached 3D printed crystals to the earpiece.

Prototype

  • Connected LEDs to the circuit.

Prototype

  • Powered it up, and boom magic!

Prototype

🔌 Circuit Highlights:

  • Microcontroller: Xiao board (teeny tiny but mighty).
  • Connections: Wrapped in heat shrinks because safety first!
  • Testing Tool: Multimeter our best friend and occasional frenemy.

Result

Prototype


Reflections The End of an Era (Cue Tears)

What I Loved:
Seeing a pile of wires, PLA scraps, and sticky gold leaf transform into something elegant and functional.

💥 What Went Wrong:
LEDs that wouldn’t light, PLA that melted mid print, and a million "WHY?!" moments.

🎉 What I’ll Never Forget:
The moment everything came together and lit up beautifully a literal light bulb moment to end Fabrication Week.


Goodbye, fabrication it’s been a wild, messy, and magical ride. On to the next adventure!

Fabrication files


  1. File: Crystal1 

  2. File: Crystal2