<figure><img src="image_1.png" /></figure>

HAL
open science

# PrintPut: Resistive and Capacitive InputWidgets for
Interactive 3D Prints

Jesse Burstyn, Nicholas Fellion, Paul Strohmeier, Roel Vertegaal

► To cite this version:

Jesse Burstyn, Nicholas Fellion, Paul Strohmeier, Roel Vertegaal. PrintPut: Resistive and Capacitive InputWidgets for Interactive 3D Prints. 15th Human-Computer Interaction (INTERACT), Sep 2015, Bamberg, Germany. pp.332-339, 10.1007/978-3-319-22701-6_25 . hal-01599622

HAL Id: hal-01599622

https://inria.hal.science/hal-01599622

Submitted on 2 Oct 2017

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# PrintPut: Resistive and Capacitive InputWidgets for
Interactive 3D Prints

Jesse Burstyn¹, Nicholas Fellion¹,², Paul Strohmeier¹, and Roel Vertegaal¹

¹Human Media Lab, Queen's University, Kingston, Canada

{jesse, paul, roel}@cs.queensu.ca

²Creative Interactions Lab, Carleton University, Ottawa, Canada

nicholas.fellion@carleton.ca

**Abstract.** We introduce PrintPut, a method for 3D printing that embeds interactivity directly into printed objects. PrintPut uses conductive filament to offer an assortment of sensors that an industrial designer can easily incorporate into their 3D designs, including buttons, pressure sensors, sliders, touchpads, and flex sensors. PrintPut combines physical and interactive sketching into the same process: seamlessly integrating sensors onto the surfaces of 3D objects, without the need for external sensor hardware.

**Keywords:** 3D Printing · Rapid Prototyping · Printed Sensors

## 1 Introduction

As computation becomes more ingrained into everyday objects, designers have a new responsibility to also consider how people interact with an object's digital aspects. As a result, it is increasingly important for industrial designers to start considering digital interactivity earlier in their design process.

When developing new artifacts, designers create prototypes to guide their design process about how an object should look, feel, and behave. These early designs might be digital, in the form of illustrations or rendered mock-ups, or they may be physical, for example, sculptures or 3D prints. On the one hand, physical prototyping is extremely useful for informing the aesthetic and ergonomic qualities of a product. But unlike their digital counterparts, the results of these prototyping methods are typically non-interactive.

To address this, there is an active research area surrounding augmenting physical prototypes with touch sensors [1,2,8,9]. These solutions usually have a tradeoff between ease of use, resolution, and customizability. More importantly, designers must use these solutions *after* making a physical prototype. Wrapping a physical object with external sensors may disrupt the crafted shape that a designer is exploring, or may not be possible on complex geometries.

We introduce PrintPut, a process to create input sensors on 3D printed objects. With PrintPut, designing shape and interaction occurs together. In this paper, we present a collection of sensors that an industrial designer can easily incorporate into their
3D designs, including buttons, pressure sensors, sliders, touchpads, and flex sensors. PrintPut enables a new category of objects with intrinsic touch sensing capabilities.

## 2 Related Work

A number of papers have explored the use of conductive inks to print flexible electronics. Rendel et al. [9] created PyzoFlex, a flexible sensor that detects touch, pen input, and hand proximity. Kawahara et al. [4] presented a method to create Instant Inkjet Circuits by modifying a consumer inkjet printer to print silver ink onto paper. They also demonstrated several capacitive sensors printed with this method. Olberding et al. [8] designed multi-layer topologies for flexible and cuttable multi-touch sensors. Gong et al. [1] extended this work with a printed sensor sheet that detects multi-touch and hand proximity with capacitive circuits, and folding and pressure with resistive circuits. With Resographs [2], Holman et al. demonstrated how designers can use resistive materials and paints to add touch sensing to non-planar objects.

There have also been a number of explorations using 3D printers for interactive prototyping and designing unique input and output methods. Ishiguro and Poupyrev presented methods to seamlessly integrate speakers into 3D printed objects [3]. Savage et al. demonstrated Sauron, a rapid-prototyping platform for physical user interfaces [10]. Sauron modifies 3D models such that, when printed, an internal camera can detect the motion of widgets such as push buttons, joysticks, and sliders. Leigh et al. [5] outlined the process they used to create custom conductive filaments. They also showed how the filament could be used to 3D print basic capacitive buttons and flex sensors. We extend their work by introducing a wider variety of sensors that can be directly integrated into objects and an automated workflow to do so.

## 3 Application Scenarios

**Dome.** Unlike sheet solutions, PrintPut sensors can be put onto non-developable surfaces: shapes that cannot be unfolded to flat. Figure 1 shows a touch pad printed onto a dome. A designer might use this shape to explore input on a globe, for example.

<figure><img src="image_3.png" /><figcaption>Fig. 1. X-Y Touch Pad integrated into a dome-shaped structure</figcaption></figure>
**Sound Wave Slider.** Figure 2 shows a touch slider printed onto a decaying sine wave. Following this model, a musician could print the sound wave of their music track and tangibly scrub and mix through audio during a live performance.

<figure><img src="image_4.png" /><figcaption>Fig. 2. Slider printed onto a decaying sine wave</figcaption></figure>

**Multiple Sensor Toy.** Figure 3 shows the exploration of a new toy design. A designer has created the model for a new interactive robot figure, with a combination of sensors placed around its body. The robot has a slider along its head and a pressure sensor on its belly.

<figure><img src="image_5.png" /><figcaption>Fig. 3. Toy design with multiple sensor types</figcaption></figure>

# 4 PrintPut Implementation

## 4.1 Software

We created a series of scripts to help designers integrate sensors into complex three-dimensional geometries. We implemented the process in Rhinoceros 3D, a popular computer-aided-design (CAD) software package for industrial design. Specifically, our automation process operates within an official free plug-in, Grasshopper, a visual programming tool for algorithmic 3D modeling. Designers start the process by creating a base model of their 3D shape in either Rhinoceros or the CAD software of their choice. Next, they bring their model into Rhinoceros and define the points and curves
for interactive areas. The script takes this user input and constructs the flat geometry
for the desired sensors. The next step projects the sensor geometry onto the original
model, such that it conforms smoothly to the surface. Then, the script extrudes the
geometry into the surface and subtracts it from the base model. The result is two inter-
locking 3D models: the conductive circuits and the base model with hollows for these
created paths (Figure 4).

<figure><img src="image_6.png" /><figcaption>Fig. 4. Routing pattern for the printed toy design</figcaption></figure>

4.2 Hardware

The critical component of PrintPut is a conductive ABS filament. Commercial solutions are now available and inexpensive: we used Maker Geeks Conductive ABS [6]. The filament has a high resistance and in our experience, a typical circuit has a baseline resistance in the MΩ range. PrintPut requires an ABS supported 3D printer with two extruders, such as a Makerbot 2X or Leapfrog Creatr. After a designer makes an object with sensor geometry, they import it into their 3D printer's build manager and assign the base and conductive geometry to standard and conductive filaments, respectively. Once the object is printed, sensor values can be easily read by connecting it to an Arduino or other microcontroller with alligator clips. For a lower profile, a designer can instead attach thin wires with conductive adhesives (e.g. copper tape or 3M Z-Axis conductive tape).

5 Sensing Methods

**Capacitive Sensing.** Capacitive sensors are made from a single terminal. They detect touch by repeatedly charging the terminal and recording the discharge time. When a finger is introduced, the sensor detects a larger capacitance.
**Digital Resistive Sensing.** Digital resistive sensors require two terminals, separated by a physical gap. The first terminal is connected to positive voltage (emitter), while the second connects to an input pin (receiver). Bridging the gap with a conductive material, such as a finger, allows current to flow, completing the circuit. A pull-down resistor is required at the emitter's pin.

**Analog Resistive Sensing.** Analog resistive sensors have a similar layout as digital sensors. In addition to detecting the presence of a bridge, the resistance of the bridge can modulate how much current is permitted.

# 6 Sensor Types

For clarity, Figures 5 through 9 show the sensor types in their flat form factor. One of the primary benefits of PrintPut, however, is that it is not limited to flat surfaces.

**Capacitive Buttons.** One of the basic button types is a capacitive button, as originally presented by Leigh et al. [5]. They are made from a single pad of conductive filament, in any desired shape. Each capacitive button is directly connected to a unique input pin on the microcontroller.

**Resistive Buttons.** Another possible button type is a resistive button, which acts as a digital resistive sensor. To make a resistive button, a designer places a pad of conductive filament on an object, split down the middle (Figure 5). When a user places their finger on a resistive button, it bridges the gap and completes the circuit. We recommend a 1mm space between the two pads: close enough that a finger can create a bridge, but far enough to avoid unintended touch signals.

<figure><img src="image_7.png" /><figcaption>Fig. 5. Resistive Button</figcaption></figure>

**Resistive Slider.** With a resistive slider, a designer can detect the "linear" position of a finger along a surface. At their basic level, sliders are composed of a series of evenly spaced resistive buttons (digital resistive sensors). For simpler routing, the emitter halves of the buttons can be combined into a single line (Figure 6). Although a resistive slider is made of discrete points, it is possible to perform some basic interpolation
by noting when adjacent pads are simultaneously touched. Touching non-adjacent
pads allows for multi-touch.

**Resistive X-Y Touch Pad.** The touch pad extends the principle of the resistive buttons and sliders into two dimensions, by combing multiple touch sliders (Figure 7). Aligning N vertical sliders in a row, each with M buttons, forms a touch pad with NxM touch points. This solution would require one combined emitter and NxM receivers. Rather than requiring one input pin per point, we take advantage of time-division multiplexing to combine the sliders. This is accomplished by maintaining one emitter per row and connecting each corresponding receiver pad underneath the surface of the printed object. The Arduino activates a single emitter, deactivates the others, and then reads values from each combined receiver. The process is repeated with each emitter to determine a touch location. By routing the touch pad in this way, a designer can significantly reduce the number of required input pins: it only requires M emitter pins and N input pins. For example, an 8x8 touchpad made with the first method would require 65 pins, but a multiplexed sensor would only need 16. In Figure 7, the emitters are the odd rows and the receivers are the even columns.

<figure><img src="image_8.png" /><figcaption>Fig. 6. Resistive Slider</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>Fig. 7. X-Y Touch Pad</figcaption></figure>

**GSR Pressure Sensor.** PrintPut provides two methods to create pressure sensors. The first is made in the same way as a resistive button (Figure 5), but treating it as an analog resistive sensor. A finger's galvanic skin response connects the two terminals by allowing current to pass through. Applying additional pressure lowers the resistance of the connection. In our experience, several other factors also contribute to the strength of the connection, including the size of the finger, sweat levels, ambient tem-
perature, etc. [1]. As such, this type of sensor is more suited to detect relative changes
in pressure.

**Spring Pressure Sensor.** The second method to create a pressure sensor is to make an analog resistive sensor where the physical space between the terminals is reduced when applying pressure. This is achieved by printing two pads, a thin one above another, with a small (0.4 mm) gap between the two. At rest, the gap is sufficiently large that little to no charge is passed. A small amount of force brings the two terminals in contact. The resistance of the bridge is reduced as further pressure is applied. Given that the contact between the two terminals results from the physical properties of the printed object and not a finger, this type of pressure sensor generally provides more consistent values.

<figure><img src="image_10.png" /><figcaption>Fig. 8. Spring Pressure Sensor and exploded view</figcaption></figure>

**Flex Sensor.** PrintPut also provides the ability to print flex sensors. To do so, a solid line of conductive filament is printed through a thin or hollow structure, along the axis of intended interaction (Figure 9, top). Flex sensors are analog resistive sensors where one end of the filament acts as the emitter and the other is the receiver. When the structure is flexed, the carbon particles in the filament move further away from each other. As a result, the resistance of the circuit proportionally increases. One can also create a flex sensor using an elongated spring pressure sensor by taking advantage of the fact that its layers move closer as the structure is bent (Figure 9, bottom).

<figure><img src="image_11.png" /><figcaption>Fig. 9. Flex Sensors. Top: Single line method. Bottom: Elongated pressure sensor method.</figcaption></figure>

## 7 Limitations

We found that when dealing with a large amount of adjacent touch points, one should space them at least 3mm apart. This recommendation ultimately limits PrintPut's touch resolution. One could overcome this with additional hardware or improved
signal processing (such as with the touch pad), but such detailed resolution is likely
unnecessary for the demands of a disposable prototype. In addition, the material prop-
erties of conductive filament and the process of printer extrusion results in slightly
inconsistent conductivity for seemingly identical prints. Simply baselining sensor
values or adjusting pull-down resistors can help resolve this behavior. Lastly, printing
very large 3D models may be slower than desired for rapid-prototyping purposes (i.e.
several hours). This could be addressed with techniques that print structures as
wireframes with high-resolution sections, such as WirePrint [7].

8 Conclusion

In this paper, we introduced PrintPut, a category of 3D printed objects with a new dimension of interactivity. We presented a collection of interactive widgets that a designer can integrate into their models to help inform decisions when prototyping, including buttons, pressure sensors, sliders, touch pads, and flex sensors. PrintPut combines physical and interactive sketching into the same process, allowing sensors to be printed seamlessly onto 3D objects without external sensor hardware.

References

1. Gong, N.-W., Steimle, J., Olberding, S., et al.: PrintSense: a versatile sensing technique to support multimodal flexible surface interaction. In: SIGCHI Conference on Human Factors in Computing Systems, pp. 1407–1410. ACM Press, New York (2014).

2. Holman, D., Fellion, N., Vertegaal, R.: Sensing Touch Using Resistive Graphs. In: 2014 conference on Designing interactive systems, pp. 195–198. ACM Press, New York (2014)

3. Ishiguro, Y., Poupyrev, I.: 3D printed interactive speakers. In: SIGCHI Conference on Human Factors in Computing Systems, pp. 1733–1742. ACM Press, New York (2014)

4. Kawahara, Y., Hodges, S., Cook, B.: Instant inkjet circuits: lab-based inkjet printing to support rapid prototyping of UbiComp devices. In: 2013 international joint conference on Pervasive and ubiquitous computing, pp. 363–372. ACM Press, New York (2013)

5. Leigh, S.J., Bradley, R.J., Purssell, C.P., Billson, D.R., Hutchins, D.A.: A simple, low-cost conductive composite material for 3D printing of electronic sensors. PLOS ONE. 7, 11, 1–6. (2012)

6. Maker Geeks. Conductive ABS Filament, www.makergeeks.com/co3dfi.html

7. Mueller, S., Im, S., Gurevich, S., Teibrich, A., Pfisterer, L., Guimbretière, F., Baudisch, P.: WirePrint: 3D Printed Previews for Fast Prototyping. In: 27th annual ACM symposium on User interface software and technology, pp. 273–280. ACM Press, New York (2014)

8. Olberding, S., Gong, N.-W., Tiab, J., Paradiso, J.A., Steimle, J.: A cuttable multi-touch sensor. In: 26th annual ACM symposium on User interface software and technology, pp. 245–254. ACM Press, New York (2013)

9. Rendl, C., Greindl, P., Haller, M., Zirkl, M., Stadlober, B., Hartmann, P.: PyzoFlex: printed piezoelectric pressure sensing foil. In: 25th annual ACM symposium on User interface software and technology, pp. 509–518. ACM Press, New York (2012)

10. Savage, V., Chang, C., Hartmann, B. Sauron: embedded single-camera sensing of printed physical user interfaces. In: 26th annual ACM symposium on User interface software and technology, pp. 447–456. ACM Press, New York (2013)