SparkFun Haptic Motor Driver - DRV2605L

Ready to add some good vibes to your project? Look no further than the SparkFun Haptic Motor Driver. This board breaks out Texas Instruments' DRV2605L Haptic Motor Driver, which adds meaningful feedback from your devices using the breakout and an Arduino-compatible device.

The DRV2605L is capable of driving two different types of motors, ERM and LRA. It is important to know, however, that the default firmware for the DRV2605L is set for use with ERM type motors. We have created an Arduino library that makes the DRV2605L easy to use with six different ERM effects and one LRA effect.

The SparkFun Haptic Motor Driver breakout board features six pins to provide power to the sensor and I2C bus. Additionally, a microcontroller that supports I2C is required to communicate with the DRV2605L and relay the data to the user by means of vibration.

  • Flexible Haptic and Vibration Driver for both ERM and LRA type motors
  • I2C Controlled Digital Playback Engine
  • Audio to Vibe
  • PWM input with 0--100% Duty-Cycle Control Range
  • Hardware Trigger Input
  • Built-in Waveform Sequencer and Trigger

SparkFun Haptic Motor Driver - DRV2605L Product Help and Resources

Haptic Motor Driver Hook-Up Guide

January 19, 2017

Good vibes only. Getting started with the Haptic Motor Driver.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels

Core Skill: Robotics

This skill concerns mechanical and robotics knowledge. You may need to know how mechanical parts interact, how motors work, or how to use motor drivers and controllers.

2 Robotics

Skill Level: Rookie - You will be required to know some basics about motors, basic motor drivers and how simple robotic motion can be accomplished.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • onebeartoe / about 7 years ago / 2

    I wrote a desktop Java application that works with the DRV2605L to help preview the different vibration patterns mentioned in the datasheet. It can queue up to 7 patterns for sequential execution.

    It communicates with the Arduino over serial communication, so you need RXTX for Java to get going.

    Here are some links to the source code and executable, for those interested:

  • Neuralian / about 6 years ago / 1

    These boards don't actually work, because of a design fault on VDD (See ChTacklind's comment below). They appear to work if you use an ERM motor because the power supply fluctuations are roughly correlated with motor commands, but the fault becomes obvious if you use an LRA motor. You can save $6.95 by driving your ERM motor directly from an (eg) Arduino PWM pin. That's not ideal, but it's better than this board.

    • LightningHawk / about 6 years ago / 1

      This is correct - the new board with corrected issues are on the way.

  • ardvark / about 6 years ago / 1

    I would like to use multiple DRV2605 breakout boards over I2C to control multiple vibration motors (with each board providing independent control of one vibration motor).

    Is this impossible due to each DRV2605 breakout board having the same fixed I2C address?

    If I were to instead use the trigger pin of each DRV2605 breakout board, is there a way to set each board to trigger a specific effect?

    • LightningHawk / about 6 years ago / 1

      You can - but not without some extra hardware. The CD74HC4067 analog/digital MUX breakout looks like a possible solution. The BLDR blog on this part has some example code and tips for solving just this sort of issue. You can use up to 16 different triggers on each of the IN/TRIG pins to trigger haptics effects independently. I haven't tested this so if you run into any issues with wiring or code let us know!

    • vs / about 6 years ago / 1

      Did you ever figure this out ? I too need to control 2 motors independatly. The only solution is maybe to use a teensy 3.2 that has 2 i2c busses.

  • Trevor_J_S / about 7 years ago / 1

    Does anyone have any suggestions for an LRA to use with this? I want to get "click" effects, and my thought is that an LRA would be better with these. However, you only sell and ERM, and I'm having trouble finding a reasonable source for LRAs. Alternatively, has anyone tried producing a "click" effect with an ERM?

    • LightningHawk / about 7 years ago / 1

      I could only find one source for the LRA type motors which is why the hook-up guide and examples are for the more common ERM type. Precision Microdrives seems to be the best place to find LRA motors.

      As far as producing a "click" you can use the waveform function, with the ERM motor, to write the waveforms of 17-45 (see page 60 of the data sheet) to produce a custom clicking effect. You can also customize these with various ramping/timing effects as well.

  • ChTacklind / about 7 years ago / 1

    It appears the schematic (and the example) have the Vdd miss wired. They show Vdd connected to the supply passing through a 1-µF capacitor in series. The data sheet says, "Vdd Supply input (2 to 5.2 V). A 1-µF capacitor is required." As is typical, said capacitor should not be in series, but it is a bypass capacitor to ground.

  • Member #900889 / about 7 years ago / 1

    Hi, I've downloaded DRV2605L Library from the site and also from Github but Arduino is not able to read it. It says that this library is not valid. Maybe is there an error? I'd need to fix this as soon as possible for my graduation project. Thanks

    • LightningHawk / about 7 years ago / 1

      In the Arduino folder in your documents there is a sub-folder called "libraries". In libraries create a new folder called SparkFun_DRV2605L. Place the .h and .cpp files from the github download in that folder. There is a link in the tutorial on how to install Arduino libraries and this is one of the examples.

  • Member #25711 / about 7 years ago / 1

    What are your thoughts on motor voltage rating? The board when used with say an arduino 5V is often paired with 3V motors and I'm not sure that's correct practice. I need a motor that will vibrate a metal detector shaft appropriately - do you have a recommendation?

    • LightningHawk / about 7 years ago / 1

      You're right--Not the correct practice. The ERM vibration motor we carry operates from 2.0V to 3.6V. It works perfectly off the regulated 3.3V power pin on the RedBoard. During the prototype and test phases I was able to get my hands on several ERM motor samples which could operate from 2V to 5V. The 5V motor vibrates with with a much stronger intensity which is why I used it in my foot massage application. Thank you for having a great eye so I could update this tutorial.

      As far as a recommendation...I'm not sure what the application is. Like silently feeling when you have detected metal on a beach? Which dev board do you currently use? If you only have one regulated output at a specific voltage then you should find a motor rated for that output. Depending on how much you need to feel the vibration I'd up the rating and the number of motors. But why not make a wrist band or pin it to your body? - It would be much easier to feel it that way.

  • Member #36473 / about 7 years ago / 1

    Has anyone tried driving an Apple Taptic Engine with this? Is it possible to get the mating connector for it?

Customer Reviews

No reviews yet.