zPatches are textile sensors designed to be robust and to recognize different types of input activities.
Check out these video demos, to see the raw-data output from a zPatch:
All information regarding zPatch is collected on https://zpatch.github.io/
This Instructable provides a high-level overview of how to create your own zPatches. As I assume you will be modifying this to fit the tools and materials available to you, and because your project goals probably have something specific in mind, I only outline the general principles here. This means you should read the entire Instructable before you set out to make your own. Make sure to check out the images also, as they often provide additional information.
We published this work at TEI 2018. Our TEI paper has some additional sensor variations that you may want to check out.
Step 1: Materials
The trickiest part in making these sensors may be collecting the materials. You will need the following:
a) Non-conductive, thin fabric for the top layer. We used a mesh material, but this is not strictly necessary. A thin material or mesh may help identify touch events, but you could use any non-conductive material you find aesthetically pleasing.
b) Non-conductive, thicker fabric for backing payer. This material should be non-elastic. It acts as a structural support. The thicker it is, the easier to identify gestures if it is placed directly on the skin.
c) Conductive fabric, ideally Ripstop or other thin, non-elastic materials. We like the fabrics made by Statex. We use a material they call 'Bremen'.
d) Piezo-resistive fabric. To our best knowledge, the only piezo-resistive fabrics currently available are made by Eeonyx. You can buy them from Sparkfun. You might want to shop around for larger orders, I have purchased larger quantities from Hi-Tek Ltd. The material I use is non-elastic, non-woven and has a resistance of ~20kOhm Square.
e) Dual sided bonding material. This is used to heat-bond the layers together. You can buy it at most fabric or sewing supply stores.
Step 2: Tools
You can use scissors for making individual patches. We have had good success in making a group of patches at once, using a laser-cutter.
The rest of the tutorial will describe the process using a lasercutter, but there is no reason for you not to us scissors instead.
You will also need a iron, wax-paper and an ironing board.
Step 3: Add the Bonding Material to the Conductive and Non-conductive Fabrics
Cut two square of heat-bonding material (the same size as your your bottom non-conductive material, and your conductive material). Using an iron, bond the patches to the materials in question. At the end, you should have one piece of non-conductive fabric and one piece of conductive fabric that are each bonded to glue on a single side.
The image sequence above shows the process of bonding the glue to a single layer of conductive material.
(a) Cut out a piece of bonding material about the same size of the material you intend to use
(b) Put wax paper on the ironing board and the place the fabric+bonding material on top of that.
(c) Put wax paper on top of the materials and start ironing them together (c, d & e) show me starting at the right, moving left, bonding the glue to the conductive fabric.
Once you are done, you can just pull off the wax paper from the non-conductive material. Leave the wax-paper bonded to the conductive Ripstop.
The wax paper is important. Once you get bonding material on your iron or on your ironing board, things start getting messy fast.
The reason we are doing this now, is because it makes the materials stiffer and easier to work with. If we cut the materials now, the edges are less likely to flay. It also allows us to do this step in one, go, while everything is still a large fabric, rather than ironing many tiny bits.
Step 4: Cut the Material
The easy way is to grab your scissors and start cutting already.
If you want to make multiple sensors, or if you want to make very specific layouts, you can lasercut both the conductive as well was the piezo-resistive fabric. Please note that the suggestions below are guidelines, we have only tested this on our own machine. If you try this, please report back how you did it, so we can update this tutorial.
Lasercutting the Ripstop:
- We glued the wax paper side of the Ripstop to acrylic or MDF with double-sided tape.
- Cut it using 50% speed, 20% power at 5000 Hz
(The laser will slightly cut into the acrylic underneath).
---> As the Ripstop is somewhat reflective, we suggest caution at this step. We did not encounter any problems, but that does not mean that we believe it to be completely safe.
Lasercutting the Eeonyx:
- We just placed it directly in the lasercutter.
- We cut it using 50% speed, 9% power and 5000Hz
Step 5: Optional: Add Headers
The easy way to connect to anything is using Alligator clips. These will do just fine for your first prototype.
If you want to get fancy, you can crimp headers directly to the fabric. I've used tools by Pololu and really like this way of connecting to materials.
Crimping Tool: https://www.pololu.com/product/1928
Female Headers: https://www.pololu.com/product/1930
Crimp Connector Housing: https://www.pololu.com/product/1901
If you want to get even fancier, check out related tutorials by Rachel Freire.
Using safety pins and using 3D printed connectors.
Step 6: Stack the Materials
Layer your materials in their intended order.
1) Bottom non-conductive material at the bottom (glue facing upwards).
2) First electrode (conductive material, glue facing downwards).
3) Piezo resistive material (no glue!)
4) Second electrode (conductive material, glue facing upwards).
5) Top non-conductive layer
(I connected my electrodes to female crimp-headers and placed those inside two-position shroudings. This means that the electrodes come in very close proximity to each-other. To be completely sure that I do not short circuit anything I added a small piece of fabric between them and secured it in place with glue-gun glue).
Step 7: Bond the Layers Together & Cut Out the Patches
Using wax-paper to protect your iron and your ironing board, iron all the layers together. If you used hot-glue, just iron over it as well. It will heat up and conform to the flat shape of the rest of the sensor
Once they have bonded cut them in the desired shape.
If you intend to iron them on to clothing, you can add another glue layer on the bottom of your sensor.
Note: we need to experiment with this more, but it appears that, if too much bonding material is used, or if the sensor is heated too much, the glue can seep-through the Ripstop. When this happens it appears as if the resistive sensing resolution declines.
Step 8: Program Them!
The way zPatches are designed assumes that each electrode is connected to an analog input pin.
You can Download the code here. It assumes that the zPatch is connected to A0 and A1. You can see their output on the Arduino IDE's Serial Monitor (or use the Serial Plotter!).
The code is very basic. It calibrates the capacitance to the state it is at when the Arduino is turned on. It then just sends continuous resistive and capacitive readings to the serial port.
To make readings more stable, number of samples and a low-pass filter can be adjusted in the code provided.
Fully leveraging the advantage of both sensing channels will require some additional work. We provide a possible strategy of how to approach this in our paper.
You can find an overview of all other ressources at zPatch.github.io