\section{The limits}
During my postdoc at the University of Toronto I worked on the lack of haptic feedback in 3D gestural interaction.
-The Microsoft Kinect\footnote{\href{https://en.wikipedia.org/wiki/Kinect}{https://en.wikipedia.org/wiki/Kinect}} was just released.
+The Microsoft Kinect\footurl{https://tiny.one/Kinect} was just released.
It featured a motion capture system affordable for households.
-It followed the trend of \emph{natural} user interfaces, and was advertised as “\emph{You} are the controller”\footnote{\href{https://news.microsoft.com/2010/10/21/kinect-ads-you-are-the-controller/}{https://news.microsoft.com/2010/10/21/kinect-ads-you-are-the-controller/}}.
+It followed the trend of \emph{natural} user interfaces, and was advertised as “\emph{You} are the controller”\footurl{https://tiny.one/youAreTheController}.
Besides the discussion about the natural aspect of user interfaces in the previous chapter, this motivation to eliminate physical controllers also eliminated many useful, not to say essential, haptic properties of physical controlers.
This was already an issue with touch interaction, but there was at least the passive haptics of the surface.
In the case of 3D gestural interaction, the users have no haptic feedback when they interact with virtual objects.
The main difference is the frequency range: 1--1000Hz for haptics and 200--20kHz for sound.
Managing the amplitude is easier with vibrations because the required amplitude levels are much lower.
In the end, the shape parameter is in my opinion the bottleneck of complexity for the implementation of vibrotactile devices because it imposes a much higher sampling rate.
+However, a sound generation system is a complex design, especially with microcontrollers available at the time this project started.
-For the sake of simplicity, I opted for a simple design that enabled the precise control of frequency and anmplitude at the cost of a low control of the signal shape.
-The overall idea is to control the frequency and amplitude with PWM signals generated by a simple microcontroller.
+For the sake of simplicity, I opted for a straightforward design that enabled the precise control of both frequency and amplitude at the cost of a low control of the signal shape\footnote{Controlling the signal shape remains possible, with a software $\Delta\Sigma$ modulation \href{https://tiny.one/DeltaSigma}{https://tiny.one/DeltaSigma}.}.
+The overall idea is to control the frequency and amplitude with two PWM signals generated by the timers of a microcontroller (\reffig{fig:actuatorcircuit}).
The frequency signal typically ranges between 1--1000Hz.
The amplitude is controlled with the duty cycle of a high-frequency signal.
-We used voice coil actuators, therefore they behave like low-pass filters, which stabilizes this high-frequency signal to a lower-voltage signal, hence reducing the amplitude.
+We used voice coil actuators, therefore they behave like low-pass filters, which stabilizes this high-frequency signal, hence reducing the amplitude of the actuator's movement.
Our prototypes used 16MHz controllers with 8 bits timers, which gives a 62.5kHz loop with 256 levels of amplitude.
+It communicated with a host computer with a serial protocol over bluetooth.
\input{figures/actuatorcircuit.tex}
+As shown on \reffig{fig:wristbandprototypes}, the design of the prototypes was iterative.
+The first two prototypes used the Arduino LilyPad microcontroller board~\cite{buechley08}.
+These board are designed for wearables, so it made sense for this project.
+On the first prototypes, the components were sewn with conductive thread.
+It caused several issues.
+First, the thin conductive thread had a non negligeable resistance.
+Therefore it was necessary to multiply the connections to have enough power flowing in the circuit.
+Second, the elasticity of the wristband was convenient for comfort, but it caused short circuits that made the device unreliable.
+To alleviate these issues, I soldered the components on small protoboards, which I connected together with conductive thread.
+Now the issue was the connection between the thread and the pads.
+Using conductive glue was only a temporary fix because it would not stick long to the pads.
+Given the recurring technical issues, I designed a PCB for the third prototype, which was connected to the microcontroller, battery and actuators with wires.
+This new prototype uses an Arduino Mini Pro microcontroller board\footurl{https://tiny.one/ArduinoMiniPro}, wich includes the same microcontroller than the LilyPad: the Atmega 328P\footurl{https://tiny.one/ATmega328P}.
+This is a conveninent 8-bits microcontroller for small designs.
+The issue with this project is that it only has six timer channels, and I needed eight to control four actuators in frequency and amplitude.
+Therefore I used a common frequency signal for all actuators, and an individual Amplitude signal.
+This choice made sense given the type of tactile effects we planned to use, and that we will discuss in the next sections.
+
\begin{figure}[htb]
\centering
\includegraphics[width=\textwidth]{figures/wristband3protos}
\label{fig:wristbandprototypes}
- \caption[Haptic wristband prototypes]{Three iterations of haptic wristband prototypes.}
+ \caption[Haptic wristband prototypes]{Three iterations of haptic wristband prototypes. On the first prototypes, components were connected with conductive thread. On the second prototype, the components were soldered on protoboards that were connected with conductive thread. The third prototype used a home-made PCB connected with wires.}
\end{figure}
+The take-away is that of such prototypes requires both keeping in mind the design rationale, and having enough technical skills to implement it.
+It is critical to balance the trade-offs and making informed compromises.
+For example replacing condictive thread with wires was not a compromise afterall, and make the prototype more robust.
+The restrictions on signal shape and the common frequency were actual compromised.
+But it enabled a simple and robust design while keeping an expressive output vocabulary.
+
\subsection{Quantitative limitations}
focus on feedback rather than interaction