A FPGA Haptics Controller Marc Holbein John S. Zelek * ( ) University of Guelph, Canada (*) University of Waterloo, Canada E-mail: jzelek@uwaterloo.ca, mholbein@uoguelph.ca Abstract Wearable haptics necessitates using low power, small, inexpensive tactors that are typically used as pager mo- tors in cellular phones. One of their limitations is that it appears that control of their amplitude and frequency of operation is inherently linked. Existing haptics controllers have shortcomings such as limiting the electrical stimula- tion frequency to a single one or multiples of one, being confined to only a square wave, not being able to change the polarity and duty cycle on the fly to name a few. In or- der to explore and help define the electrical to mechanical mapping for electromagnetic (and other) tactors, a tighter controller is necessary. We report on such a controller that we developed based on FPGA (Field Programmable Gate Array) technology. The FPGA gate control program is hardware-based and is not limited by micro-controller event handling. The paper reports on our FPGA controller design and provides some examples of its use. 1. Introduction The objective is to develop a low cost, low power, portable haptic controller that is suitable for controlling various tactors and to explore how to decouple the inti- mate relationship between the intensity and frequency of mechanical vibration from input electrical stimulation of inexpensive tactors [1]. In essence, the objective is to pro- vide a tool that will provide an answer to the mapping of electrical stimulation to mechanical vibration with the intent of maximizing the bandwidth of communication of wearable tactors. Typical electrical signal control has been limited to providing PWM square waves, but our desire is to also be able to provide sine waves, offsets and the rever- sal of polarity on the fly. 2. Background 2.1 Controllers In the past, we have used two different motor controllers, one that we developed based on a DevaSys USB (Univer- sial Serial Bus) controller (referred to as the DevaSys con- troller) (see Figure 1) and one based on a PAK PWM con- troller (referred to as the PAK controller) (see Figure 2 ). The DevaSys controller board (see Figure 1) is a USB I2C/IO interfacing board, permitting the download of soft- ware into EEPROM for the controlling of output via the control from a PC hooked up via the USB interface and possibly powered by the USB interface. The board con- sists of an Intel 8051 enhanced micro-controller. In order to interface to the motors, a conditioning circuitry was con- structed consisting of two octal serial digital to analog con- verters, a 1 to 2 demultiplexer and four quad rail to rail op amps. Power is limited to what is available via the USB interface. A protocol was established for controlling up to 16 vibrating motors, which chiefly provides on and off times (the pulse width modulation parameters). Other pro- grammable parameters included defining minimum volt- age, maximum voltage and motor starting voltage. The software we embedded into EEPROM is essentially a loop that is based on the clock rate of the micro-controller and updates control signals to the motors based on the input set- ting conditions. Thus, the control is highly dependent on the tightness of the control loop and the micro-controller functionality. Given the loop control of the motors, the fre- quency range of the generated output signal is governed by a resolution dependent on increasing powers of two (i.e., 1, 2, 4, 8, 16, etc.). Albeit, the ability to control PWM frequency in this limited capacity provides another level of input control sophistication beyond what has been reported in the literature for haptic control [2]. A commercial Stamp PAK VB coprocessor (see Figure 2), for generating PWM (pulse width modulation) control via hardware (gates) has also been used. It can generate 8 channels of PWM simultaneously at TTL levels (5 Volts)