Wearable Haptic Fabrics, 0102.io

Wearable Haptic Fabrics, 0102.io

Tags
KiCad
Unique Manufacturing
I worked as a mechatronics engineering contractor at 0102.io for the last year. We were developing wearable haptic fabrics in an open source project that unfortunately is in limbo at the moment. My coworkers and I did make some great prototypes though, which were production ready and about a month away from being released as our first development kit.
Most wearable haptic devices use less than 10 actuators, which are typically vibration motors. The concept for this project was to much denser actuator arrays that create much more distinguishable patterns on your skin. The actuators would be mounted on a flexible substrate that could be harnessed/moulded into wearable garments and skins for game controllers/phones/watches etc. Our two prototype applications, the Glove and Patch, had 120 and 400 actuators respectively. Each actuator was made from a small coil of magnet wire and a neodymium magnet that flipped up to tap against your skin.
Powering the actuators in sequences could create rich patterns like letters, shapes, and effects (sweeps, static, ripples, etc.). The target markets we had in mind were primarily VR/XR, gaming, and accessibility devices.
 
A fully assembled Glove prototype in its harness with a controller and battery pack connected.
A fully assembled Glove prototype in its harness with a controller and battery pack connected.
 
A fully assembled Patch prototype in its harness with a controller and battery pack connected.
A fully assembled Patch prototype in its harness with a controller and battery pack connected.
 
Back side of the Glove prototype, where you would insert your hand to put it on.
Back side of the Glove prototype, where you would insert your hand to put it on.
 
Close up photo of the Patch prototype, with the side facing your skin showing, and the cap of one actuator removed.
Close up photo of the Patch prototype, with the side facing your skin showing, and the cap of one actuator removed.
 
A couple clips from our demos at the 2024 Open Hardware Summit in Montreal:

Actuators

Our actuators are made from a coil of magnet wire bonded to a thin FR4 PCB, with a neodymium magnet that is free to move within the coil, and enclosed with a thermoplastic polyurethane cap. The magnet is diametrically polarized, so when the coil is energized the magnet flips up and hits your skin through the TPU cap.
 
Actuator components; from left to right these are the TPU cap, neodymium magnet, and magnet wire coil glued to an FR4 PCB.
Actuator components; from left to right these are the TPU cap, neodymium magnet, and magnet wire coil glued to an FR4 PCB.
 
Skin-facing side of an assembled actuator
Skin-facing side of an assembled actuator
SMT pads of an assembled actuator, with an 0402 indicator LED
SMT pads of an assembled actuator, with an 0402 indicator LED
We control these actuators in the same topology as a typical LED matrix array, and we use LEDs as the diodes. This does subject the LED to currents way above their rated maximum, but these particular LEDs I found are able to withstand over a million stress test cycles. Having LEDs instead of e.g. schottky diodes is really nice for these prototypes because it helps the wearer and other people around them see where actuators are firing.
 
We chose to make the LED part of the actuator assembly rather than directly mounted to the substrate during our recent prototyping (v11c to v12e). This allowed us to iterate through substrate designs quickly without having to pay for assembly fees each time. This may change in future iterations depending on the actuator size and substrate material.
 
The actuator PCB is a 0.2mm thick single sided FR4 board with 3 electrical nets: LED Anode, LED Cathode/Coil Anode, and Coil Cathode.
A labelled diagram of the surface-mount side of an actuator, showing the 3 electrical+mechanical connections that are soldered to the substrate, and the 0402 LED.
A labelled diagram of the surface-mount side of an actuator, showing the 3 electrical+mechanical connections that are soldered to the substrate, and the 0402 LED.
The coil leads are welded to the coil anode and coil cathode pads. The iteration in the above photo had multiple pads for each coil lead so that if one of the weld attempts damaged a pad we could use one of the others. This ended up not being a problem for FR4 (it was a problem for earlier polyimide versions). The most recent iteration got rid of the soldermask bridges between pads on the same net.
 
The odd shape of the pads in the centre (LED Anode) was from our speculation that the solder mask bridge in the middle of the two halves helps to correct small misalignment errors with our manual pick and place process. We don’t really know if this works as intended, but our reflow process as a whole has worked reasonably well so far.

Substrate PCB

notion image
 
The flexible substrate is a polyimide PCB with a flexible printed circuit (FPC) tail that connects to the controller PCB. We had plans to switch to a thermoplastic polyurethane substrate after launch because it is much more compliant than polyimide (but also more difficult to work with and much harder to source).
Close up photo showing the FPC tail from the Patch connected to the controller PCB.
Close up photo showing the FPC tail from the Patch connected to the controller PCB.
 
Each actuator has 3 electrical contacts that are soldered to the substrate. Two of them are connected to tri-state switches on the controller PCB, while the third is an internal pin for the actuator that is soldered to the substrate for extra mechanical strength.
 
A screenshot from the v12d Palm schematic showing the electrical connections between FPC channels and coil PCB anode and cathode pins. The ‘A’ pin is the actuator anode, and the ‘C’ pin is the cathode.
A screenshot from the v12d Palm schematic showing the electrical connections between FPC channels and coil PCB anode and cathode pins. The ‘A’ pin is the actuator anode, and the ‘C’ pin is the cathode.
 
The actuator anodes and cathodes are connected in a typical LED matrix array, with anodes are connected to make ‘rows’ and cathodes are connected to make ‘columns’. Since we power the actuators with a 12V source and the forward bias of the LEDs is only 2V, we couldn’t take advantage of Charlieplexed array layouts to make bigger arrays.
 
In an earlier prototype we found that the traces between actuators were breaking where they met the actuator SMT pads. We think this was from the lack of coverlay on the thin trace as it met the much stiffer area around the solder joint, so for the current iteration we made made those trace connections much thicker and added a redundant path on the top layer, which has solved the issue.
 
A screenshot of the current Glove PCB layout showing a redundant connection between surface mount pads of adjacent actuator positions.
A screenshot of the current Glove PCB layout showing a redundant connection between surface mount pads of adjacent actuator positions.
 
A close up photo of assembled actuators mounted on a Patch PCB, with the LED side showing. The substrate PCB has a cutout for each LED.
A close up photo of assembled actuators mounted on a Patch PCB, with the LED side showing. The substrate PCB has a cutout for each LED.
 
The process for designing these PCBs was pretty interesting. My industrial design colleague actually did the outline and routing in an architectural program called Rhino, and then exported layers as .dxf files, which I converted to traces and vias in KiCad, and added the footprints for the actuators. Rhino has much better tools than KiCad for complex geometries, but we needed the design rule checks from KiCad to make sure we didn’t miss connections or have incomplete outlines etc. One of our early designs did actually go straight from Rhino to gerbers using a python script, but it skips the DRC so the Rhino→KiCad process seemed more reliable.