They/them. PhD student: smart textiles, weaving, computational craft, hardware hacking.
Spring 2019
Concept sketch of a Bluetooth fabric-based controller.
My goal was to learn as much as I could about the Bluetooth connectivity standard and apply the knowledge to create a system that incorporated Bluetooth into a smart textile. After some initial research into the components accessible to me, I began to design a soft, fabric-based Bluetooth input device that smartphones and other Bluetooth-enabled devices could easily connect to. The final design demonstrates a woven Bluetooth button which types a phrase on the other device when pressed.
Block diagram showing the flow of input/output data between the system’s major components. The device that connects to the Bluetooth module is the host.
Circuit incorporating the button, Arduino, Bluetooth module, and an indicator LED. A 10KOhm resistor is connected between the button pin (7) and GND. A 100 Ohm current-limiting resistor is connected in series with the LED on pin 5.
These instructions are specific to the RN-42 module, so another breakout board may be substituted. A conventional press button may also be substituted. (An overview of how to create a woven button is in the appendices.) If substituting a different Bluetooth module, it must support Bluetooth’s HID profile.
Weaving makes a fabric by interlacing two perpendicular sets of yarn, the warp (conventionally vertical) and the weft (horizontal). The warp is first set up on the loom (“warping” the loom) and held under tension. Then, the weft is passed across the warp yarns, going over and under periodically, to interlace and form the fabric structure. One particular woven structure, doubleweave, actually forms two separate layers during the weaving. Using this structure in a specific area can create a pocket in that area, as shown in the drawing below.
Drawing of the base structure of the woven button. The button itself is made of a two-layered woven structure, bound together by the ground plane of the surrounding fabric.
During the weaving process, we can add in a “supplemental” yarn that follows the base yarn to “supplement” the structure in selected portions. This yarn can be in either direction, making supplemental warp or supplemental weft. The supplemental yarn does not have to be as sturdy as the base yarn in the rest of the fabric, giving us a way to easily use fragile conductive yarn. On this button, I used stainless steel conductive yarn as supplemental warp to cover the top face of the button and form one terminal. Supplemental weft using the same yarn formed the bottom face of the button, the other terminal. I stuffed the pocket with scraps of yarn to separate the terminals.
Drawing of the button showing the location of supplemental warp (pink) and supplemental weft (blue).
Bluetooth was developed with the ambitious goal of replacing wired USB (Universal Serial Bus) connections. One of USB’s most successful features is its ability to easily interpret input/output from a variety of devices, greatly reducing how many different connectors computer systems had to handle. USB was created to replace an even earlier communication standard, RS-232 serial. USB’s universal-ness comes from its host controller architecture, which adds several layers of abstraction between the “host” computer and the connected device, so that the host doesn’t have to handle as many specifics of the peripheral device. In Bluetooth, a similar layered architecture is what we call the “Bluetooth stack”.
To connect to a USB device, the USB host installs a driver that corresponds to the device. Often, these drivers can work across an entire category of device (e.g. keyboard, speakers) because they are defined for a “profile” that generalizes the category. Many USB device profiles were ported directly into Bluetooth profiles, informing some of the core design features of this newer connectivity standard. My design takes advantage of this embedded history within Bluetooth systems by using the Bluetooth profile of a keyboard.
Sparkfun’s Bluetooth Mates and SMiRF’s both use this module in the Silver versions. The gold versions of both boards use the RN-41 module, which has a larger range but similar connectivity capabilities. The difference between Mates and SMiRF’s, which are both breakout boards for RN modules, is the pin order which affects which Arduinos can directly plug into them. Both boards have 6 pins that can directly connect to an Arduino’s UART pins.
The RN-42 module can be used in Serial Port Profile (SPP) or in Human Interface Device (HID) profile. The configured profile will affect how the device at the other end sees and connects to it.
Link to complete user’s guide (advanced).
The Bluetooth SPP profile is used to replace a wired serial TTL (transistor-transistor logic) connection. Information is transmitted in packets with very little overhead. Both devices must be able to listen and write to a serial port in order to communicate via SPP.
The Bluetooth HID profile is, in fact, a wrapper to the USB HID profile. The HID device interprets input commands as ASCII characters and translates them into packets of bytes, or HID reports. The host receives the reports and converts them to the appropriate output. In the case of keyboards, the information often starts and ends as ASCII, so a string sent by the Arduino via the RN-42 will show up exactly the same on the other end.
[[electronics]] [[illustration]] [[smart-textiles]] [[projects]]