Adafruit Drv2605 Haptic Controller Breakout
Adafruit Drv2605 Haptic Controller Breakout
Adafruit Drv2605 Haptic Controller Breakout
Guide Contents 2
Overview 3
Pinouts 6
Power Pins 6
I2C Pins 7
Other! 7
Assembly 8
Prepare the header strip: 8
Add the breakout board: 9
And Solder! 10
Attach Motor 11
Wiring & Test 13
Wiring for Arduino 13
Download Adafruit_DRV2605 14
Load Demo Sketch 14
Multiple Waveforms 17
Audio 17
Downloads 19
Datasheets 19
Schematic 19
Fabrication print 19
The DRV2605 from TI is a fancy little motor driver. Rather than controlling a stepper motor
or DC motor, its designed specifically for controlling haptic motors - buzzers and vibration
motors. Normally one would just turn those kinds of motors on and off, but this driver has
the ability to have various effects when driving a vibe motor. For example, ramping the
vibration level up and down, 'click' effects, different buzzer levels, or even having the
vibration follow a musical/audio input.
We put this nice chip onto a breakout board. it works with both 3V and 5V power/logic, we
have code specifically for Arduino but porting it to any I2C-capable processor should be
quite simple. Check it out and get buzzing!
Power Pins
The motor driver/controller on the breakout requires 3-5V power. You can use either,
whichever logic level you use on your embedded processor
I2C Pins
SCL - I2C clock pin, connect to your microcontrollers I2C clock line. This pin can be
used with 3V or 5V logic, and there's a 10K pullup on this pin.
SDA - I2C data pin, connect to your microcontrollers I2C data line. This pin can be
used with 3V or 5V logic, and there's a 10K pullup on this pin.
Other!
IN/TRIG - This is a general purpose pin that can be used for a couple different uses.
One use is to read analog audio in to control the audio-to-haptic code. Another use is
to 'trigger' the effects to go rather than sending a I2C command.
Attach Motor
We prefer to attach the little
vibration motor directly to the
Motor+ and Motor- pads
Solder in place
Connect Vin to the power supply, 3-5V is fine. Use the same voltage that the
microcontroller logic is based off of. For most Arduinos, that is 5V
Connect GND to common power/data ground
Connect the SCL pin to the I2C clock SCL pin on your Arduino. On an UNO & '328
based Arduino, this is also known as A5, on a Mega it is also known as digital 21 and
on a Leonardo/Micro, digital 3
Download Adafruit_DRV2605
To begin controling the motor chip, you will need todownload the Adafruit_DRV2605
Library from our github repository (http://adafru.it/eh0). You can do that by visiting the
github repo and manually downloading or, easier, just click this button to download the zip
When you are ready to place the full waveform sequence, send thego() command!
Audio
Schematic
Click to embiggen
Fabrication print