Haptic / tactile feedback capability for touchscreen?

Let Sim Innovations know about your Air Manager experience and let us know about your dream feature addition

Moderators: russ, Ralph

Post Reply
Message
Author
jgrumby
Posts: 3
Joined: Sun Aug 04, 2019 12:49 pm

Haptic / tactile feedback capability for touchscreen?

#1 Post by jgrumby »

Dear Air Manager developers and community:

I would like to implement haptic feedback to an Air Manager panel running on a touch screen.

The Texas Instrument DRV2605L driver chip ($7 on a breakout board, e.g., https://www.adafruit.com/product/2305 and one or more eccentric DC vibration motors, e.g., https://www.adafruit.com/product/1201 ($2 each) would be all that is required. The 2605L is driven from an Arduino and 3~ 5 VDC. It includes over 100 different touch "feels", and provides the driving circuitry for the motor, including braking, to provide a wide range of feedback. The motors can be attached with adhesive to the touch panel front, sides or back.

In order to implement this, Air Manager would need to provide some form of event notification whenever the touchscreen is touched/selected. Even better would be to identify whatt kind of event took place, in which case a different touch response could be provided. Here are some examples:

* Binary switch (lights, power): strong, percussive event for ON; similar, but distinct event for OFF
* Multi-position switch (e.g., flaps): gradually stronger events as switch is moved through its range
* Push-button (clock, display change): short, percussive event when touched
* Rotary-dial: event when selected, different event when turned (possibly even distinguishing direction), Push-button event above for button press

All of this logic would reside within the Arduino; all that is needed is the message from Air Manager.

Being new to the program, I don't know if this capability is already present (I searched the forums, but did not come with anything), or if it would be a new feature request.

In any event, thoughts welcome. I think such a touch/haptic capability would add even more realism and functionality to touchscreen-based panels. It should be inexpensive and straightforward to implement. I would be happy to lead the Arduino side of the development (parts are already on their way).

All thoughts welcome, and thanks again for making a great product.

-Jonas

User avatar
Ralph
Posts: 7926
Joined: Tue Oct 27, 2015 7:02 pm
Location: De Steeg
Contact:

Re: Haptic / tactile feedback capability for touchscreen?

#2 Post by Ralph »

Everything has a pressed and released callback, that should already be enough I think. The type of input is something you can specify yourself within the input callback.

User avatar
Sling
Posts: 5239
Joined: Mon Sep 11, 2017 2:37 pm
Contact:

Re: Haptic / tactile feedback capability for touchscreen?

#3 Post by Sling »

Welcome,

That’s a very interesting project. What type of motor and how many are you thinking of using for each monitor?

AM can definitely provide the output you are seeking. It could even host the Arduino code on a message port enabled board.

Let us know if you need help and be sure to post updates on how this project goes.

Tony

jgrumby
Posts: 3
Joined: Sun Aug 04, 2019 12:49 pm

Re: Haptic / tactile feedback capability for touchscreen?

#4 Post by jgrumby »

Thank you both for the prompt responses.

Regarding hardware, Texas Instruments makes a very inexpensive ($7) driver chip for haptic feedback. It is the DRV2605L ($7 on a breakout board, e.g., https://www.adafruit.com/product/2305). It includes both a library of over 100 common touch feels, and also provides the FET drive circuitry for both AC and (the more common) DC electric motors. Datasheet is here (extensive!): http://www.ti.com/lit/ds/symlink/drv2605l.pdf. The chip communicates via I2C to any standard microcontroller, needs only 3 to 5 VDC to operate, and can drive motors up to 85 mA.

If interested, the listing of all 123 haptic waveforms available appears in the table on pp. 63-64 of the datasheet. As can be seen, there is a wide of waveforms that can be used for different events. Also, the chip allows "stacking" several individual waveforms together for a complex response. This is probably overkill for the AM application, but is nice to have, in any event.

The motors I was thinking of using are eccentric DC vibration motors, e.g., https://www.adafruit.com/product/1201 ($2 each) would be all that is required.

My thinking was to secure one or several motors on the periphery, side and/or back of a typical 21" ~ 24" desktop touchscreen monitor that will serve as the primary instrument panel with X-Plane. I have a Knobster already that works well. Parts on are on the way, and I will experiment with what works best to get a consistent haptic response across the panel. If more than one motor is required, I will see if a single DRV2605L can drive more than one motor, or simply use one 2605L chip for each motor. It's a simple matter to link all of them together in a single of a function call to drive all of them over I2C from the Arduino.

I will also play with adhesives to get the best coupling from the motor to the touchscreen. I'm thinking a rigid adhesive like epoxy, wood glue or even hide glue (doesn't creep and is very rigid; reason it is used in stringed instruments) would be best to couple as high a frequency as possible from the motor to the panel.

Initially I will just set up a simple Arduino program (no AM) to go through some responses and see how they feel on the panel. I will report my findings. If it looks promising, then I will begin the process of tying into Air Manager (which I have no experience with yet, and will likely need some help from the AM community on) to coordinate screen touches to haptic feedback.

I could envision several different profiles that could be loaded for a person's personal tastes in terms of the switch feedback, which is easy to do, given the pre-existing library in the DRV2605L. It would be a simple matter of simply mapping a desired response to an event. (See some candidate AM events that came to mind in the original posting).

My motivation for this is that we already have the visual (AM panel) + the aural (Flight simulator, e.g., sound of a switch clicking). If we can add a tactile element as well, then all three primary senses are engaged when a control is changed. With some luck, the experience could be a suitable facsimile for a real hardware panel.

Further thoughts welcome. I will provide an update once I have a chance to get some testing done on the hardware above.

Thanks again for the feedback!

jgrumby
Posts: 3
Joined: Sun Aug 04, 2019 12:49 pm

Re: Haptic / tactile feedback capability for touchscreen?

#5 Post by jgrumby »

Hi Everyone,

Just a bit of an update. I managed to test the little button motor mentioned above on a standard video monitor. The motor comes with an adhesive tape that I used to place the motor at several points on the monitor, including the edge of the screen, center of the screen (!), top, side, and back of the bezel. I threw a quick Arduino program together to exercise some of the default responses from the DRV2505 driver chip.

The results were, unfortunately, rather disappointing. I couldn't feel anything with my fingers for any of the motor placements. The motor is actually very tiny, and it may be too much to ask it to move such a large mass as a standard 24" monitor screen.

I will explore using a larger motor if I have some time, although some further reading suggests that in actual panel-based haptic feedback systems the panel is suspended or floated to minimize the mass and allow it to move. That is above my pay grade, I am afraid, to try to modify a standard touchscreen monitor to do this.

In any event, if I re-visit this, I will report any additional results, good or bad.

Thanks again for the feedback everyone.

-Jonas

Post Reply