Appearance
Haptics 101
A simple way to explain haptics is: “Haptics is to touch as optics is to sight,” as William Provancher puts it. Although this chapter is titled Haptics 101, it is not intended as a complete introduction to the field. Instead, it marks the starting point of my own exploration of vibrotactile actuators.
There are many excellent resources for learning about haptics. Two useful introductory resources I have found are learnhaptics.org and Simple Haptics by Camille Moussette.
I started with trying out three different actuators
- An ERM actuator - flat coin button type bought from Ali Express.
- An LRA - a flat rectangular type bought from Ali Express.
- iPhone Taptic Engine, which is also an LRA but in an apple way!
I used ESP32 and RP2040 microcontroller boards with PlatformIO for all my experiments.
ERM
An ERM or Eccentric Rotating Mass actuator is a mini DC motor with an unbalanced mass on it, which will create vibrations while rotating. So this is basically a miniature DC motor which you can even drive directly from a 3.3/5 V micro controller (even though it is not recommended).
I have a 10mm flat button type motor with a max rpm of 12000 at 3V. This is a very common vibration motor usually available everywhere. I tried it directly driven from my ESP32, at various intensities (different voltages, or very technically speaking - at different PWM duty cycles).
Running a vibration motor (or any motor) directly from a micro controller is not at all recommended. There are many ways - MOSFET, H Bridge, motor drivers, etc , but there are also dedicated haptic drivers which will be the best way to run. DRV2605L by TI is a popular and one of the best haptic motor drivers. It is a necessity for driving an LRA but nice to have for an ERM actuator
ERM with DRV2605L
DRV2605L is a closed loop haptic motor driver with an inbuilt library of vibration patterns. It use I2C protocol to communicate with, so I connected my ESP32 and DRV driver with 4 wires (i2c) and the DRV driver to vibration motor (+ and -).

There are 116 prebuilt waveforms in the DDRV library which can be selected and triggered through i2c communication.

These waveforms are common for both ERM and LRA actuators, the only thing to do is to tell DRV which actuator is connected while configuring the DRV.
I mounted the actuator on a 3D printed body, and tried a few waveforms from the library.
Here, I tried the three waveforms below in the same order, twice each.
- Strong Click 100%
- Transition click 1 -100%
- Transition Ramp Down Medium Smooth 2 - 100 to 0%
As mentioned by many others, haptic feedback is something that you can only know by experiencing. So, the only thing you can notice in this video is the movement of the actuator mount (3D print) and the sound. That being said, I am attempting to visually communicate the haptic behaviours other than through scientific graphs in the upcoming chapters.
LRA
An LRA, or Linear Resonant Actuator, is a vibration motor that makes an oscillating force across a single axis. So the movement is linear—back and forth—unlike an ERM’s rotational motion. Because of this, just feeding a DC to its terminal wont make it run, it needs a driver that changes the polarity in certain ways. This is why a haptic driver like DRV2605L is a necessity to run an LRA.
I tried with my LRA and DRV. The LRA I have is a 1.2V, 100mA tiny rectangular LRA that I bought from Ali Express, not much details available. The connection is same as that of an ERM - DRV combination. I tried the same waveforms in the library

This is my setup, I didn’t add a video because there is nothing to notice in the video. The intensity of the haptic feedback is very small compared the earlier one so neither a movement nor a sound is captured.
Taptic Engine
A Taptic Engine is an LRA itself but in an apple way. Apple’s haptics is much praised and thats why I am exploring taptic engine even though it is not officially sold and can’t be used in any professional/industrial projects.
I tried to run this with DRV2605L as any other LRA, which is kind of experimental. It appeared a bit different than the previous LRA, and obviously much different than the ERM. It is very stronger, especially the first wave, the strong click.
I will try to compare the experience of these three along with visually communicating it in the upcoming chapters.