Introduction: Color-Changing Fabric With Conductive Thread

About: I'm a PhD student at UC Berkeley at the School of Information. I explore different physical ways of interacting with data and different kinds of stories or meanings we can make from data.

How to make fabric that changes color with conductive thread.

For the shirts in the video I wanted to make something very simple, plain, and gray, using screenprinting on a t-shirt, but you can really do a lot with this kind of thing. Some examples:

Laura (Instructables, project website) and I commissioned some weaves by the Angry Spinner. I did the lace crochet pieces in this video.

Cindy Guo got in touch with me about this project and went on to make a beautiful color-changing reproduction of traditional Chinese embroidery.

The color changing comes from thermochromic pigments that gradually change color in response to temperature. Purchased from:

The pigments can be mixed with different mediums like acrylic medium, screenprinting medium, etc, and then used for screenprinting or coating yarns.

The pigment-coated fabric will change color in response to temperature.

Using conductive threads, sending electricity through the conductive threads generates some electrical resistance, which generates heat, which makes the color change.

The conductive threads can be connected up to a battery or even a small computer like Arduino to make the color change!

Step 1: Materials & Tools

  • thermochromic pigment, I bought mine here
  • screen printing
    • tools
      • screen printing frame
      • screen printing paint spreader
      • little pallet, spatula, or paint stick for applying ink to the screen printing frame
    • materials
      • screen printing medium
      • screen printing ink, white (or choose your own color)
      • vinyl sticker material, or masking tape for making a stencil on the screen printing frame
      • shirt or other fabric to screen print on
      • newspaper or other material to cover / protect the working surface
  • fabric / sewing
    • tools
      • fabric scissors
      • needle
      • iron, plus ironing board or a folded up towel on a regular table
    • materials
      • thread
      • iron-on interfacing
      • scrap fabric for the under layer of the shirt
  • electronic
    • tools
      • soldering setup: soldering iron, solder, safety glasses, third hand, sponge, fan or ventilation
      • wire cutters
      • wire strippers
    • materials
  • miscellaneous supplies
    • hot glue gun and hot glue sticks
    • scissors

Step 2: Make the Thermochromic Screenprinting Ink

In a separate container, mix together some of the thermochromic pigment powder and Golden silkscreen medium. I used about 1 part pigment to 5 parts screenprinting ink. You can adjust the recipe to your liking.

Step 3: Screenprint the Fabric

Now that you have the thermochromic screenprinting ink, you can screenprint the fabric just as you would any other screenprinting project. This was my first time screenprinting so I relied on Instructables! Here is an Instructables I found with a lot more detail on screenprinting.

Choosing a pattern for screenprinting

I used Adobe Illustrator to make a design of small rectangles, and then cut it out on the vinyl cutter to make a big sticker that I could put over the screen frame. Another method could be to just put masking tape over the screen frame in the shape of a pattern, or use Mod Podge instead of masking tape. Whatever "holes" are remaining in the masking tape, that is where the screenprinting ink will come through to your fabric.

Two layers of screenprinting

I screenprinted two layers right on top of each other. The bottom layer (screenprinted first) is using white screenprint ink. Then I let that dry, then on top of that I screenprinted with the thermochromic (in my case black) screenprinting ink. When the black thermochromic pattern gets warmer, it fades to transparent and reveals the white pattern underneath, creating a nice color contrast.

Lining up the two layers of screenprinting was kind of tricky, but in my case it led to a nice color contrast. You could also use thermochromic pigments that fade between two different colors instead of fading to transparent, or just let the color fade to transparent and reveal the color of the shirt underneath.

Step 4: Heating Patch for the Fabric

Behind the screenprint pattern on the fabric we will add a "heating element" patch made using conductive thread. By heating this little patch, we can make the threads change color.

Sewing the patch

Taking a scrap piece of fabric about the same size as your screenprinted pattern, sew some conductive thread into it. Don't cross the threads over one another. You can make a pattern or just some rows. Leave about 6 inches of both ends of thread hanging out of this patch of fabric. Here is an Instructables with a lot more detail on how to sew.

WARNING: Finding the right conductive thread is actually my biggest concern for this project. When I did this project, I got one cone of conductive thread from a company, it was like an earlier iteration of something they were still developing... that thread is not for sale anywhere. Most conductive threads try to have low resistance so they make good "wires." But for this purpose you really want conductive thread with a little bit of resistance, so that, when you send current through it, it generates heat. This is why I have been so hesitant to post this Instructable, it feels almost unfair to share a project I did using materials where I can't easily point you to vendors where you can buy the right stuff. Kobakant has a page on conductive threads that also lists their resistance, and a page on conductive yarns. I wonder if a workaround could be, using regular (hard) circuit resistors and soldering them to conductive thread to attach them to the shirt?

Connecting to the conductive threads

Next we need to connect the conductive threads to the electronics stuff we're going to make. There are so many techniques for how to connect conductive threads to electronics, and a lot of it depends on your specific conductive thread. Kobakant has a page on this too:

My technique is: Cut two long pieces of stranded wire, about 3 feet. Strip the ends of the wires. Solder a thread to each wire. I like to do this by twisting the end of the thread with the stripped wire like it's a twisty tie before soldering. After soldering, I usually cover the connection with hot glue and electrical tape to secure it.

Now we have the threads connected to wires that we can use in our electronics. For the other end of the wires, I'd suggest soldering them to female header pins, and then adding hot glue and electrical tape to secure it. Then, we can use the male to male jumper wires to plug into them easily.

Ironing the heating patch onto the main piece of fabric

Cut out two pieces of iron on fusible interfacing that are the same size as your heating patch. Cut out another piece of scrap fabric the same size as the heating patch. Stack the fabrics like so, from top to bottom, lining up with the screenprint pattern

- top: scrap fabric piece (this will be the inner lining of the shirt)

- fusible interfacing

- middle: heating patch

- fusible interfacing

- bottom: screenprinted t-shirt, screenprint side down (you may need to turn the shirt inside out)

Make sure the conductive thread ends are still sticking out leading to the wires.

Iron it all together. Follow the instructions for the fusible interfacing for how hot the iron should be and how long to iron it for.

Careful not to iron over the wires, as it can melt their plastic coating.

Step 5: The Circuit

Copy the circuit here. You can use an LED for testing, and then swap it out for the wires coming from the heating patch we made in the previous step with the conductive threads.

At a high level, what this circuit is doing is, the battery's positive end is always connected to the conductive threads, then out from the other side of the conductive threads goes to the collector on the transistor. The transistor is like a gate. When the gate is closed, no power can come through from the battery, so the LED is off / the conductive threads get no power and make no heat. When the gate is open, power flows through from the battery through the conductive threads through the transistor (in the collector pin, out the emitter pin) to ground, and the LED is on / the conductive threads get power and make some heat. The way we make the transistor gate open and close is, using the "base" pin which is like the controller. This is hooked up to an Arduino output pin so we can tell the transistor gate to be open or closed and thus control the flow of power through the conductive threads. Here is some more explanation on transistors from Adafruit.

Step 6: (Optional) Project Box

I like to put my electronics all in a box to keep them from getting jumbled.

I designed this box in Adobe Illustrator, cut it out using a laser cutter in wood, then glued it together. I put some holed in the top and sides for wires to come out as needed.

But you could also just use a cardboard box or a plastic container or whatever.

Step 7: (Optional) Arduino Code

Using Arduino to control the threads is optional. Without Arduino, probably the simplest ways to make the threads change color would be to manually connect them directly to a DC power source such as a battery or a DC power supply. Make sure to unplug it before the threads get too hot! Also, you'll need a battery that is able to provide enough current such as a LiPO 2500mAh.

Without Arduino, another simple way to control the threads could be setting up a circuit with a switch to turn the current flow to the threads on or off, or a potentiometer to control how much current can get through.

With Arduino, the sketch shown below is SUPER simple, but with other Arduino sketches you can control the threads in a variety of ways. For example, you could turn the threads on and off over time in a pattern that matches a pre-existing data file. Or, you could make the threads turn on and off in response to data from another sensor hooked up to the Arduino. Or, if you connected the Arduino to the internet, you could make the threads turn on and off in response to data APIs such as the temperature levels in another city.

Load this sketch on the Arduino

const int transistorPin = 10;    // connected to the base of the transistor
void setup() {
  // set  the transistor pin as output:
  pinMode(transistorPin, OUTPUT);

void loop() {
  // HIGH = gate open = current goes through
  // LOW = gate closed = current does not go through
  digitalWrite(transistorPin, HIGH);

This will ALWAYS let current go through the conductive threads. If you change the code to send LOW to the transistor, it will not send any power to the conductive threads.

You can learn more about the circuit, the code, and how to go further with this kind of thing at this tutorial by ITP Physical Computing. Instead of an LED or conductive threads, they use a motor or a lamp. The idea the same for anything we want to send a lot of current through. Instead of a battery, they use a connector to a DC power supply.

At the ITP Physical Computing tutorial they also take this code a bit further with some other good features, like adding a pot (aka knob, potentiometer) for controlling how much current to let pass through the gate.

Step 8: Connecting It All and Testing

Keep your computer connected to your Arduino so you can modify the code to turn the current on or off. You have to re-upload the code every time you change it for it to take effect.

Connect up the conductive threads and the battery in your circuit. Let the power go through the threads. They should start to feel warm. If they start to feel *too* warm, unplug the battery!

After a few minutes if the conductive threads get warm enough, the heat from them will make the thermochromic screenprint change colors!

In the white t shirt with the black square, you can see how the lines of conductive thread make it change color along those lines. Sewing the conductive thread in a different pattern would make a different color-changing pattern on the black square.

In the dark gray shirt with the white rectangles, only the middle row is thermochromic, changing from dark gray in one picture to white in the next picture.

Next steps

More portable electronics - More lightweight and wearable than a box with the breadboard would be transferring the circuit to a perfboard and use Arduino Pro Mini or another smaller board, or transferring the circuit to a PCB.

More interactivity - You can make the threads change in response to a potentiometer, a button, or whatever data stream you can hook up the Arduino to. I did a project where I made the threads change color in response to data from a skin conductance sensor. Project Page, Bitalino Skin Conductance Sensor, Project Github

More fabric designs - Instead of screenprinting, there are also other ways to apply the thermochromic pigment to the fabric. In another project I mixed the pigment with clear acrylic medium and used it to coat threads. Then I used the threads for embroidery, weaving, and crochet.