Getting Started with Haptic Feedback (Arduino Guide)

The DRV2605 breakout board from Adafruit.
The DRV2605 breakout board from Adafruit.

Adafruit provides a breakout board for the DRV2605 haptic driver from Texas Instruments. Although the example tutorial included with the product describes a quick way to set up the driver with an eccentric rotating mass (ERM) motor, we prefer using a linear resonant actuator (LRA) for increased precision and enhanced haptic feedback. You can use the breakout board with an Arduino Uno to quickly make a prototype of a system that delivers precise vibrotactile cues.

Materials & Supplies

Hardware

Software

Additional Resources

Creating Haptic Feedback

Step 1: Soldering

The DRV2605 breakout board attached to a LRA.
The DRV2605 breakout board attached to a LRA.

Solder the header strip onto the breakout board, and solder the LRA onto the breakout board. After this step, your DRV2605 breakout board should look like this:

Step 2: Wiring and Hookup

  • Connect VIN on the DRV2605 to the 5V supply of the Arduino
  • Connect GND on the DRV2605 to GND on the Arduino
  • Connect the SCL pin to the I2C clock SCL pin on your Arduino, which is labelled A5
  • Connect the SDA pin to the I2C data SDA pin on your Arduino, which is labelled A4
  • Connect the IN pin to an I/O pin, such as A3

Step 3: Testing and Creating Effects

Adafruit provides a very useful Arduino library for the DRV2605 that you can use to get started. In particular, we recommend looking through the example code to get an idea of the effects you can produce. In page 57 and 58 of the DRV2605 datasheet, you can find a table of all the effects you can produce “out of the box.”

Step 4: Creating Your Own Waveforms

Since you can also set the intensity of the LRA in realtime, you can design your own waveforms and effects by changing the value over time. Adafruit also provides an example for setting the value in realtime on Github. You can combine this example code with a waveform design tool like Macaron to customize the feedback provided by your new Arduino-powered haptic device!

Pre-Orders Start Today

The wait is over. We’ve finished the design, iterated on the hardware, and written thousands of lines of code. Now, we’re ready to start collecting pre-orders for Moment, the first device that communicates entirely through your sense of touch.
For the first 24 hours, backers will receive a special early bird price of $99 — you won’t be able to get this price anywhere else, ever again.

Spread the word.

Help us bring Moment to as many people as possible. Share Moment with your friends on Facebook, Twitter, Instagram, or elsewhere!

Tag us in your post, and we’ll send you free Somatic Labs swag.

3D Printing: Ready for mass market?

Shrek 3D Print

While revising the 3D design for Moment, I started off using a Makerbot Replicator at TechShop. These machines were the first to usher in an era of accessible consumer 3D printing. The bundled software is easy to use, and the printers generally work well. That said, with a $2,000 price tag, they aren’t truly accessible to the average consumer, and a TechShop membership can also be expensive if you don’t use it regularly. With affordable rapid-prototyping in mind, I began asking “Can you get started 3D printing for less?”.

Now, with the Monoprice MP Select Mini, you can. At an MSRP of $200, I decided to get one and try it out for myself. It doesn’t disappoint. It works with a wide range of filaments (ABS, PLA, XT Copolyester, PET, TPU, TPC, FPE, PVA, HIPS, Jelly, Foam, Felty), including a PLA-based wooden filament from Hatchbox. After 3D printing a few models of Shrek and some geometric Pokemon, I was impressed.

Pokemon 3D Print

The Good

  • absurdly cheap ($200)
  • heated print bed
  • compatible with many different filaments
  • solid exterior built of steel and aluminum (very few plastic parts)
  • full color LCD display on the printer
  • MicroSD card slot
  • works with Cura software from Ultimaker
  • possibly capable of connecting to wifi networks in a future firmware update
  • print bed leveled out of the box
  • active user community
  • 1-year limited warranty
  • extremely accurate Z-axis motor (possibly more than 100 micron resolution)

The Bad

  • limited print space (120x120x120 millimeters)
  • very minimal instructions – debugging can be hard
  • cheap built plate material (scratches easily)
  • imprecise temperature regulation
  • no enclosure or hood around prints
  • non-standard parts that require warranty replacement or buying a new printer

Conclusion

If you’re looking to get started with 3D printing, or want to try out different filament types inexpensively, buy this printer. Its price sets it apart from the competition. Any comparable printer is easily 3x the price, but the additional cost may also come with improved reliability—only time will tell whether the MP Select Mini is a durable product.

The Future of 4D Home Cinema: A Haptic Effects Track

Diagram of 4D Movie Theater
Diagram of a 4D movie theater from Wikipedia.

With the rise of Netflix and Youtube as dominant platforms for video consumption, fewer people are visiting theaters to watch movies. An increasing amount of multimedia content will be designed for the home theater as these streaming services grow their libraries. Netflix users consume content on whichever screen is available: a laptop, tablet, or smartphone. As the user experience for content consumption shifts towards mobile applications and at-home viewing, the interactive elements of 3D and 4D film previously reserved for movie theaters will transition to technologies easily adopted by households.

Good video is engaging – it tells a compelling story with excellent production value. Since there is increasing competition for viewership between different streaming platforms, devices, and content production studios, there is an increasing demand for differentiated content – content that provides a unique experience to its viewers. Continue reading “The Future of 4D Home Cinema: A Haptic Effects Track”

Temperature Feedback with the Thermoelectric (Peltier) Effect

Photograph of a thermoelectric cooler (Peltier diode)
A Peltier diode available from Sparkfun Electronics.

Vibrotactile pulses (e.g. the buzzing of a cell phone or game controller) can provide users with real-time feedback in a computer interface, but it’s not the only way to transmit information through the sense of touch. Modulating the temperature of the surface of a device can also provide additional information to users.

When a current flows through a junction between two different conductors, heat can be generated or removed from the junction. This phenomenon is called the Peltier effect, named after physicist Jean Charles Athanase Peltier. Different conductive materials that exhibit a Peltier effect will generate or remove different amounts of heat proportional to the amount of current running through the junction – the Peltier coefficient measures how much heat is carried for every unit of charge flowing through the device. Continue reading “Temperature Feedback with the Thermoelectric (Peltier) Effect”

How It Works: Linear Resonant Actuators

Diagram of a linear resonant actuator.
Diagram of the construction of a linear resonant actuator.

A linear resonant actuator is a vibration motor that produces an oscillating force across a single axis. Unlike a DC eccentric rotating mass (ERM) motor, a linear resonant actuator relies on an AC voltage to drive a voice coil pressed against a moving mass connected to a spring. When the voice coil is driven at the resonant frequency of the spring, the entire actuator vibrates with a perceptible force. Although the frequency and amplitude of a linear resonant actuator may be adjusted by changing the AC input, the actuator must be driven at its resonant frequency to generate a meaningful amount of force for a large current.

Continue reading “How It Works: Linear Resonant Actuators”

Electrovibration and Touchscreens: Creating Virtual Textures

Graph of Perceived Friction by Voltage
A higher voltage results in a higher perceived friction.

In 1950, Edward Mallinckrodt, a researcher at Washington University in St. Louis, accidentally discovered the phenomenon of electrovibration (also known as electrostatic vibration). He noticed that a brass electric light socket had a different texture when a light was burning than it did when the light was turned off. Along with a team of researchers, he began exploring the phenomenon in more detail by running experiments using an aluminum plate with insulating varnish. They wrote:

If the dry skin of one’s finger is moved gently over a smooth metal surface covered with a thin insulating layer, and the metal is connected to the ungrounded side of an 110-v power line, the surface has a characteristic feeling that disappears when the alternating voltage is disconnected.

Continue reading “Electrovibration and Touchscreens: Creating Virtual Textures”

How do devices provide haptic feedback?

Video game controllers, cell phones, wearables, and dozens of other consumer electronic devices make use of vibrotactile feedback to increase user engagement. There are three different types of hardware most frequently used to provide haptic feedback: eccentric rotating mass motors, linear resonant actuators, and piezoelectric actuators.

Continue reading “How do devices provide haptic feedback?”

Tips for Getting Started with the NRF51 from Nordic Semiconductor

While we were getting started with the hardware development for Moment, our first product, we needed to find a suitable way to handle the processing and Bluetooth Low Energy communications for the device. The NRF51 from Nordic Semiconductor, a BLE system on a chip, was very appealing for a few reasons:

  • Support for development using an open source toolchain (ARM GCC)
  • Good performance characteristics and excellent Bluetooth Low Energy support
  • An active community of developers
  • A rapidly improving SDK
  • A well-designed development board

That being said, we encountered a few things we wish we knew before starting:

  • The Keil development environment can be used for free, but use GCC if you plan to make larger or more complicated firmware code (there’s a ~40kb limit on the compiled binary size with Keil for free use)
  • In spite of that, debugging with Keil is much easier than with a GCC setup
  • The provided iOS and Android example apps have excellent demonstration of the over-the-air device firmware update (OTA DFU), but the core functionalities have only recently been split into modular components – integration with your own app can require a lot of tweaking
  • Many of the example programs included with the SDK require some modification until they can be effectively deployed to a new target board – making your own BSP (board support package) can be very useful if you make sure to properly include all the necessary definitions
  • If you plan to use OTA DFU, make sure to thoroughly understand the design constraints it imposes, as well as the structure of the bootloader

And some quick tips as you get started:

  1. Look into the NRF52, in case it will suit your needs more effectively
  2. Always use the latest SDK and documentation whenever possible – many tutorials you find in a Google search will use a different version of the SDK or SoftDevice, and searching for examples outside of the latest SDK documentation can be unproductive
  3. Use GCC. Keil has some great tools for development, but GCC is available across all platforms without restrictions. If you’re a Windows-only team without much price sensitivity, you probably will prefer Keil for its superior debugging.
  4. Have a solid game plan for integrating the chip into your own circuits. How will you update the firmware? What kind of a programmer will you use?
  5. The examples are a good starting point for quickly trying out different SDK components, but starting from scratch with your own code structure will help you keep your code more modular
  6. You can possibly order pre-programmed NRF51 chips, including the DFU OTA bootloader

The Texas Instruments DRV2603: A Simpler Chip

In the past, we’ve discussed driving a linear resonant actuator using a DRV2605 haptic driver chip from Texas Instruments. Though the DRV2605 chip provides plenty of features (audio to haptics, licensed effects from Immersion, and flexible I2C or PWM input), it also requires a more complicated integration with an existing circuit. Though an extra capacitor or two doesn’t introduce too much complexity, the DRV2605 also isn’t suited for circuits attempting to drive multiple motors at the same time. Since the chip uses I2C, its address remains the same in every chip and cannot be modified. As a result, integrating multiple DRV2605 chips on a single I2C bus requires an I2C switch or multiplexor – multiple slaves cannot be controlled by the same master on the same bus.

There must be a simpler way! And Texas Instruments provides the DRV2603 to provide a simpler option. The DRV2603 haptic driver forgoes the licensed effects and audio input for a simple PWM-only input. Each motor driven with a DRV2603 chip only needs a single digital output pin from a signal source that is capable of producing a signal from 10kHz to 250kHz will be capable of driving multiple motors simultaneously.

For haptics projects that rely on multiple actuators to produce feedback, the DRV2603 provides a simpler way to get started using linear resonant actuators.