CircuitPython module for the DRV2605 haptic feedback motor driver. See examples/ for a demo of the usage.

  • Author(s): Tony DiCola
class adafruit_drv2605.DRV2605(i2c, address=90)[source]

TI DRV2605 haptic feedback motor driver module.


The library selected for waveform playback. Should be a value of:

  • LIBRARY_TS2200A: TS2200 library A (the default)
  • LIBRARY_TS2200B: TS2200 library B
  • LIBRARY_TS2200C: TS2200 library C
  • LIBRARY_TS2200D: TS2200 library D
  • LIBRARY_TS2200E: TS2200 library E
  • LIBRARY_LRA: LRA library

See the datasheet for the meaning and description of effects in each library.


The mode of the chip. Should be a value of:

  • MODE_INTTRIG: Internal triggering, vibrates as soon as you call play(). Default mode.
  • MODE_EXTTRIGEDGE: External triggering, edge mode.
  • MODE_EXTTRIGLVL: External triggering, level mode.
  • MODE_PWMANALOG: PWM/analog input mode.
  • MODE_AUDIOVIBE: Audio-to-vibration mode.
  • MODE_REALTIME: Real-time playback mode.
  • MODE_DIAGNOS: Diagnostics mode.
  • MODE_AUTOCAL: Auto-calibration mode.

See the datasheet for the meaning of modes beyond MODE_INTTRIG.


Play back the select effect(s) on the motor.


List-like sequence of waveform effects. Get or set an effect waveform for slot 0-6 by indexing the sequence property with the slot number. A slot must be set to either an Effect() or Pause() class. See the datasheet for a complete table of effect ID values and the associated waveform / effect.

E.g. ‘slot_0_effect = drv.sequence[0]’, ‘drv.sequence[0] = Effect(88)’

set_waveform(effect_id, slot=0)[source]

Select an effect waveform for the specified slot (default is slot 0, but up to 7 effects can be combined with slot values 0 to 6). See the datasheet for a complete table of effect ID values and the associated waveform / effect.


Stop vibrating the motor.


Use an eccentric rotating mass motor (the default).


Use a linear resonance actuator motor.

class adafruit_drv2605.Effect(effect_id)[source]

DRV2605 waveform sequence effect.


Effect ID.


Raw effect ID.

class adafruit_drv2605.Pause(duration)[source]

DRV2605 waveform sequence timed delay.


Pause duration in seconds.


Raw pause duration.