As I mentioned in my last post, I had a few trouble spots while working with the sensor lead wires. They’re more stiff than they should be. More importantly, in testing each sensor combination, I found that some which should have been easy were actually difficult due to where I placed the sensor(s) in question, and some sensors were much larger than the optimal size. My current prototype glove isn’t even complete—it’s still missing the three large palm sensors and the whole accelerometer setup—but already, I’m making plans for the second glove. In fact, I will probably just leave the current glove as it is and wait for the new test materials to arrive (they’re all already ordered).
I realized that a significant revision was necessary when I made it (mostly) to the end of the glove assembly process, and although it was exciting and gratifying, my main thought was there has GOT to be an easier way to do this.
Obviously, since this was my first attempt ever, I can’t really complain about how long it took. I had to figure a lot of stuff out as I worked, and that approach is always slower. Doing the exact same steps (at least the ones that weren’t part of a test that failed) will presumably take much less time on the second attempt. However, as I thought about the complicated and/or time-consuming parts, I concluded that some parts of my current build process are not very efficient.
I have outlined below the process that I used to build the glove (called Prototype A) the first time, starting from all of the raw materials. This is followed by a hardware list and build process for my next prototype (called Prototype B). Prototype B will also include an accelerometer, but I haven’t listed it or the steps required to implement it here because it wasn’t part of Prototype A, and the main point here is to contrast the changes to the process between Prototype A and Prototype B. The accelerometer steps, at this point, would be the same in both cases. These lists also exclude the PS/2 interface hardware. Only the hardware for the glove-to-Arduino interface is listed here.
Prototype A Hardware
(note: don’t use this one as a shopping list)
- Right-handed cotton handbell glove w/strap
- Arduino Mega board and USB A-to-B cable for programming/testing
- Approx. 25 sq. in. of conductive fabric
- Approx. 50 ft of solid black 26 AWG insulated wire
- 34 unsoldered male header pins
- 5 different colors of 3/32″ heat shrink
- Wire glue
- 5-minute epoxy
- Needle, thread, and sewing pins
Prototype A Build Process
(note: don’t follow these directions exactly)
- Cut 34 separate 18-inch lengths of solid black wire for sensor leads
- Strip ~1/8″ of insulation from both ends of all 34 wires
- Solder a male header pin onto one end of each of the 34 wires
- Use scotch tape to secure the non-pin end of each wire to a flat surface
- Cut best-guess sizes of conductive fabric for sensors
- Place each sensor fabric piece carefully on flat surface under each exposed wire end
- Mix up wire glue with a toothpick for best consistency
- Use toothpick to apply very small drop of wire glue to the exposed part of each wire, allow 30+ minutes to dry
- After at least 30 minutes, mix batch of 5-minute epoxy and apply slightly larger drop to wire glue/fabric to ensure total coverage and strength, allow 15+ minutes to cure
- Cut 12, 12, 5, 3, and 2 sections (respectively) of five chosen colors of heat shrink (1/4″ or 3/8″ length is fine)
- Slide heat shrink over header pins and secure with lighter or other heat source
- Place each sensor on the glove in its best-guess location and secure with either 1 or 2 sewing pins as necessary
- Cut appropriate lengths of thread and sew each sensor on, maintaining position and alignment as much as possible
- Gather sensor lead wires into groups by finger and loosely tie together with small wire sections
- Sew strategically placed loops around each wire or bundle of wires to make sure they are firmly attached to the glove and will not move independently
- Connect Arduino board to computer, run IDE, and upload the Keyglove controller code
- Insert each sensor wire header pin into the appropriate I/O receptacle on the Arduino board
- Test all basic 1-to-1 combinations for success
Now, if you actually took the time to read through all that, you might notice a few things (particularly about the build process). First, some of those steps could be done in almost any order. Obviously you can cut the lengths of heat shrink whenever you want, as long as they are available when you need them. You could attach the wires to the fabric before you solder the header pins to the other end. This is true, and any changes I’m suggesting below that affect those arbitrary tasks are coincidental.
Second, you might notice that some of those items take only a minute, while some take many hours—especially #8 and #9 for attaching wires to sensors, and #12 and #13 for sewing the sensors onto the gloves. These are the major areas of difficulty, and any improvements in those parts of the process will have a significant effect. That is my goal at this point.
Although the above list of steps is pretty straightforward, in reality I didn’t exactly do things in precisely that order. I did them piecemeal, especially the sensors, as I was testing what worked and what didn’t. If I had all the materials in front of me right now and I followed that process from beginning to end, I estimate it would take me about four hours, with the bulk of the time spent sewing. Even with an improved process, this time isn’t likely to change much.
However, while it might take time, it doesn’t have to be hard. Tedious, maybe, but not hard. Here are the three main aspects of the Prototype A hardware and build process that make things harder than they should be:
ol.wide li { margin-bottom: 1em; }
- PROBLEM: Solid 26 AWG wire.
I thought this would be thin enough to get the job done, but it’s still stiff. It looks fine once you get it all pinned down to the glove, but it tends to push against the sensor material while you’re trying to glue them, and when you’re trying to sew them on, and when you’re moving your fingers around while using the glove. The end result is that (1) the you need to be extra precise during the wire attachment step, (2) it is virtually impossible to get the sensors sewed on tight exactly where you want them, and (3) using the glove feels just a tiny bit awkward due to added resistance. Solid wire is just a bad idea for this purpose.- SOLUTION: Use stranded 30 AWG wire instead.
This will give the added flexibility necessary to prevent the wire from exerting significant force on the sensor fabric. The wires are never under a lot of stress, so switching to stranded won’t degrade the durability of the glove either.
- SOLUTION: Use stranded 30 AWG wire instead.
- PROBLEM: Sewing sensors after attaching the wires.
Two bad things happen as a result of this: first, the wire hanging off (even the stranded wire, to an extent) tends to pull in some direction on the sensor fabric while you are trying to sew it on. This causes it to shift unless you are incredibly good at sewing, which I am not. Second, because the wire is attached partially using epoxy, it is impossible to sew through the epoxied area on the fabric. This leads to a loose “flap,” usually one particular corner, which is not pinned down and therefore an area of strain and weakness. Any pull on the sensor that comes from the wire puts force primarily on this one corner, which leads to uneven wear and creates a likely point of failure.- SOLUTION: Sew the sensors on first, and use a different glue.
This is still a bit of an unknown for me, and my solution involves more testing before I’ll be confident. However, multiple people have recommended the home-made conductive glue that I’ve linked to above as a possibility for attaching the wire to the fabric. It is conductive and flexible, so they say—a cleverly calculated mixture of ultra-fine carbon graphite power and Liquid Tape. It is remotely possible that it will even work as sensor material, negating any need for fabric, but I doubt it will exhibit the same touch conductivity, and likely also not have the same success with capacitive touch screens. I will experiment with it to find out. The chemicals required are currently on order.Changing the sewing/gluing order around will also require another change, unless this new glue possess a magical property that makes it strong enough to hold the wire in place with only a tiny amount. Specifically, I have been gluing the wires onto the back side of each sensor so that the entire front side remains available for maximum touch-sensitive surface area. However, if I sew the sensors on first, only the front side will be available. This means I’ll have to attach the wires onto the front side with the glue. For large sensors, this should be fine. But for the small ones, it could be a problem. Hopefully it won’t use up more than about 1/8″ square of surface area. For a 1″ square sensor, this is is only about 2%, but for a 1/4″ square sensor, it’s 25%. Perhaps if I am very lucky, I’ll be able to reliably attach them to the back side despite the stitches that will be holding each sensor down, but I’m not sure. It is also possible that it won’t inhibit the practical sensitivity of each sensor. I’ll have to find out when the materials arrive.
One more note: I originally rejected sewing first and gluing second precisely because of the difficulty in attaching wires to the sensors while they are on the glove. However, this was because I was doing it the old way, leaving one corner unattached, and pinning it up while I precariously bent the wire just right so it was touching the fabric. If I use stranded wire and this new glue (which is considerably sticky), and especially if I use the front face of each sensor, these problems will all go away.
- SOLUTION: Sew the sensors on first, and use a different glue.
- PROBLEM: Sensor size and position makes accuracy difficult.
Part of this is admittedly caused by my relatively poor sewing skills, and this element of the problem will hopefully be fixed by the previous problem’s solution as well as my skill improving over time. However, some of it also comes from the fact that the sensors I cut are just not the right size in many cases. They are generally too large, making it far too easy to touch the wrong one (especially with my thumb).- SOLUTION: Pre-cut all sensors to new specifications based on initial results.
Here is the critical point: sensors that are primarily “targets” should be very small, while sensors that are primarily “initiators” should be large. Sensors that are both can be large as well. The only exceptions are the three very large “target” palm sensors, which need to be large but can be so without creating problems, since they are not near anything else.To clarify, when I say a sensor is a “target” or an “initiator,” think about touching your palm with your fingertip. You wouldn’t say that you’re touching your fingertip with your palm, because that’s not what it feels like to you. Your thumb is doing the touching, even though technically they are both touching each other. Fingertips are really the only ones that can be both targets (in the case of the initiating thumbtip) and initiators (in the case of everything else), so they should be large as well. In essence, this means that all of the middle and lower finger pads, the finger sides, and the fingernails should all be very small—probably not much more than 1/4″ or maybe 3/8″ square. The two thumb pads (upper and lower) will be large, as will the four fingertips, and of course the palm pads. The large size of the thumb pads (roughly 1″ square) make it very easy to reach the right little sensor without focusing on precision, and the small size of the target sensors make it very easy to avoid hitting the wrong ones accidentally.
- SOLUTION: Pre-cut all sensors to new specifications based on initial results.
So, those are the problems and the solutions. Here are my hardware and build process lists for Prototype B, which I will start on as soon as the new gloves and stranded wire arrive. Note that I’m still recommending an Arduino Mega board here even though my ultimate goal is to use the Teensy++, because the Arduino board is better for rapid prototyping, at least in my opinion.
Prototype B Hardware
- Right-handed cotton handbell glove w/strap
- Arduino Mega board and USB A-to-B cable for programming/testing
- Approx. 15 sq. in. of conductive fabric
- Approx. 50 ft of stranded black 30 AWG insulated wire
- 34 unsoldered male header pins
- 5 different colors of 1/16″ heat shrink (quite small)
- Conductive glue ingredients (carbon graphite powder and Liquid Tape)
- Needle, thread, and sewing pins
Prototype B Build Process
- Cut 34 separate 18-inch lengths of stranded black wire for sensor leads
- Strip ~1/8″ of insulation from both ends of all 34 wires
- Solder a male header pin onto one end of each of the 34 wires
- Cut 12, 12, 5, 3, and 2 sections (respectively) of five chosen colors of heat shrink (1/4″ or 3/8″ length is fine)
- Slide heat shrink on from non-header side of each wire secure around header pin solder joint with lighter or other heat source
- Cut precise sizes of conductive fabric for sensors
- Place each sensor on the glove in its precise location and secure with either 1 or 2 sewing pins as necessary
- Cut appropriate lengths of thread and sew each sensor on, maintaining position and alignment as much as possible
- Mix conductive glue ingredients according to directions
- Glue each wire onto the front surface of each sensor, securing with light Scotch tape if necessary while it dries
- Gather sensor lead wires into groups by finger and loosely tie together with small wire sections
- Sew strategically placed loops around each wire or bundle of wires to make sure they are firmly attached to the glove and will not move independently
- Connect Arduino board to computer, run IDE, and upload the Keyglove controller code
- Insert each sensor wire header pin into the appropriate I/O receptacle on the Arduino board
- Test all basic 1-to-1 combinations for success
There you have it. Hopefully this should speed up the build process and make the whole thing simpler. Now I need to go play with this accelerometer some more while I wait for the rest of the new materials to arrive.