Appearance
Quantifying Actuator Performance
Before diving into designing haptic feedback, it’s crucial for me to characterise the performance of actuators that currently exist. This process helps me understand how each actuator delivers haptic feedback, including their strengths and weaknesses, and which signals yield the best results. It will be a scientific approach, involving the measurement of vibrations, data processing, and analysis. So, the goal here is to graphically plot the vibration measurements of each actuator with same waveform, and understand the difference from the graph.
Measurement Setup
The result of vibro-tactile actuators is eventually vibrations, so I am using an accelerometer to measure the vibration. I mount all three actuators on a 3D printed body. I mechanically attached a Seeed Studio XIAO nRF52840, which has an inbuilt accelerometer, to the same part. Below is my setup

For the software part, I made a Python script that can communicate with the ESP32 to activate the actuators using inbuilt DRV library waveforms and communicate with the accelerometer to read the data.
Data Processing
I am using Python for data processing and I chose Spyder as the environment. This is a bit experimental for me as I am not an expert in data processing and analysis.

Here is my workflow:
- I will input the DRV library waveform number in the PC (Python,Spyder).
- ESP 32 will recieve it and actuate the ERM actuator with the corresponding waveform.
- The accelerometer will measure the acceleration in the X, Y, and Z directions and dump the data serially to PC.
- This will be repeated for the LRA and Taptic Engine with the same waveform.
- The Python script will receive all the data and save it as separate CSV files for each actuator.
- This data will be trimmed, cleaned, and aligned.
- The resultant magnitude of acceleration in the X, Y, and Z axes will be plotted against the common time axis.
Analysis
My intention is to analyze these graphs and relate them to real-world experiences of haptic feedback. This will help me understand what is and is not possible with these actuators. We will examine a few waveforms as examples and relate their characteristics to the sensations they produce. Please note that the measurements are not super precise, and that only minimal data cleaning and processing are applied, as the goal is to develop a general understanding.
A few technical terms to keep in mind:
- Vibration is measured along the X, Y, and Z axes in g (1 g ≈ 9.8 m/s²).
- We will calculate the magnitude of the resultant acceleration across all three axes. Meaning, combining in to one single number that tells how much actuator is shaking at that moment.
- The peak value is the highest measured magnitude, meaning, the strongest single moment of vibration.
- The RMS is the typical level across the whole buzz — a fairer measure of overall strength than the peak, which can be one brief spike.
- The crest factor describes how spiky the signal is. It is the peak value divided by the RMS value; a higher crest factor indicates sharper peaks relative to the overall vibration level.
16 - 1000 ms Alert 100%
Let's look at Waveform 16 in the DRV library, which produces a 1-second steady vibration at 100% intensity. This simple, long actuation is a good starting point for the analysis.
This graph plots the magnitude of each actuator, aligned to the triggering time. Let’s see what we can infer from it.
- From the peak value, Taptic engine is much stronger than the other two. LRA is stronger than the ERM.
- Even though the Taptic peak value is 14, it is because of one particular spike and most other spike falls below 10.
- The crest factor for Taptic is the highest, which means it has more spikes. LRA has the most uniform vibration.
- The rising time for ERM is higher than the other two, meaning ERM takes more time to reach full strength.
Now let me point out what is the feel and experience I got when from these actuators when I hold my finger on the 3D printed part.
- ERM - Very mild but smooth. I felt something is happening inside the part I touch, but not directly to my finger!
- LRA - Stronger and sharper compared to ERM but smooth and even. I can feel those vibration directly to my finger.
- Taptic - Very Very Stong and spiky. I felt thouse pulses hitting directly to my finger and very deep.
Interpretation
The strong, smooth and spiky nature of actuation can be figured out from the graph. A higher magnitude gives a stronger sensation. Spiky graph and hiher crest factor indicates the spiky texture. LRA here has the lowest crest and produces the most uniform buzz.
NB : The peak value says the Taptic is several times stronger than LRA, but you won't feel it that large when you hold it. This is because human touch compresses intensity and it is not linear. Taptic engine is clearly the strongest but not by the factor that numbers suggest.
1 - Strong Click 100%
This is should feel like a click with 100% intensity as its name. Tried it in all three and this is what I felt
- ERM - Nothing felt evidently, even though got a feeling somehitng happened inside the body I am touching. But when i holded the part without placing it on the table, I got a bit more evident click feeling, but a broader click kind feeling, not a sharp tick!
- LRA - Sharp and evident short vibratory effect! it was even stronger when I holded it without placing on table.
- Taptic - Strongest! but something more similar to the ERM, not like a sharp even vibration.
Let's now look in to the graphs!
- The ERM is very weak and even the peak is around 0.08g only. Very noisy and the peaks are not sharp but broader.
- LRA has much beter peak which is 1.8g and very defined from first to last, a gradual attack and a faster decay, Peaks are sharp!
- Taptic very strong, spiky and has the fastest attack - very immediate. But it has a slow decay
One important parameter related to touch sensitivity that I missed to mention is frequency. It is very significant when analyzing vibration. I ploted the frequency domain for each actuator, please note that I didnt do much data cleaning so it might not be very smooth.
From the FFT graph we can analyse the frequancy at which the vibrations are strong
- ERM : ~85Hz
- LRA : ~185Hz
- Taptic : ~140Hz
Human skins are not equally sensitive to all frequencies, the sensitivity is maximum around 200-300Hz and fall off below that. LRA is the closest, Taptic a little below but ERM has the lowest and it is kind of evident from the experience itself. ERM here has double disadvantage, runs at low frequency and has least acceleration.
Interpretation
ERM has the lowest peak, probably because of its slow attack — it may need more time to reach the higher value we saw in waveform 16. It operates at ~85 Hz, a low frequency somewhat below the range where skin is most sensitive, so it is doubly disadvantaged.
LRA is the most defined and uniform of the three, with a much higher peak than the ERM and the cleanest stop. At ~185 Hz it also sits closest to the most sensitive range.
Taptic is the strongest by a wide margin, even though its frequency is slightly lower than the LRA's. Its spiky, uneven peaks give it a rougher, more textured character rather than the LRA's smooth buzz.