upgrading to a Taptic Engine (LRA) for premium clicks & speakerless audio #8000
thesohamdatta
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey everyone! 👋
I've been digging into the haptic code and current hardware setup in the repository, and I wanted to throw an idea out here for the next hardware iteration of Omi.
Right now, the Omi Consumer uses a standard 3V coin vibration motor (ERM). It works for simple buzzes, but it has that sluggish, spinning-mass feel that can make a device feel a bit like a buzzy toy rather than a premium AI companion.
What if we upgraded this to a Linear Resonant Actuator (LRA) driven by a dedicated TI DRV2605L haptic driver? It sounds fancy, but here is why it could be a game-changer for Omi's user experience—and why it's actually surprisingly easy to build.
The Cool Part: 2-in-1 Haptics + Speakerless Audio 🔊
An LRA is basically a voice-coil actuator. While it vibrates beautifully at its resonant frequency (delivering that satisfying Apple-style "click"), we can also drive it at higher frequencies (500 Hz to 2 kHz) to act as an acoustic transducer.
This means the Taptic Engine itself can emit clean, audible beeps, chimes, and alarms without us needing to add a physical speaker to the device. We get sound output for free with zero extra weight, cost, or enclosure changes!
We can use this to create a private, tactile language:
How We Can Do It (Without Extra Pins or Space Issues) 🛠️
I went through the nRF5340 board configurations and device trees to see if this is feasible. It turns out we can integrate it with zero new pins on the SoC:
0x5Aand the onboard LSM6DS3TR-C IMU sits at0x6A, they can safely share the existingI2C2bus (pinsP1.14andP1.15) with zero conflicts.P0.25. We can repurpose this as the active-high Enable (EN) pin for the DRV2605L. This drops the driver's standby current to < 1 µA when not vibrating, protecting our small 150mAh battery.D5.0mm x H2.5mm. A miniature 6mm coin LRA (like the Vybronics VG0640001D) isD6.0mm x H2.5mm. Since the thickness is identical, it fits perfectly under the casing covers. It only requires a tiny 1mm widening of the inner plastic frame slot.What the Code Looks Like (Zephyr RTOS)
Zephyr has native, out-of-the-box driver support for the DRV2605. We can declare the driver node under
&i2c2in our DTS overlays:And in
prj.conf:For Bluetooth, we can extend the current single-byte haptic characteristic (
CAB1AB96-2EA5-4F4D-BB56-874B72CFC984) to take a 3-byte command:0x01= ROM waveform,0x02= Real-time playback,0x03= Frequency tone).1to117, or sound frequency in Hz).Proposed Rollout Plan
haptic.cto parse the new BLE packets.I'd love to hear what the community and the hardware team think about this. Let's make Omi feel even more alive! 🚀
Beta Was this translation helpful? Give feedback.
All reactions