This instructable is reporting experiments and experience with heating pads in wearables. It can be used for warming up or changing color with thermo chromic ink on fabrics.
Just sending energy through a wire with a bit of resistance gives heat. This seems simple, but the situation quickly gets complicated. The problem is not the electronics or the scripting, but to get the right combination of properties, like reistance and energy source. This all depends on the context of your project.
Heating pad's: making a mesh of conductive wires
Conductive materials: materials which conduct current and can be sewn on fabrics
Thermo chromic ink: ink that changes color depending on temperature
heat circuits: circuits which combine low current (for the microcontroller) and high current (for heating) circuits
Lipo batteries: Using more power and wearable power: the art of combining lipo batteries in series
I have included lots of information about conductive materials and chargers/balancers.
Step 1: Circuits
For heating we use two "separated" circuits, one for the microcontroller an one for the heating. These circuit only have a common Ground (GND). The circuit and the code is simple. The complexity is chosing the right heating materials for your specific project.
The reason to separate the circuits is to be able to let the Arduino (or chip) run on its own voltage (5V or even 3V) and to be free to apply a higher voltage to the heating circuit. (This higher voltage can come from several lipo batteries in series.)
Details of the circuits shown in the images: the two potentiometers in the pictures are used to vary the heat-ON time and the heat-OFF time.
These potentiometers are connected to 2 analog PINS. Beside that there is one PIN used like a LED to switch ON or OFF the bigger switching device (TIP122, Relay, Phototriac).
For a quick start you could use the Arduino for both the signalling (switching on and of) and the heating, using the 5V from the USB Port.
I used Attiny13a (the smd "spider" in the middle of the picture) instead of an Arduino, because this Attiny is only 60 cents, and saves me an Arduino of 25 euro’s. The script is small and easy.(Later I also used the ATtiny85, for 1 euro, same PINs as the ATtiny13a, more memory).
C – Script and Arduino script for the Attiny13a or the Arduino can be found here: https://github.com/contrechoc/attiny13a_pulsescri...
This script only uses basic coding. like activating the ADC (analog PIN).
circuit with TIP122
This transistor (Darlington array) can have 5 Amperes. This current limit should be sufficient for our purpose.
circuit with relay
A relay is a switch which operates with a magnet. So the switch is not part of the circuit of the Arduino. Using a (rather bulky) relay has an advantage: a relay can switch whatever you want (220V for instance), even switching on electrical blankets or washing machines (be careful and choose the right relay if you use higher voltage).
circuit with photo triac
A phototriac is a switch using a LED and a LDR inside a small box. The LED is connected to the Arduino (like a normal LED) and the LDR is part of a separated circuit. The current is limited to between .5 to 1.2 Amperes (check the datasheet). When you use a combination of several lipo batteries in parallel, you should not use the photo triac, but the relay or the TIP122.
An additional feedback script
The three circuits above do heating in a periodic way, independent of the temperature that is acquired. If you add a feedback with temperature sensor you could use this script:
Within this script there is a check for the voltage of the lipo on which the microcontroller is running (using the internal voltage check) and a check on the total voltage (using a voltage divider).
Step 2: Microcontrollers
In principle a microcontroller for a heating cuircuit can be small, because the script is simple:
The Arduino is rather big most of the times, in size and in PIN's, depending on your project.
For a heating circuit you need one PIN (for TIP, relay or phototriac). For a feedback with temperature sensor we need another PIN. For on and off indication we need at least one other LED, for temperature setting another PIN.
I have used 1 PIN for voltage control.
So 5 PIN's is sufficient.
I have built heating circuits with a ATtiny13a (60 eurocents), see images for my way to program this chip
ATtiny85 (about 1 euro).
Both ATtiny13 and ATtiny85 have 5 PINS available.
Using theses chips makes the circuit much smaller than using an Arduino board.
Step 3: Theory and Calculations
Law of Ohm: V = I times R
Energy (Joule's) law E = V times I
In my experience, if you just use a conductive wire and apply some voltage to it either nothing happens, or you start a fire…too less or too much energy is applied to the heating pad. To be able to know what happens you need measring and a few formula’s.
The law of Ohm : Voltage equals Current times Resistance or V = I * R
The energy (Joule) law: The Energy generated equals Voltage times Current or E = V * I
These two formula’s can tell us what conductive material to use: you get E = V * V / R, inserting the law of Ohm into the Energy formula.
So when R = 0 or nearly 0, you get infinite or too much energy, called a shortcut, and things will start burning…but if R=1000 and V=5 not much will happen.
You can calculate an example using the 5 Ohms and 5V, that the current is around 1000 mA (law of Ohm) and the energy is around 5 Watt (Watt is the unit of energy). This is a good heating value for a small pad. When you apply less warmth, it takes longer to become hot. What if you happen to have a higher resistance? Say 100 Ohm. Then because the dependance on V is quadratic you just need to increase the voltage to around 20 V to get the same amount of energy generated.
The other way around: say you measure your pad to be 1-2 Ohm, than probably 3V is enough.
Parallel resistance calculation
For parallel resistors there is the inverse adding law.
two resistors parallel: 1/Rtot = 1/R1 + 1/R2 or
total R = R1*R2/(R1 + R2)
1/Rtot = 1/R1 + 1/R2 + ... + 1/Rn
most common: two resistors of R gives one total of half of R: R/2
three of the same value: Rtot = 1/3 * R
n of the same value: 1/n*R
Situation: You havetTen conductive wires parallel, a connection of one of the wires is bad.
What happens here is a combination of the parallel and in series situation:
One of the parallel wires has a bad connection: this can be thought of as: 9 wires or resistance R and one of (say) 5R. This means that this wire gets less current. But this wire can be thought of as two resistors in series: one of R and one of 4R (this last one acts as the "bad" connection). This 4R resistor will disspate most of the current going through this wire: in fact 4 times as much. At a bad connection point on a fabric this can mean smoking or burning, even with low voltages.
This burning is even possible in a surface of conductive fabric: apparently with a weak spot you get this in series situation and burning may occur.
Step 4: Materials
The properties of all materials is different, but your application will also require different properties. Depending on length and width of your heating mesh and the number of parallel wires you must search for the right resistance.
Conductive threads: making a mesh
For the conductive thread there are roughly three ranges: very low resistance (copper wire), middle and high resistance. For heating we need middle resistance. Depending on the size and length of thread and mesh, you can opt for different properties in this range.
1. elinox PSPO 30075: 120 Ohm (25 cm)
2. stainless steel 0.06: 110 Ohm (25 cm)
3. elistat grey Phtgi-STMT 74/3: 1.3 K Ohm (25 cm)
4. elinox orange PSS 30070: 200 Ohm (25 cm)
5. Conductive Thread – 234/34 4ply 14 Ohms per foot (within margin): 17 Ohm
6. Conductive Thread – 117/17 2ply 300 Ohms per foot: 400 Ohm
The number 6 can be used for a mesh with 5 - 10 parallel wires (10 cm length), but more wires parallel makes the total resistance too low.
In general conductive fabrics have a low resistance. It can be compared with a lot of resistors in parallel.
Copper fabric is too low resistance most of the time, unless in a situation of a very thin strip which is very long.
The metal fabric of sufficient length has a resistance of 3-5 Ohm, which makes it possible to use is for heating, with a low voltage. (Use your multimeter to get the right distances.)
A good middle resistance is the polyesther - carbon from http://www.lantor.nl/
We have done several experiments with this material.
High resistance fabrics are:
Eeonyx (see images)
Low resistance fabrics are:
Shieldex (see images)
(pictures from the e-textile summercamps "Doggy Bag" http://etextile-summercamp.org/?cat=17 )
Importance of connection from the main wires to the mesh or the fabric
Connecting the fabric evenly at plus and minus sides (strips) is of utmost importance. If there is a spot with a slightly higher resistance, the heat will be produced at this spot. It can burn quickly even with low voltages.
Step 5: Heating Materials
The first image is a mesh inside plastic. This is a nice reference point: resistance 8 Ohms. For wearables the plastic is not a very nice material. The mesh is heating up very well at 5V and in the thermo chromic material you can see the rectangular grid. For gloves this is not convenient: it is too hard and too big. You cannot cut it into smaller pieces.
Making a heating mesh from conductive threads
Some conductive threads can be used in the sewing machine. You can make zigzag lines (increase the tension). Some conductive threads are too thick for the needle, but can still be used in the spool. By making parallel lines, you can heat up a surface. You have to calculate (or/and measure) the total resistance. This property is important for the voltage you have to apply to this mesh. If your voltage is too high, burning may occur. The area;s to connect the wires to have to be reinforced, so that the current will be distributed evenly over the mesh.
This fabric means the current is not limited to a rectangular mesh. It shows up as a surface of heat.
For the examples we worked with carbon polyesther from http://www.lantor.nl/
We used it with a double layer to reduce the resistance.
The connecting strinp can be made from a copper mesh sewn on the fabric or an aluminum strip glued to one layer and touching the other (every layer on strip).
The width over the heating area must be exactly equal. Otherwise all the heating comes from the smaller width and burning may occur.
In the first example, reinforcing with conductive metal thread (2 ply) resulted in a total resistance which was too low for the apllied voltage of 12V (it becomes smelly and smoking!). It can be used with 1 lipo of 3.7V.
Choosing the right width is important, but also the right length. Total resistance and therefore what voltage to use depends on width / length (width being the cm between the connection strips).
Step 6: Pictures From the USB Microscope
Sometimes a conductive wires doesn't conduct anymore. Investigating the construction of the wires you notice in sme conductive wires the combination of metal and plastic components. Sometimes there is only one or two metal wires wound around a kernel. If this metal breaks by bending, there is no conductivity.
Depending on your project you should choose the right wire (resistance) but also consider the possible damage by bending - and later on things as washing and cleaning.
Once after inserting conductive wires (metal 2 ply) into wool and then felting this mesh, the wires corroded during wet felting and there was no conductivitiy left.
With a baby loom woven mesh of conductive wires and optical fibers (combining optical and thermo chromic effects - see picture), the conductive wires were broken and the warming up didn't function anymore. The kernel of polyesther was damaged and the winding conductive metal wire with it.
Read more about that:
Step 7: Thermo Chromics
Thermo chromic inks change color on a certain temperature. This temperature is indicated. It can have a value of around 25 degrees or 35 degrees. Some thermo inks loose color (become invisible or grayish), other really change there color.
The color change can be caused by touching (if your hands are warm enough). It can also be caused by heating the fabric with a heating pad. Using it like this the color change can have the same function as an LED. There are differences: changing by heating can be quick, but returning to the frst color will be slow.
Effect of the ambient temperature
Different color change temperature points make a big difference. Most of the time you want to see a change when touching with your hands. Your hands (normally or in winter) don't have the same temperature as your body (37 degrees), but are much cooler. So with inks having the 35 degrees change point there is little effect.
Also the season plays an important role. In summer there is an immediate color change and you can see even the slightest detail in the palm of your hand, but in winter everything, tables, the air is much cooler and color change is not immediate.
This makes working with thermo chromic inks just by body temperature and touching not predictable.
Warming it up and changing the color by electricity is more reliable. But while we want to work with portable energy sources we have to consider the circumstances carefully and try to reduce energy loss by insulation.
The effects of heat on fabrics with Thermo Chromic ink will be dependent on the material you applied the thermo ink on.
for example: Silk is a relative conductive, felt is very isolating. (Make tests!)
and the way you apply the ink:
drenching is making a sensitive thermo fabric (eg in silk)
silk screening is producing a thicker (less sensitive) layer.
Step 8: More Power
limited to 5V, 500 mA
there are adaptors with a fixed voltage and others where you can regulate the voltage.
If you can regulate it say from 3V to 12V, this is nice for using with a total resistance between 5 and 30 Ohm: you can start with a low voltage and look how the heating up is developing
Using more lipo's
One lipo can be charged without any difficulty with a simple chip limiting the charging, you can buy these small charging boards at Sparkfun.com (8 dollars). Slightly cheaper versions are available at Voti.nl (5 euros).
As you can see in the image i damaged the connection, (i put the cable in the wrong way: smoke! But i resoldered the charging chip and now it functions again: MCP73831T at (one euro) at farnell.com )
Lipo's in series: be careful!
When you want to have portable batteries and you need quite a lot of energy you can start building circuits with more than one lipo battery.
1 lipo is 3.7V
2 lipo's 7.4V etc
Be careful: connecting the end points of the lipo's in serie may give a big spark! (From experience :-))
But then after a while you have to recharge the lipo's.
The problem is that the lipo's may have a different voltage if you start charging. You cannot consider the combined lipo's as one battery. You might overcharge one, while not finish with another. So you need a balancer (and a charger). This needs some investment, these chargers are expensive and you also need special adaptors with high current output.
This is mainly about current at a voltage of above 12V. Sometimes a 2A is enough and you could use an adaptor for a printer. You can also use adaptors for laptops. But I bought a monster capable of 10A (50 euros).
Because the combined lipo's ask for a lot of current you have to use quite heavy chargers, compared to the charger for one lipo. These chargers depend on the number of cells combined.
2c means 2 cells
The chargers indicte the number of cells they can charge.
To give an indication (many more available):
For up to four cells you can use the simple charger/balancer VOLTCRAFT E4 (20 euro's). (Needs an adaptor.)
Intermediate is the VOLTCRAFT lader C-403 (balancer/charger: 30 euro's), (needs an adaptor) giving you far more information.
For up to 6 cells: VOLTCRAFT B6 (charger/balancer/decharger: 70 euro's), needs the big adaptor. This thing gives you lot's of possibilities.
To end up with all lipo's fully loaded, you need a balancer. This device has to be connected with all the in between points of the lipo's in series. With these connections the volatge can be checked and the individual lipo's within the circuit can be loaded seperately if necessary.
So you need connection cables between the different points of the lipo batteries in series and the charger/balancer. This cable has to have the right number of wires (number of cells + 1)
You can buy these a dx.com: search JST-XH Connector Adapter Plug RC Lipo Battery Balance or elsewhere.
Checking can be done with a very simple and cheap device from dx.com (can be bought elsewhere too, but more expensive). You connect the sensor cable and it gives the voltages of the cells and the total voltage.
There are more expensive checking devices like monitors, but generally, this is included in the charger/balancer.
Step 9: More About Lipo's
Lipo is short for Lithium Polymer
Working with one lipo is like working with a rechargeable battery. When you start working with lipo's in series you wonder: how to charge these batteries? Is it still safe? If you accidentally (stupidly) touch the main wires of some lipo's in series you realy get a big spark!
There are some great links explaining all about lipo's and the risks:
If handled with care, the lipo's are safe. But even then it is advised to charge lipo's in the special lipo bag. This bag consists of very tough material, protecting against the main risks of the lipo.
The lipo's i bought all have the protective circuit, this can be seen under the yellow transparent tape (for the 3.7 V one cell lipo's used in most wearables.)
Charging one lipo - more lipo's
You should use the advised chargers. The lipo is then protected against over charging.
The 3.7V one cell lipo can be charged with the small red "Sparkfun" charger. It has 2 wires. Lipo's for bigger purposes have two main charging wires and a bunch of sensor wires.
Damaged lipo - Repairing a lipo - Caring for a lipo
You should avoid pulling the wires: if the yellow transparent tape gets of the lipo doesn't function anymore. But in fact repairing is simple: just pull the yellow tape back and you get the voltage. Because pulling the wires happens, I protect the lipo against that with taping it. (I don't undertsand why this is not done already in the factory.)
Step 10: Feedback Loop
With a temperature sensor you can create a circuit that heats to a certain point and then switches off. When the temperature drops, the circuit switches on again.
This is called a feedback loop.
You make a voltage divider with a temperature sensor and a potentio meter. Then in the script you measure the temperature with an analog PIN. You have to decide on a value, say 500 (software setting), for switching off the heating. If the temperature drops, the heating will be on again.
The potentiometer let's you influence the switching point. This is a hardware setting.
To get "decent" warming up the script is delayed when the heating is started for a certain number of seconds.
Warming up for changing color works fine (expecially in summer when the ambient temperature is near to the color change temperature. In winter this may working too but slower.
Warming up your hands or body using conductive threads or fabrics is not really working extremely well. The warming capacity of fabric is low. This can be understood when you look at other warming devices like stoves: most of the time this is quite heavy and the heat is transferred using lots of metal pieces. This warming is also costing a lot of energy. like 1000 Watt.
Water is a material that is asking for a lot of energy to warm up, and what is your hand but water and some bones? So for really warming up in winter you need a lot of lipo's in combination with very good insulation.
Step 11: Circuit for More Power
This is the circuit for the warming up lingerie (see example 1 at the end of this instructable).
The circuit had to fit into a belt. The size of the heating strip demanded 4 lipo's in series.
In the circuit there is a possibility to check the lipo voltage of for the lipo driving the ATtiny85. Also with a voltage divider there is a check on the total voltage of the 4 lipo's. If the total voltage is too low the one LED starts blinking rapidly to indicate that charging is necessary.
You can regulate the temperature with a small potentiometer.
You have to charge the 4 lipo's using a charger balancer. The charging and sensing cables are not in the images.
We used a 2A 12V adaptor and the VOLTCRAFT E4 charger.
Step 12: Examples
Example 1: Spine warming lingerie:
Ever wanted a gently warming up of your most precious inner feelings conducted from your lower back to your neck? Now this is possible in a sophisticated design of Marina Toeters, energy circuit provided by contrechoc. http://www.by-wire.net/ designed the lingerie with a heating strip at the back.
Heating strip from carbon polyesther from http://www.lantor.nl/
Connection strip: copper mesh.
Contrechoc made the circuitry where the energy is provided by 4 lipo batteries with temperature sensor for a feedback loop. The batteries are hidden in a belt and carried on your back.
Of course the belt with the lipo's is protected with the same sturdy protective material as the special lipo bags.
Coding available at: https://github.com/contrechoc/ATTINY85_script_tem...
Example 2: gloves from dx.com
Energy from USB port. Warming pad's attached with velcro to the inside of the glove. Heating up is very crude. One version is a heating pad, the other is a heating wire. This heating wire burns into your hand! No temperature feedback loop.
Example 3: Elastic materials made during a TIO3 workshop at Elasta
During an experimenting workshop at Elasta: http://www.elasta.be/
organized by TIO3. Eef, Martijn, Delia and Karen explored a combination of high and low resistance conductive thread woven in elastic materials. They came up with the idea of having a work out (stretch) rewarded with a thermo chromic response, see image.
More info here:
Step 13: Links
This instructable has become big!
So a collection of the links might be useful. I have used mainly my own experience, experiments, workshops and projects.
E textile summercamp:
Some e-textile materials: (Europe)
Looking for any component or gadget: cheap
C code basic: (Attiny 13a, Attiny85)