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 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.
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.
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
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).
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.