Getting Started with Haptic Feedback (Arduino Guide)

The DRV2605 breakout board from Adafruit.

Adafruit provides a breakout board for the DRV2605 haptic driver from Texas Instruments. Although the example tutorial included with the product describes a quick way to set up the driver with an eccentric rotating mass (ERM) motor, we prefer using a linear resonant actuator (LRA) for increased precision and enhanced haptic feedback. You can use the breakout board with an Arduino Uno to quickly make a prototype of a system that delivers precise vibrotactile cues.

Additional Resources

Creating Haptic Feedback

Step 1: Soldering

Solder the header strip onto the breakout board, and solder the LRA onto the breakout board. After this step, your DRV2605 breakout board should look like this:

Step 2: Wiring and Hookup

Connect VIN on the DRV2605 to the 5V supply of the Arduino

Connect GND on the DRV2605 to GND on the Arduino

Connect the SCL pin to the I2C clock SCL pin on your Arduino, which is labelled A5

Connect the SDA pin to the I2C data SDA pin on your Arduino, which is labelled A4

Connect the IN pin to an I/O pin, such as A3

Step 3: Testing and Creating Effects

Adafruit provides a very useful Arduino library for the DRV2605 that you can use to get started. In particular, we recommend looking through the example code to get an idea of the effects you can produce. In page 57 and 58 of the DRV2605 datasheet, you can find a table of all the effects you can produce “out of the box.”

Step 4: Creating Your Own Waveforms

Since you can also set the intensity of the LRA in realtime, you can design your own waveforms and effects by changing the value over time. Adafruit also provides an example for setting the value in realtime on Github. You can combine this example code with a waveform design tool like Macaron to customize the feedback provided by your new Arduino-powered haptic device!