I worked on developing these prototype haptic fabric systems while at a 3-person startup company, 0102.io; unfortunately due to the sudden passing of the CEO, this project is in limbo currently, but it was an amazing project to work on.
Haptic devices convey information through your sense of touch, in the same way that audio devices convey information through sound. Most wearable haptic devices use less than 10 actuators, but our plan was to build a much denser array to create more distinguishable patterns on your skin. By powering the actuators in sequences, we can create rich patterns like letters, shapes, and effects (sweeps, static, ripples, etc.) that you can feel on your skin.
Here are a couple of clips of people using our prototypes at the 2024 Open Hardware Summit in Montreal:
Each actuator is made from a magnet sitting in an electromagnetic coil. When the coil activates, the magnet flips up and hits your skin. Here’s a close up of an actuator array:


We made two form factors for our prototypes, the Patch, which you see in the demos above, and the Glove, which is designed to be worn on your hand.


Actuators
Our actuators are made from a coil of magnet wire bonded to a thin (0.2mm thick) 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 flexible cap.



Each actuator is assembled as a modular device, and then assembled onto the substrate as a surface-mounted component. This modularity greatly improved our production workflow and allowed us to implement much better quality assurance processes than would have been possible by assembling all of the components directly onto the substrate. Essentially it decoupled the risk of having a “dead pixel” on an array, because we could test all of the actuators before completing the final assembly.

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.
Substrate PCB

The flexible substrate is a polyimide PCB with a flexible printed circuit (FPC) tail that connects to the controller board. 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).
.jpeg?table=block&id=f3c15f76-c436-40db-8dfd-f370a0e10e8a&cache=v2)
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.

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.


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.
