Hybrid short haptics waveform generation and closed loop automatic braking

The hybrid method of algorithmic waveform generation and hardware-based BEMF monitoring with PMIC ensures consistent haptic acceleration, addressing inconsistencies due to part-to-part variation and aging, providing crisp tactile feedback on mobile and wearable devices.

WO2026019593A1PCT designated stage Publication Date: 2026-01-22QUALCOMM INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/US2025/036689
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-15
Filing Date
2025-07-07
Publication Date
2026-01-22

AI Technical Summary

Technical Problem

Existing haptic effects on mobile and wearable devices face challenges in achieving consistent acceleration profiles due to part-to-part variation, temperature changes, and aging, leading to undesired residual accelerations and inaccuracies in synthesized waveforms.

Method used

A hybrid approach combining algorithmic short waveform generation with hardware-based closed loop braking, utilizing a power management integrated circuit (PMIC) to monitor and dampen residual acceleration by adjusting the back electromagnetic field (BEMF) of a Linear Resonant Actuator (LRA).

Benefits of technology

This method ensures consistent haptic acceleration across variations, effectively damping out residual accelerations to achieve crisp and accurate tactile feedback, enhancing user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025036689_22012026_PF_FP_ABST
    Figure US2025036689_22012026_PF_FP_ABST
Patent Text Reader

Abstract

Systems and techniques are described herein for producing haptic effects. For example, a device can determine, based on one or more parameters, a drive voltage for an actuator associated with the device. The device can apply the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the device. The device can determine a back electromagnetic field (BEMF) associated with the acceleration waveform. The device can determine a braking voltage based on the BEMF. The device can apply the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.
Need to check novelty before this filing date? Find Prior Art

Description

HYBRID SHORT HAPTICS WAVEFORM GENERATION AND CLOSED LOOP AUTOMATIC BRAKINGFIELD

[0001] The present disclosure generally relates to producing haptic effects. For example, aspects of the present disclosure relate to hybrid short haptics waveform generation and closed loop automatic braking.BACKGROUND

[0002] Haptics effects (e g., haptic output) are widely used on mobile and wearable devices to create notifications, to emulate the tactile feel of mechanical buttons such as a keyboard or a home key on a mobile device, to create user feedback, as well as to be used with ringtones and many other use cases. For example, haptic effects can be used to create an experience of touch to a user that can mimic the feel of depressing a mechanical button by applying forces, vibrations, and / or motions to the user. As such, haptic effects can enhance the user experience by providing tactile responses to user interactions with digital devices.SUMMARY

[0003] The following presents a simplified summary relating to one or more aspects disclosed herein. Thus, the following summary should not be considered an extensive overview relating to all contemplated aspects, nor should the following summary be considered to identify key or critical elements relating to all contemplated aspects or to delineate the scope associated with any particular aspect. Accordingly, the following summary has the sole purpose to present certain concepts relating to one or more aspects relating to the mechanisms disclosed herein in a simplified form to precede the detailed description presented below.

[0004] Disclosed are systems, apparatuses, methods and computer-readable media for producing haptic effects. According to at least one example, an apparatus is provided for producing one or more haptic effects. The apparatus includes at least one memory and at least one processor coupled to the at least one memory and configured to: determine, based on one or more parameters, a drive voltage for an actuator associated with the apparatus; apply the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effectat the apparatus; determine a back electromagnetic field (BEMF) associated with the acceleration waveform; determine a braking voltage based on the BEMF; and apply the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

[0005] In some aspects, a method is provided for producing one or more haptic effects at a device. The method includes: determining, based on one or more parameters, a drive voltage for an actuator associated with the device; applying the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the device; determining a back electromagnetic field (BEMF) associated with the acceleration waveform; determining a braking voltage based on the BEMF; and applying the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

[0006] In some aspects, a non-transitory computer-readable medium is provided having stored thereon instructions that, when executed by at least one processor, cause the at least one processor to: determine, based on one or more parameters, a drive voltage for an actuator associated with the apparatus; apply the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the apparatus; determine a back electromagnetic field (BEMF) associated with the acceleration waveform; determine a braking voltage based on the BEMF; and apply the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

[0007] In some aspects, an apparatus is provided for producing one or more haptic effects. The apparatus includes: means for determining, based on one or more parameters, a drive voltage for an actuator associated with the apparatus; means for applying the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the apparatus; means for determining a back electromagnetic field (BEMF) associated with the acceleration waveform; means for determining a braking voltage based on the BEMF; and means for applying the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

[0008] In some aspects, one or more of the apparatuses described herein comprises a mobile device (e.g., a mobile telephone or so-called “smart phone”, a tablet computer, or othertype of mobile device), a wearable device, an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a personal computer, a laptop computer, a video server, a television (e.g., a network-connected television), a vehicle (or a computing device of a vehicle), or other device. In some aspects, the apparatus(es) includes at least one camera for capturing one or more images or video frames. For example, the apparatus(es) can include a camera (e.g., an RGB camera) or multiple cameras for capturing one or more images and / or one or more videos including video frames. In some aspects, the apparatus(es) includes at least one display for displaying one or more images, videos, notifications, or other displayable data. In some aspects, the apparatus(es) includes at least one transmitter configured to transmit one or more video frame and / or syntax data over a transmission medium to at least one device. In some aspects, the at least one processor includes a neural processing unit (NPU), a neural signal processor (NSP), a central processing unit (CPU), a graphics processing unit (GPU), any combination thereof, and / or other processing device or component.

[0009] Some aspects include a device having a processor configured to perform one or more operations of any of the methods summarized above. Further aspects include processing devices for use in a device configured with processor-executable instructions to perform operations of any of the methods summarized above. Further aspects include a non-transitory processor-readable storage medium having stored thereon processor-executable instructions configured to cause a processor of a device to perform operations of any of the methods summarized above. Further aspects include a device having means for performing functions of any of the methods summarized above.

[0010] The foregoing has outlined rather broadly the features and technical advantages of examples according to the disclosure in order that the detailed description that follows may be better understood. Additional features and advantages will be described hereinafter. The conception and specific examples disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Such equivalent constructions do not depart from the scope of the appended claims. Characteristics of the concepts disclosed herein, both their organization and method of operation, together withassociated advantages will be better understood from the following description when considered in connection with the accompanying figures. Each of the figures is provided for the purposes of illustration and description, and not as a definition of the limits of the claims. The foregoing, together with other features and aspects, will become more apparent upon referring to the following specification, claims, and accompanying drawings.

[0011] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this patent, any or all drawings, and each claim.

[0012] The preceding, together with other features and embodiments, will become more apparent upon referring to the following specification, claims, and accompanying drawings.BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Illustrative aspects of the present application are described in detail below with reference to the following figures:

[0014] FIG. 1 is a diagram illustrating an example of a system for generating haptic effects for a device, in accordance with some aspects of the disclosure.

[0015] FIG. 2 is a diagram illustrating examples of acceleration waveforms for producing haptic effects for a device, in accordance with some aspects of the disclosure.

[0016] FIG. 3 is a diagram illustrating an example of a system for generating haptic effects for a device that includes back electromagnetic field (BEMF) based braking, in accordance with some aspects of the disclosure.

[0017] FIG. 4 is a diagram illustrating an example of a linear model for modeling an LRA, in accordance with some aspects of the disclosure.

[0018] FIG. 5 is a table illustrating an example of model parameters of an LRA model, in accordance with some aspects of the disclosure.

[0019] FIG. 6 is diagram illustrating an example of user interface (UI) tuning tool for designing short haptic waveforms for haptics effects for a device, in accordance with some aspects of the disclosure.

[0020] FIG. 7 is a diagram illustrating examples of graphs comparing short haptic waveforms designed using the UI tuning tool of FIG. 6 with resulting experimental short haptic waveforms, in accordance with some aspects of the disclosure.

[0021] FIG. 8 is a diagram illustrating an example of an acceleration waveform generated using no hardware-based haptic braking, in accordance with some aspects of the disclosure.

[0022] FIG. 9 is a diagram illustrating an example of an acceleration waveform generated using hardware-based haptic braking, in accordance with some aspects of the disclosure.

[0023] FIG. 10 is a diagram illustrating an example of adaptive closed loop braking using BEMF, in accordance with some aspects of the disclosure.

[0024] FIG. 11 is a diagram illustrating an example of programmable calibration patterns, in accordance with some aspects of the disclosure.

[0025] FIG. 12 is a graph illustrating an example of BEMF reduction percentage versus braking amplitude (e.g., theoretical), in accordance with some aspects of the disclosure.

[0026] FIG. 13 is a flow diagram illustrating an example of a process for producing haptic effects, in accordance with some aspects of the disclosure.

[0027] FIG. 14 is a diagram illustrating an example of a system for implementing certain aspects described herein.DETAILED DESCRIPTION

[0028] Certain aspects of this disclosure are provided below for illustration purposes. Alternate aspects may be devised without departing from the scope of the disclosure. Additionally, well-known elements of the disclosure will not be described in detail or will be omitted so as not to obscure the relevant details of the disclosure. Some of the aspects describedherein can be applied independently and some of them may be applied in combination as would be apparent to those of skill in the art. In the following description, for the purposes of explanation, specific details are set forth in order to provide a thorough understanding of aspects of the application. However, it will be apparent that various aspects may be practiced without these specific details. The figures and description are not intended to be restrictive.

[0029] The ensuing description provides example aspects only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the example aspects will provide those skilled in the art with an enabling description for implementing an example aspect. It should be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the application as set forth in the appended claims.

[0030] The terms “exemplary” and / or “example” are used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” and / or “example” is not necessarily to be construed as preferred or advantageous over other aspects. Likewise, the term “aspects of the disclosure” does not require that all aspects of the disclosure include the discussed feature, advantage or mode of operation.

[0031] Currently, haptics effects (e.g., haptic output) are widely used on mobile and wearable devices to create notifications, to emulate the tactile feel of mechanical buttons such as a keyboard or a home key on a mobile device, to create user feedback, as well as to be used with ringtones and many other use cases. For example, haptic effects can be used to create an experience of touch to a user that can mimic the feel of depressing a mechanical button by applying forces, vibrations, and / or motions to the user. As such, haptic effects can enhance the user experience by providing tactile responses to user interactions with digital devices.

[0032] In some cases, such haptic effects can be achieved by driving a Linear Resonant Actuator (LRA). Drive waveforms can be generated using electro-mechanical models, where model parameters can be extracted using various modeling techniques, such as using voltage and current sensing and acceleration measurements. Once an accurate model is derived for anLRA, algorithms (e.g., haptic algorithms) can be developed to generate specific vibration acceleration profiles.

[0033] In some cases, short waveforms can be used to drive an LRA for haptic effects. In general, it is desired for short waveforms to have a specified peak acceleration achieved by a certain number of cycles. In addition, it is desired to be able to dampen the acceleration back down to zero in a specified time to achieve the tactile effect (e.g., “crispness”) of the mechanical function that the haptics is trying to emulate.

[0034] However, for haptics short waveforms that push the peak accelerations above a rated steady state acceleration (Grms) and drive voltage (Vrms) of an LRA, non-linear effects become an issue. In addition, variations and inaccuracies of the LRA model (e.g., due to part- to-part variation, temperature, aging, etc.) can create errors in the synthesized voltage drive waveform such that the acceleration profile is not achieved.

[0035] Undesired results of inaccurate modelling can include an inability to achieve a desired peak acceleration, an acceleration shape not matching a desired shape, and a residual acceleration (e.g., a “ringouf ’) at the end of the drive waveform.

[0036] As such, improved systems and techniques for creating a consistent haptic acceleration across part-to-part variation, temperature, aging, among other factors can be beneficial.

[0037] In one or more aspects, systems, apparatuses, processes (also referred to as methods), and computer-readable media (collectively referred to herein as “systems and techniques”) are described herein for generating hybrid short haptics waveforms and closed loop auto braking. For example, the systems and techniques can combine algorithmic short waveform generation using modelled parameters to predict a voltage drive to achieve a specific acceleration profile along with a hardware based haptic braking solution that can perform realtime (or near real-time) monitoring of a back electromagnetic field (BEMF) of an LRA and automatically generate braking voltage to dampen out any residual undesired acceleration. In some aspects, the hardware based haptic braking solution can be implemented using a power management integrated circuit (PMIC).

[0038] In one or more aspects, during operation of the systems and techniques for producing one or more haptic effects at a device, one or more processors can determine, using one or more haptics algorithms based on one or more parameters, a drive voltage for an actuator associated with the device. The drive voltage can be applied (e.g., by a PMIC) to the actuator to produce an acceleration waveform for generating a haptic effect at the device. The one or more processors (and / or the PMIC) can determine a BEMF associated with the acceleration waveform. The one or more processors (and / or the PMIC) can determine a braking voltage based on the BEMF. The braking voltage can be applied (e.g., by the PMIC) to the actuator to dampen out residual acceleration in the acceleration waveform.

[0039] In one or more examples, the drive voltage can be precomputed or generated in real time. In some examples, the drive voltage can be removed from (e.g., cease being applied by the PMIC to) the actuator. In one or more examples, the PMIC can continuously monitor the BEMF. In some examples, the BEMF can be monitored (e.g., by the PMIC) at an output of the actuator. In one or more examples, the BEMF can be generated based on motion of a mass of the actuator after the drive voltage is removed. In some examples, the braking voltage can be determined based on a rate of change of the BEMF.

[0040] In some examples, the one or more parameters can be associated with the actuator and can include one or more electrical parameters, one or more derived parameters, and / or one or more mechanical parameters. In some aspects, the actuator can be a linear resonant actuator (LRA). In some examples, the device can be a mobile device (e.g., a mobile phone, a smart watch, a tablet computer, etc.), a vehicle or system of the vehicle, an extended reality (XR) device such as a virtual reality (VR) headset, an augmented reality (AR) headset or glasses, or a mixed reality (MR) headset), or other device. In one or more examples, the one or more electrical parameters can include an electrical coil voice resistance at direct current, a voice coil inductance at first frequencies, a para-inductance at second frequencies lower than the first frequencies, and / or a resistance due to eddy currents. In some examples, the one or more derived parameters can include an electrical capacitance representing a mechanical mass, an electrical inductance representing a mechanical compliance, a resistance due to mechanical losses, and / or a driver resonance frequency. In one or more examples, the one or moremechanical parameters can include a mechanical mass of a proof mass assembly (e.g., one or more LRA magnets), a mechanical resistance of total-driver losses, a mechanical stiffness of a driver suspension, a mechanical compliance of the driver suspension, and / or a force factor.

[0041] Additional aspects of the present disclosure are described in more detail below. Various aspects of the systems and techniques described herein will be discussed below with respect to the figures.

[0042] As used herein, the phrase “based on” shall not be construed as a reference to a closed set of information, one or more conditions, one or more factors, or the like. In other words, the phrase “based on A” (where “A” may be information, a condition, a factor, or the like) shall be construed as “based at least on A” unless specifically recited differently.

[0043] As used herein, a computing device or other device may be a wireless communication device (e.g., a mobile phone, router, tablet computer, laptop computer, and / or tracking device, etc.), wearable (e.g., smartwatch, smart-glasses, wearable ring, and / or an extended reality (XR) device such as a virtual reality (VR) headset, an augmented reality (AR) headset or glasses, or a mixed reality (MR) headset), vehicle (e.g., automobile, motorcycle, bicycle, etc.), and / or Internet of Things (loT) device, etc., used by a user to communicate over a wireless communications network. A UE may be mobile or may (e.g., at certain times) be stationary, and may communicate with a radio access network (RAN). As used herein, the term “UE” may be referred to interchangeably as an “access terminal” or “AT,” a “client device,” a “wireless device,” a “subscriber device,” a “subscriber terminal,” a “subscriber station,” a “user terminal” or “UT,” a “mobile device,” a “mobile terminal,” a “mobile station,” or variations thereof. Generally, UEs can communicate with a core network via a RAN, and through the core network the UEs can be connected with external networks such as the Internet and with other UEs. Of course, other mechanisms of connecting to the core network and / or the Internet are also possible for the UEs, such as over wired access networks, wireless local area network (WLAN) networks (e.g., based on IEEE 802.11 communication standards, etc.), and so on.

[0044] As previously mentioned, haptics effects (e.g., haptic output) are currently widely utilized on mobile and wearable devices to create notifications, to emulate the tactile feel ofmechanical buttons (e.g., on a keyboard or a home key on a mobile device), to create user feedback, and to be used with ringtones and many other use cases. For example, haptic effects may be used to create an experience of touch to a user that can mimic the feel of depressing a mechanical button by applying forces, vibrations, and / or motions to the user. Therefore, haptic effects can enhance the user experience by providing tactile responses to user interactions with digital devices.

[0045] In some cases, such haptic effects can be achieved by driving a Linear Resonant Actuator (LRA). Drive waveforms may be generated using electro-mechanical models, where model parameters can be extracted using various modeling techniques (e.g., using voltage and current sensing and acceleration measurements). Once an accurate model is derived for an LRA, algorithms (e.g., haptic algorithms) can be developed to produce specific vibration acceleration profiles.

[0046] FIG. 1 shows an example system for generating haptic effects that includes an actuator in the form of an LRA. In particular, FIG. l is a diagram illustrating an example of a system 100 for generating haptic effects for a device (e.g., a mobile device, such as a mobile phone or smart watch). In FIG. 1, the system 100 is shown to include an LRA 110, a haptic driver 180, and a DSP 190. The LRA 110 is shown to include LRA magnetic coils 130, LRA dampers 150, LRA springs 140, and a LRA magnet 120 (e.g., which may be referred to as a mass). Each side of the LRA magnet 120 (e.g., the mass) is shown to be connected to a respective LRA spring 140. In one or more examples, the system 100 may be associated with and / or included within the device.

[0047] During operation of the system 100 for generating haptic effects for a device, the DSP 190 can determine, based on one or more model parameters of the LRA 110 (e.g., LRA specification parameters from the manufacturer of the LRA), a haptic waveform (e.g., a short haptic waveform) for the LRA 110. The DSP 190 can generate a voltage command 195 based on the determined haptic waveform. The DSP 190 can then send (e.g., transmit) the voltage command 195 to the haptic driver 180. After receiving the voltage command 195 from the DSP 190, the haptic driver 180 can generate, based on the voltage command 195, a voltage output170 (e.g., a drive voltage). The haptic driver 180 can send (e.g., apply) the voltage output 170 (e.g., the drive voltage) to the LRA 110 to drive the LRA magnetic coils 130.

[0048] When the voltage output 170 (e.g., the drive voltage) is applied to the LRA magnetic coils 130, the LRA magnetic coils 130 are energized, which causes (e.g., by a magnetic Lorenz force 160) the LRA magnet 120 (e.g., the mass) to move from its original center position within the LRA 110 in one direction (e.g., to the left or to the right). Once the voltage output 170 (e.g., the drive voltage) is no longer applied to the LRA magnetic coils 130, the LRA magnetic coils 130 are no longer energized, which will cause the LRA magnet 120 (e.g., the mass) to move back towards the center position within the LRA 1 10. The LRA magnet 120 (e.g., the mass) will oscillate back and forth (e.g., to the left and to the right) until coming to a complete stop in the center position of the LRA 110. This oscillation back and forth (e.g., to the left and to the right) of the LRA magnet 120 (e.g., the mass) can cause the haptic effects to feel “mushy” (e.g., not “crisp”) to the user.

[0049] FIG. 2 shows examples of different acceleration waveforms that produce “mushy” haptics and “crisp” haptics, respectively. In particular, FIG. 2 is a diagram illustrating examples 200 of acceleration waveforms 210, 220 for producing haptic effects for a device. In FIG. 2, the acceleration waveform 210 is shown to have a slight oscillation (e.g., a “ringout”) after the drive volage is no longer applied to the LRA. Since the acceleration waveform 210 exhibits this slight oscillation, the acceleration waveform 210 will produce “mushy” haptics. Conversely, the acceleration waveform 220 is shown to not have any oscillation (e.g., is flat) after the drive volage is no longer applied to the LRA. Since the acceleration waveform 220 is flat, the acceleration waveform 220 will produce “crisp” haptics.

[0050] In one or more aspects, short waveforms can be used to drive an LRA for haptic effects. In general, it is desired for short waveforms to have a specified peak acceleration achieved by a certain number of cycles. In addition, it is desired to be able to dampen the acceleration back down to zero in a specified time to achieve the tactile effect (e.g., “crispness”) of the mechanical function that the haptics is trying to emulate.

[0051] However, for haptics short waveforms that push the peak accelerations above a rated steady state acceleration (Grms) and drive voltage (Vrms) of an LRA, non-linear effects become an issue. In addition, variations and inaccuracies of the LRA model (e.g., due to part- to-part variation, temperature, aging, etc.) can create errors in the synthesized voltage drive waveform such that the acceleration profile is not achieved.

[0052] Undesired results of inaccurate modelling can include an inability to achieve a desired peak acceleration, an acceleration shape not matching a desired shape, and a residual acceleration (e.g., a “ringouf ’) at the end of the drive waveform.

[0053] Thus, improved systems and techniques for creating a consistent haptic acceleration across part-to-part variation, temperature, aging, among other factors can be useful.

[0054] In one or more aspects, the systems and techniques provide for generating hybrid short haptics waveforms and closed loop auto braking. In one or more examples, the systems and techniques combine algorithmic short waveform generation using modelled parameters to predict a voltage drive to achieve a specific acceleration profile along with a hardware based haptic braking solution that can perform real-time (or near real-time) monitoring of a back electromagnetic field (BEMF) of an LRA and automatically generate braking voltage to dampen out any residual undesired acceleration. In some examples, the hardware based haptic braking solution can be implemented using a power management integrated circuit (PMIC).

[0055] In one or more aspects, during operation of the systems and techniques for producing one or more haptic effects at a device (e.g., a mobile device, a vehicle or system or component of the vehicle, an XR device, or other type of device or system), one or more processors (e.g., a DSP) may determine, using one or more haptics algorithms based on one or more parameters, a drive voltage for an actuator associated with the device. In some aspects, the actuator may be an LRA. In one or more examples, the mobile device may be a mobile phone, a smart watch, or a tablet computer. The drive voltage may be applied (e.g., by a PMIC) to the actuator to produce an acceleration waveform for generating a haptic effect at the device. The one or more processors (and / or the PMIC) may determine a BEMF associated with the acceleration waveform. The one or more processors (and / or the PMIC) may determine abraking voltage based on the BEMF. The braking voltage may be applied (e.g., by the PMIC) to the actuator to dampen out residual acceleration in the acceleration waveform.

[0056] In one or more examples, the drive voltage may be precomputed or generated in real time. In some examples, the drive voltage may be removed from (e.g., cease being applied by the PMIC to) the actuator. In one or more examples, the PMIC may continuously monitor the BEMF. In some examples, the BEMF may be monitored (e.g., by the PMIC) at an output of the actuator. In one or more examples, the BEMF may be generated based on motion of a mass of the actuator after the drive voltage is removed. In some examples, the braking voltage may be determined based on a rate of change of the BEMF.

[0057] In some examples, the one or more parameters may be associated with the actuator and can include one or more electrical parameters, one or more derived parameters, and / or one or more mechanical parameters. In one or more examples, the one or more electrical parameters may include an electrical coil voice resistance at direct current, a voice coil inductance at first frequencies, a para-inductance at second frequencies lower than the first frequencies, and / or a resistance due to eddy currents. In some examples, the one or more derived parameters may include an electrical capacitance representing a mechanical mass, an electrical inductance representing a mechanical compliance, a resistance due to mechanical losses, and / or a driver resonance frequency. In one or more examples, the one or more mechanical parameters may include a mechanical mass of a proof mass assembly (e.g., one or more LRA magnets, such as the LRA magnets 120 of FIG. 1), a mechanical resistance of total-driver losses, a mechanical stiffness of a driver suspension, a mechanical compliance of the driver suspension, and / or a force factor.

[0058] FIG. 3 shows an example system for generating hybrid short haptics waveforms and closed loop auto braking. In particular, FIG. 3 is a diagram illustrating an example of a system 300 for generating haptic effects for a device that includes BEMF based braking for reducing residual acceleration (e.g., “ringout”) at the end of the acceleration waveform. In FIG. 3, a system on a chip (SOC) 310, a PMIC 360 (e.g., including haptics driver circuitry 340), and an actuator 350 (e.g., LRA) are shown. The PMIC 360 can directly interface and drive the actuator 350.

[0059] The SOC 310 is shown to include a haptic trigger 315, an embedded DSP 320, and a digital codec 330. The haptic trigger 315 can include one or more triggers (e.g., touch, a ringtone, audio, and / or a gaming event) to produce haptics for a device.

[0060] During operation of the system 300, the DSP 320 can use waveform generation algorithms 324 along with protection algorithms 326, based on the haptic trigger 315 and LRA model parameters 322, to generate short haptic waveforms. The short haptic waveforms can be used to simulate mechanical button clicks to support bezel -less designs (e.g., for mobile phones).

[0061] The digital codec 330 of the DSP 320 can communicate (e.g., transmit) the short haptic waveforms via a voltage command (e.g., over a soundwire protocol) to the PMIC 360. Based on the voltage command, the haptics driver circuitry 340 of the PMIC 360 can generate and send (e.g., apply) a drive voltage to the actuator 350 to drive the actuator 350 to produce an acceleration waveform for generating a haptic effect.

[0062] Once the drive voltage ceases to be applied to (e.g., is removed from) the actuator 350, the haptics driver circuitry 340 of the PMIC 360 can continuously monitor (e.g., sense) the BEMF of the actuator 350. The haptics driver circuitry 340 can send the voltage and current sense feedback 342 associated with the BEMF to the DSP 320 via the digital codec 330 for actuator resonant frequency fO and parameter tracking 328. Based on the sensed BEMF, the DSP 320 can determine a braking voltage to be applied to the actuator 350.

[0063] The digital codec 330 of the DSP 320 can communicate (e.g., transmit) the braking voltage via a voltage command (e.g., over a soundwire protocol) to the PMIC 360. Based on the voltage command, the haptics driver circuitry 340 of the PMIC 360 can perform BEMF based auto braking 344 by generating and sending (e.g., applying) the braking voltage to the actuator 350 to dampen out residual acceleration in the acceleration waveform.

[0064] In one or more aspects, the systems and techniques can provide short waveform drive estimation using an LRA model. For example, the systems and techniques can determine LRA model parameters to model an LRA. FIG. 4 shows an example linear model for an actuator (e.g., LRA). In particular, FIG. 4 is a diagram illustrating an example of a linear model 400for modeling an LRA. In FIG. 4, the linear model 400 is shown to include an electrical part 410 (e.g., including resistors RE, R2, inductors LE, L2, and a sinusoidal signal generator 430) and a mechanical part 420 (e.g., including a capacitor Cms (f), an inductor Mms, and a resistor Rms) that are coupled together.

[0065] In some cases, sensed voltage (Vsense) and sensed current (Lense) data can be used to calculate an impedance and model parameters of the LRA. In some examples, LRA impedance and electro-mechanical model parameters can be based on Theile / Small model parameters for speakers. These parameters can be extracted using a parameter extraction tool using LRA datasheet specifications (e g., from the LRA manufacturer). The parameter extraction can be performed during a design phase when the mechanical design of the LRA has been completed. Using V / I sensing, these parameters (e.g., including the resonant frequency F0) can be updated continuously in real use applications such that algorithms are accurate even with changes in the LRA with respect to temperature, aging, etc.

[0066] FIG. 5 shows examples of LRA model parameters that can be used (e.g., by haptic algorithms) for determining a drive voltage to apply to the LRA to produce an acceleration waveform for generating a haptic effect at a device. In particular, FIG. 5 is a table 500 illustrating an example of model parameters of an LRA model. In FIG. 5, the table 500 is shown to include electrical parameters 510, derived parameters 520, and mechanical parameters 530. The electrical parameters 510 are shown to include an electrical coil voice resistance at direct current, a voice coil inductance at first frequencies, a para-inductance at second frequencies lower than the first frequencies, and a resistance due to eddy currents. The derived parameters 520 are shown to include an electrical capacitance representing a mechanical mass, an electrical inductance representing a mechanical compliance, a resistance due to mechanical losses, and a driver resonance frequency. The mechanical parameters 530 are shown to include a mechanical mass of a proof mass assembly (e.g., one or more LRA magnets, such as the LRA magnets 120 of FIG. 1), a mechanical resistance of total-driver losses, a mechanical stiffness of a driver suspension, a mechanical compliance of the driver suspension, and a force factor (e.g., a Bl product).

[0067] In one or more aspects, a user interface (UI) tuning tool can be used to design short haptic waveforms to drive an LRA to generate a particular haptic output. FIG. 6 shows an example of a UI tuning tool. In particular, FIG. 6 is diagram illustrating an example of user interface (UI) tuning tool 600 for designing short haptic waveforms for haptics effects for a device. In one or more examples, various different inputs may be input into the UI tuning tool 600 for designing short haptic waveforms. For example, for designing short haptic waveforms, the number of cycles of acceleration and the maximum voltage to be utilized can be input into the UI tuning tool 600. The UI tuning tool 600 can display the desired acceleration profile to the user such that the user can visualize the acceleration waveform. A user can use the UI tuning tool 600 to run a waveform designer algorithm (e.g., a waveform generation algorithm) to generate a drive voltage for the LRA to produce an acceleration waveform for generating a haptic effect at the device. The UI tuning tool 600 can measure the haptic acceleration and check (e.g., compare) the measured haptic acceleration versus a specification.

[0068] In FIG. 6, the UI tuning tool 600 is shown to include a plurality of inputs for a waveform designer configuration 610. The inputs for the waveform designer configuration 610 are shown to include a waveform designer mode 611, a pulse intensity (%) 612, a pulse sharpness (%) 613, a pulse width in milliseconds (ms) 614, a repetition period (ms) 615, a number of repetitions 616, an enable fO tracking 617, a reset tracked parameters 618, and an enable pilot tone 619. The UI tuning tool 600 is shown to include a number of inputs for overriding default values 620. The inputs for overriding default values 620 are shown to include a tracked frequency warmup time (ms) 621, a setting time (ms) 622, a delay time (ms) 623, and a wave designer start frequency in Hertz (Hz) 624. In FIG. 6, the UE tuning tool 600 is shown to include inputs for graph selection 630. The inputs for graph selection 630 are shown to include an output voltage in volts (V) 631, a sensed voltage (V) 632, a sensed current in amperes (A) 633, an acceleration in g-force (G) 634, a tracked resonance frequency (Hz) 635, and an excursion in millimeters (mm) 636.

[0069] The UE tuning tool 600 is also shown to include a plurality of buttons, including a play button 640, a stop button 650, a refresh graphs button 660, and a clear graphs button 670. In one or more examples, the UI tuning tool 600 may include more or less number of inputsand / or buttons as is shown in FIG. 6. In some examples, the UI tuning tool 600 may include different types of inputs and / or buttons than as shown in FIG. 6.

[0070] FIG. 7 is a diagram illustrating examples of graphs 710, 720, 730 comparing short haptic waveforms (e.g., acceleration waveforms) designed using the UI tuning tool 600 of FIG. 6 with resulting experimental short haptic waveforms (e.g., acceleration waveforms). In the graphs 710, 720, 730 of FIG. 7, the x-axis denotes time (s) and the y-axis denotes acceleration (g). In graphs 710, 720, 730, oscillation in the residual acceleration of the short haptic waveforms is shown to be dampened out by using BEMF braking.

[0071] In one or more aspects, the hybrid closed loop auto braking technique can be used to design haptic waveforms (e.g., short haptic waveforms). For example, to account for unexpected variation in the LRA prediction model, the hybrid braking approach be used. The hybrid braking approach can incorporate smart haptics short waveform design (e.g., using the UI tuning tool 600 of FIG. 6) and the hardware-based auto braking (e.g., PMIC closed loop auto braking). If any residual acceleration ringout exists, the hardware-based auto braking (e.g., PMIC closed loop auto braking) will be activated automatically to generate braking for the waveform. Graphs 710, 720, 730 of FIG. 7 provide illustrative examples of waveforms generated using the hardware-based auto braking.

[0072] FIGS. 8 and 9 show examples of haptic outputs 810, 910 (e.g., drive voltages) and corresponding acceleration waveforms 820, 920 of an LRA. In particular, FIG. 8 is a diagram illustrating an example 800 of an acceleration waveform 820 generated using no hardwarebased haptic braking. FIG. 9 is a diagram illustrating an example 900 of an acceleration waveform 920 generated using hardware-based haptic braking (e.g., using PMIC closed loop auto braking).

[0073] In FIG. 8, the acceleration waveform 820 is shown to include oscillation in the residual acceleration. Conversely, in FIG. 9, the residual acceleration in the acceleration waveform 920 is shown to be dampened out by the addition of the auto braking 930 in the haptic output 910.

[0074] In one or more aspects, the hardware-based auto braking (e.g., adaptive closed loop braking) can be performed using BEMF and calibration. FIG. 10 is a diagram illustrating an example 1000 of adaptive closed loop braking using BEMF. In FIG. 10, a graph 1010 of the voltage drive of an LRA and a corresponding graph 1020 of the voltage output of the LRA are shown. Both graphs 1010, 1020 can be divided into a driving portion 1030 of the LRA and a braking portion 1040 of the LRA.

[0075] In one or more examples, the system can continuously measure and estimate BEMF amplitude and can adjust braking amplitude based on each t_wind[n] until a brake stop criteria is met. A hi-z period (e.g., during which the BEMF of the LRA is monitored and sensed) may be adaptive to maintain a margin around zx wind edges. In some cases, t wind may be measured from -v wind to +v wind or from 0 to +v wind. An illustrative example of a window time to be measured is as follows: 16 ~ 2000 ps (30-500 mV BEMF, 50-400 Hz, V_wind = 10 mV). In one illustrative example, 1.25 ps (24 / 19.2MHz) can be chosen as a reference clock to count t_wind, 12 < t_wind < 1600. In another illustrative example, V_BEMF[n] can be calculated by dividing 4000 / t_wind[n], where 2.5 < V_BEMF < 333.

[0076] In some aspects, the adaptive braking algorithm can include calibration cycles for natural and forced response parameters. In some cases, a calibration failure flag can be used to instruct the system or a user of the system to adjust the calibration sequence. FIG. 11 is a diagram illustrating an example of programmable calibration patterns. In FIG. 11, example calibration cycles for a measured natural response 1110 and a measured forced response 1120 are shown.

[0077] FIG. 12 is a graph 1200 illustrating an example of BEMF reduction percentage versus braking amplitude (e.g., theoretical). In the graph 1200 of FIG. 12, the x-axis denotes the braking voltage (B), and the y-axis denotes Rset and Rnat. FIG. 12 illustrates that curves 1210, 1220, 1230 are linear and all have the same y-intercept of Rnat. Each line has a slope which is inversely proportional to VBEMF.

[0078] FIG. 13 is a flow chart illustrating an example of a process 1300 for generating hybrid short haptics waveforms and closed loop auto braking. The process 1300 can be performed bya computing device (e.g., the system 100 of FIG. 1, the system 300 of FIG. 3, a computing device or computing system 1400 of FIG. 14, or other device or system) or by a component or system (e.g., a chipset, one or more processors central processing units (CPUs), digital signal processors (DSPs), graphics processing units (GPUs), any combination thereof, and / or other type of processor(s), or other component or system) of the computing device. In some aspects, the computing device is a mobile device (e.g., a mobile phone, a smart watch, a tablet computer, etc.), an extended reality (XR) device (e.g., a virtual reality (VR) headset, an augmented reality (AR) headset, and / or a mixed reality (MR) headset), a vehicle or system or component of the vehicle, and / or other device or system. The operations of the process 1300 may be implemented as software components that are executed and run on one or more processors (e.g., processor 1410 of FIG. 14 or other processor(s)). Further, the transmission and reception of signals by the computing device in the process 1300 may be enabled, for example, by one or more antennas and / or one or more transceivers (e.g., wireless transceiver s)).

[0079] At block 1310, the computing device (or component thereof) can determine, based on one or more parameters, a drive voltage (e.g., the voltage output 170 of FIG. 1) for an actuator (e.g., a linear resonant actuator (LRA), such as the LRA 110 of FIG. 1) associated with the apparatus. The drive voltage can be precomputed or can be generated in real time (or near real-time). In some cases, the one or more parameters are associated with the actuator and include one or more electrical parameters (e.g., electrical parameters 510 of FIG. 5), one or more derived parameters (e.g., derived parameters 520 of FIG. 5), one or more mechanical parameters (e.g., mechanical parameters 530 of FIG. 5), any combination thereof, and / or other parameters. In some examples, the one or more electrical parameters include an electrical coil voice resistance at direct current, a voice coil inductance at first frequencies, a para-inductance at second frequencies lower than the first frequencies, a resistance due to eddy currents, any combination thereof, and / or other parameters. In some examples, the one or more derived parameters can include an electrical capacitance representing a mechanical mass, an electrical inductance representing a mechanical compliance, a resistance due to mechanical losses, a driver resonance frequency, any combination thereof, and / or other parameters. In some examples, the one or more mechanical parameters can include a mechanical mass of a proof mass assembly (e.g., one or more LRA magnets, such as the LRA magnets 120 of FIG. 1), amechanical resistance of total-driver losses, a mechanical stiffness of a driver suspension, a mechanical compliance of the driver suspension, a force factor, any combination thereof, and / or other parameters.At block 1320, the computing device (or component thereof) can apply the drive voltage to the actuator to produce an acceleration waveform (e.g., the acceleration waveform 820 of FIG. 8, the acceleration waveform 920 of FIG. 9, etc.) for generating a haptic effect at the apparatus.

[0080] At block 1330, the computing device (or component thereof) can determine a back electromagnetic field (BEMF) associated with the acceleration waveform using the techniques described herein (e.g., with respect to FIG. 10, FIG. 11, and / or FIG. 12). For instance, the computing device (or component thereof) can remove the drive voltage to the actuator. The BEMF can be generated based on motion of a mass of the actuator after the drive voltage is removed. For instance, referring to FIG. 3 as an illustrative example, once the drive voltage is no longer applied to (e.g., is removed from) the actuator 350, the haptics driver circuitry 340 of the PMIC 360 can continuously monitor (e.g., sense) the BEMF of the actuator 350. The BEMF can be monitored at an output of the actuator. In some aspects, the computing device (or component thereof) can continuously monitor the BEMF using a power management integrated circuit.

[0081] At block 1340, the computing device (or component thereof) can determine a braking voltage based on the BEMF. In some aspects, the braking voltage is determined based on a rate of change of the BEMF.

[0082] At block 1350, the computing device (or component thereof) can apply the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

[0083] In some cases, the computing device of process 1300 may include various components, such as one or more input devices, one or more output devices, one or more processors, one or more microprocessors, one or more microcomputers, one or more cameras, one or more sensors, and / or other component(s) that are configured to carry out the steps of processes described herein. In some examples, the computing device may include a display, one or more network interfaces configured to communicate and / or receive the data, anycombination thereof, and / or other component(s). The one or more network interfaces may be configured to communicate and / or receive wired and / or wireless data, including data according to the 3G, 4G, 5G, and / or other cellular standard, data according to the Wi-Fi (802.1 lx) standards, data according to the Bluetooth™ standard, data according to the Internet Protocol (IP) standard, and / or other types of data.

[0084] The components of the computing device of process 1300 can be implemented in circuitry. For example, the components can include and / or can be implemented using electronic circuits or other electronic hardware, which can include one or more programmable electronic circuits (e g., microprocessors, graphics processing units (GPUs), digital signal processors (DSPs), central processing units (CPUs), and / or other suitable electronic circuits), and / or can include and / or be implemented using computer software, firmware, or any combination thereof, to perform the various operations described herein. The computing device may further include a display (as an example of the output device or in addition to the output device), a network interface configured to communicate and / or receive the data, any combination thereof, and / or other component(s). The network interface may be configured to communicate and / or receive Internet Protocol (IP) based data or other type of data.

[0085] The process 1300 is illustrated as a logical flow diagram, the operations of which represent a sequence of operations that can be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and / or in parallel to implement the processes.

[0086] Additionally, process 1300 may be performed under the control of one or more computer systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications)executing collectively on one or more processors, by hardware, or combinations thereof. As noted above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program comprising a plurality of instructions executable by one or more processors. The computer-readable or machine-readable storage medium may be non -transitory.

[0087] FIG. 14 is a block diagram illustrating an example of a computing system 1400, which may be employed for generating hybrid short haptics waveforms and closed loop auto braking. In particular, FIG. 14 illustrates an example of computing system 1400, which can be for example any computing device making up internal computing system, a remote computing system, a camera, or any component thereof in which the components of the system are in communication with each other using connection 1405. Connection 1405 can be a physical connection using a bus, or a direct connection into processor 1410, such as in a chipset architecture. Connection 1405 can also be a virtual connection, networked connection, or logical connection.

[0088] In some aspects, computing system 1400 is a distributed system in which the functions described in this disclosure can be distributed within a datacenter, multiple data centers, a peer network, etc. In some aspects, one or more of the described system components represents many such components each performing some or all of the function for which the component is described. In some aspects, the components can be physical or virtual devices.

[0089] Example system 1400 includes at least one processing unit (CPU or processor) 1410 and connection 1405 that communicatively couples various system components including system memory 1415, such as read-only memory (ROM) 1420 and random access memory (RAM) 1425 to processor 1410. Computing system 1400 can include a cache 1412 of highspeed memory connected directly with, in close proximity to, or integrated as part of processor 1410.

[0090] Processor 1410 can include any general purpose processor and a hardware service or software service, such as services 1432, 1434, and 1436 stored in storage device 1430, configured to control processor 1410 as well as a special-purpose processor where softwareinstructions are incorporated into the actual processor design. Processor 1410 may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric.

[0091] To enable user interaction, computing system 1400 includes an input device 1445, which can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech, etc. Computing system 1400 can also include output device 1435, which can be one or more of a number of output mechanisms. In some instances, multimodal systems can enable a user to provide multiple types of input / output to communicate with computing system 1400.

[0092] Computing system 1400 can include communications interface 1440, which can generally govern and manage the user input and system output. The communication interface may perform or facilitate receipt and / or transmission wired or wireless communications using wired and / or wireless transceivers, including those making use of an audio jack / plug, a microphone jack / plug, a universal serial bus (USB) port / plug, an Apple™ Lightning™ port / plug, an Ethernet port / plug, a fiber optic port / plug, a proprietary wired port / plug, 3G, 4G, 5G and / or other cellular data network wireless signal transfer, a Bluetooth™ wireless signal transfer, a Bluetooth™ low energy (BLE) wireless signal transfer, an IBEACON™ wireless signal transfer, a radio-frequency identification (RFID) wireless signal transfer, near-field communications (NFC) wireless signal transfer, dedicated short range communication (DSRC) wireless signal transfer, 802.11 Wi-Fi wireless signal transfer, wireless local area network (WLAN) signal transfer, Visible Light Communication (VLC), Worldwide Interoperability for Microwave Access (WiMAX), Infrared (IR) communication wireless signal transfer, Public Switched Telephone Network (PSTN) signal transfer, Integrated Services Digital Network (ISDN) signal transfer, ad-hoc network signal transfer, radio wave signal transfer, microwave signal transfer, infrared signal transfer, visible light signal transfer, ultraviolet light signal transfer, wireless signal transfer along the electromagnetic spectrum, or some combination thereof.

[0093] The communications interface 1440 may also include one or more range sensors (e.g., LiDAR sensors, laser range finders, RF radars, ultrasonic sensors, and infrared (IR)sensors) configured to collect data and provide measurements to processor 1410, whereby processor 1410 can be configured to perform determinations and calculations needed to obtain various measurements for the one or more range sensors. In some examples, the measurements can include time of flight, wavelengths, azimuth angle, elevation angle, range, linear velocity and / or angular velocity, or any combination thereof. The communications interface 1440 may also include one or more Global Navigation Satellite System (GNSS) receivers or transceivers that are used to determine a location of the computing system 1400 based on receipt of one or more signals from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the US-based GPS, the Russia-based Global Navigation Satellite System (GLONASS), the China-based BeiDou Navigation Satellite System (BDS), and the Europe-based Galileo GNSS. There is no restriction on operating on any particular hardware arrangement, and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.

[0094] Storage device 1430 can be a non-volatile and / or non-transitory and / or computer- readable memory device and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, a floppy disk, a flexible disk, a hard disk, magnetic tape, a magnetic strip / stripe, any other magnetic storage medium, flash memory, memristor memory, any other solid-state memory, a compact disc read only memory (CD-ROM) optical disc, a rewritable compact disc (CD) optical disc, digital video disk (DVD) optical disc, a blu-ray disc (BDD) optical disc, a holographic optical disk, another optical medium, a secure digital (SD) card, a micro secure digital (microSD) card, a Memory Stick® card, a smartcard chip, a EMV chip, a subscriber identity module (SIM) card, a mini / micro / nano / pico SIM card, another integrated circuit (IC) chip / card, random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash EPROM (FLASHEPROM), cache memory (e.g., Level 1 (LI) cache, Level 2 (L2) cache, Level 3 (L3) cache, Level 4 (L4) cache, Level 5 (L5) cache, or other (L#) cache), resistive random-accessmemory (RRAM / ReRAM), phase change memory (PCM), spin transfer torque RAM (STT- RAM), another memory chip or cartridge, and / or a combination thereof.

[0095] The storage device 1430 can include software services, servers, services, etc., that when the code that defines such software is executed by the processor 1410, it causes the system to perform a function. In some aspects, a hardware service that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as processor 1410, connection 1405, output device 1435, etc., to carry out the function. The term “computer-readable medium” includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other mediums capable of storing, containing, or carrying instruction(s) and / or data. A computer-readable medium may include a non-transitory medium in which data can be stored and that does not include carrier waves and / or transitory electronic signals propagating wirelessly or over wired connections. Examples of a non-transitory medium may include, but are not limited to, a magnetic disk or tape, optical storage media such as compact disk (CD) or digital versatile disk (DVD), flash memory, memory or memory devices. A computer-readable medium may have stored thereon code and / or machine-executable instructions that may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, or the like.

[0096] Specific details are provided in the description above to provide a thorough understanding of the aspects and examples provided herein, but those skilled in the art will recognize that the application is not limited thereto. Thus, while illustrative aspects of the application have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.Various features and aspects of the above-described application may be used individually or jointly. Further, aspects can be utilized in any number of environments and applications beyond those described herein without departing from the broader scope of the specification. The specification and drawings are, accordingly, to be regarded as illustrative rather than restrictive. For the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate aspects, the methods may be performed in a different order than that described.

[0097] For clarity of explanation, in some instances the present technology may be presented as including individual functional blocks comprising devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software. Additional components may be used other than those shown in the figures and / or described herein. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the aspects in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the aspects.

[0098] Further, those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

[0099] Individual aspects may be described above as a process or method which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operationsmay be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in a figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.

[0100] Processes and methods according to the above-described examples can be implemented using computer-executable instructions that are stored or otherwise available from computer-readable media. Such instructions can include, for example, instructions and data which cause or otherwise configure a general purpose computer, special purpose computer, or a processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, source code. Examples of computer-readable media that may be used to store instructions, information used, and / or information created during methods according to described examples include magnetic or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on.

[0101] In some aspects the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bitstream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.

[0102] Those of skill in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof, in some cases depending in part on the particular application, in part on the desired design, in part on the corresponding technology, etc.

[0103] The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed usinghardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and can take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks (e.g., a computer-program product) may be stored in a computer-readable or machine-readable medium. A processor(s) may perform the necessary tasks. Examples of form factors include laptops, smart phones, mobile phones, tablet devices or other small form factor personal computers, personal digital assistants, rackmount devices, standalone devices, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.

[0104] The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are example means for providing the functions described in the disclosure.

[0105] The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices such as general purposes computers, wireless communication device handsets, or integrated circuit devices having multiple uses including application in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a computer-readable data storage medium comprising program code including instructions that, when executed, performs one or more of the methods, algorithms, and / or operations described above. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may comprise memory or data storage media, such as random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), FLASH memory, magnetic or optical data storage media, and the like. The techniques additionally, or alternatively, maybe realized at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures and that can be accessed, read, and / or executed by a computer, such as propagated signals or waves.

[0106] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, an application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor; but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure, any combination of the foregoing structure, or any other structure or apparatus suitable for implementation of the techniques described herein.

[0107] One of ordinary skill will appreciate that the less than (“<”) and greater than (“>”) symbols or terminology used herein can be replaced with less than or equal to (“<”) and greater than or equal to (“ > ”) symbols, respectively, without departing from the scope of this description.

[0108] Where components are described as being “configured to” perform certain operations, such configuration can be accomplished, for example, by designing electronic circuits or other hardware to perform the operation, by programming programmable electronic circuits (e.g., microprocessors, or other suitable electronic circuits) to perform the operation, or any combination thereof.

[0109] The phrase “coupled to” or “communicatively coupled to” refers to any component that is physically connected to another component either directly or indirectly, and / or any component that is in communication with another component (e.g., connected to the othercomponent over a wired or wireless connection, and / or other suitable communication interface) either directly or indirectly.

[0110] Claim language or other language reciting “at least one of’ a set and / or “one or more” of a set indicates that one member of the set or multiple members of the set (in any combination) satisfy the claim. For example, claim language reciting “at least one of A and B” or “at least one of A or B” means A, B, or A and B. In another example, claim language reciting “at least one of A, B, and C” or “at least one of A, B, or C” means A, B, C, or A and B, or A and C, or B and C, A and B and C, or any duplicate information or data (e.g., A and A, B and B, C and C, A and A and B, and so on), or any other ordering, duplication, or combination of A, B, and C. The language “at least one of’ a set and / or “one or more” of a set does not limit the set to the items listed in the set. For example, claim language reciting “at least one of A and B” or “at least one of A or B” may mean A, B, or A and B, and may additionally include items not listed in the set of A and B. The phrases “at least one” and “one or more” are used interchangeably herein.

[0111] Claim language or other language reciting “at least one processor configured to,” “at least one processor being configured to,” “one or more processors configured to,” “one or more processors being configured to,” or the like indicates that one processor or multiple processors (in any combination) can perform the associated operation(s). For example, claim language reciting “at least one processor configured to: X, Y, and Z” means a single processor can be used to perform operations X, Y, and Z; or that multiple processors are each tasked with a certain subset of operations X, Y, and Z such that together the multiple processors performX, Y, and Z; or that a group of multiple processors work together to perform operations X, Y, and Z. In another example, claim language reciting “at least one processor configured to: X, Y, and Z” can mean that any single processor may only perform at least a subset of operations X,Y, and Z.

[0112] Where reference is made to one or more elements performing functions (e.g., steps of a method), one element may perform all functions, or more than one element may collectively perform the functions. When more than one element collectively performs the functions, each function need not be performed by each of those elements (e.g., differentfunctions may be performed by different elements) and / or each function need not be performed in whole by only one element (e.g., different elements may perform different sub-functions of a function). Similarly, where reference is made to one or more elements configured to cause another element (e.g., an apparatus) to perform functions, one element may be configured to cause the other element to perform all functions, or more than one element may collectively be configured to cause the other element to perform the functions.

[0113] Where reference is made to an entity (e.g., any entity or device described herein) performing functions or being configured to perform functions (e.g., steps of a method), the entity may be configured to cause one or more elements (individually or collectively) to perform the functions. The one or more components of the entity may include at least one memory, at least one processor, at least one communication interface, another component configured to perform one or more (or all) of the functions, and / or any combination thereof. Where reference to the entity performing functions, the entity may be configured to cause one component to perform all functions, or to cause more than one component to collectively perform the functions. When the entity is configured to cause more than one component to collectively perform the functions, each function need not be performed by each of those components (e.g., different functions may be performed by different components) and / or each function need not be performed in whole by only one component (e.g., different components may perform different sub-functions of a function).

[0114] The various illustrative logical blocks, modules, engines, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, firmware, or combinations thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, engines, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.

[0115] The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices such as general purposes computers, wireless communication device handsets, or integrated circuit devices having multiple uses including application in wireless communication device handsets and other devices. Any features described as engines, modules, or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a computer-readable data storage medium comprising program code including instructions that, when executed, performs one or more of the methods described above. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. The computer- readable medium may comprise memory or data storage media, such as random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), FLASH memory, magnetic or optical data storage media, and the like. The techniques additionally, or alternatively, may be realized at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures and that can be accessed, read, and / or executed by a computer, such as propagated signals or waves.

[0116] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, an application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. A general purpose processor may be a microprocessor; but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure, any combination of the foregoing structure,or any other structure or apparatus suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated software modules or hardware modules configured for encoding and decoding, or incorporated in a combined video encoder-decoder (CODEC).

[0117] Illustrative aspects of the disclosure include:

[0118] Aspect 1. An apparatus for producing one or more haptic effects, the apparatus comprising: at least one memory; and at least one processor coupled to the at least one memory and configured to: determine, based on one or more parameters, a drive voltage for an actuator associated with the apparatus; apply the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the apparatus; determine a back electromagnetic field (BEMF) associated with the acceleration waveform; determine a braking voltage based on the BEMF; and apply the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

[0119] Aspect 2. The apparatus of Aspect 1, wherein the drive voltage is precomputed or generated in real time.

[0120] Aspect 3. The apparatus of any of Aspects 1 or 2, further comprising removing the drive voltage to the actuator.

[0121] Aspect 4. The apparatus of Aspect 3, further comprising continuously monitoring the BEMF using a power management integrated circuit.

[0122] Aspect 5. The apparatus of Aspect 4, wherein the BEMF is monitored at an output of the actuator.

[0123] Aspect 6. The apparatus of any of Aspects 3 to 5, wherein the BEMF is generated based on motion of a mass of the actuator after the drive voltage is removed.

[0124] Aspect 7. The apparatus of any of Aspects 1 to 6, wherein the braking voltage is determined based on a rate of change of the BEMF.

[0125] Aspect 8. The apparatus of any of Aspects 1 to 7, wherein the one or more parameters are associated with the actuator and comprise at least one of one or more electrical parameters, one or more derived parameters, or one or more mechanical parameters.

[0126] Aspect 9. The apparatus of Aspect 8, wherein the one or more electrical parameters comprise at least one of an electrical coil voice resistance at direct current, a voice coil inductance at first frequencies, a para-inductance at second frequencies lower than the first frequencies, or a resistance due to eddy currents.

[0127] Aspect 10. The apparatus of any of Aspects 8 or 9, wherein the one or more derived parameters comprise at least one of an electrical capacitance representing a mechanical mass, an electrical inductance representing a mechanical compliance, a resistance due to mechanical losses, or a driver resonance frequency.

[0128] Aspect 11. The apparatus of any of Aspects 8 to 10, wherein the one or more mechanical parameters comprise at least one of a mechanical mass of a proof mass assembly, a mechanical resistance of total-driver losses, a mechanical stiffness of a driver suspension, a mechanical compliance of the driver suspension, or a force factor.

[0129] Aspect 12. The apparatus of any of Aspects 1 to 11, wherein the actuator is a linear resonant actuator (LRA).

[0130] Aspect 13. The apparatus of any of Aspects 1 to 12, wherein the apparatus is a mobile device.

[0131] Aspect 14. The apparatus of Aspect 13, wherein the mobile device is a mobile phone, a smart watch, or a tablet computer.

[0132] Aspect 15. A method for producing one or more haptic effects at a device, the method comprising: determining, based on one or more parameters, a drive voltage for an actuator associated with the device; applying the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the device; determining a back electromagnetic field (BEMF) associated with the acceleration waveform; determining abraking voltage based on the BEMF; and applying the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

[0133] Aspect 16. The method of Aspect 15, wherein the drive voltage is precomputed or generated in real time.

[0134] Aspect 17. The method of any of Aspects 15 or 16, further comprising removing the drive voltage to the actuator.

[0135] Aspect 18. The method of Aspect 17, further comprising continuously monitoring the BEMF using a power management integrated circuit.

[0136] Aspect 19. The method of Aspect 18, wherein the BEMF is monitored at an output of the actuator.

[0137] Aspect 20. The method of any of Aspects 17 to 19, wherein the BEMF is generated based on motion of a mass of the actuator after the drive voltage is removed.

[0138] Aspect 21. The method of any of Aspects 15 to 20, wherein the braking voltage is determined based on a rate of change of the BEMF.

[0139] Aspect 22. The method of any of Aspects 15 to 21, wherein the one or more parameters are associated with the actuator and comprise at least one of one or more electrical parameters, one or more derived parameters, or one or more mechanical parameters.

[0140] Aspect 23. The method of Aspect 22, wherein the one or more electrical parameters comprise at least one of an electrical coil voice resistance at direct current, a voice coil inductance at first frequencies, a para-inductance at second frequencies lower than the first frequencies, or a resistance due to eddy currents.

[0141] Aspect 24. The method of any of Aspects 22 or 23, wherein the one or more derived parameters comprise at least one of an electrical capacitance representing a mechanical mass, an electrical inductance representing a mechanical compliance, a resistance due to mechanical losses, or a driver resonance frequency.

[0142] Aspect 25. The method of any of Aspects 22 to 24, wherein the one or more mechanical parameters comprise at least one of a mechanical mass of a proof mass assembly , a mechanical resistance of total-driver losses, a mechanical stiffness of a driver suspension, a mechanical compliance of the driver suspension, or a force factor.

[0143] Aspect 26. The method of any of Aspects 15 to 25, wherein the actuator is a linear resonant actuator (LRA).

[0144] Aspect 27. The method of any of Aspects 15 to 26, wherein the device is a mobile device.

[0145] Aspect 28. The method of Aspect 27, wherein the mobile device is a mobile phone, a smart watch, or a tablet computer.

[0146] Aspect 29. A non-transitory computer-readable medium having stored thereon instructions that, when executed by at least one processor, cause the at least one processor to perform operations according to any of Aspects 15 to 28.

[0147] Aspect 30. An apparatus for producing one or more haptic effects, the apparatus including one or more means for performing operations according to any of Aspects 15 to 28.

[0148] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.”

Claims

CLAIMSWhat is claimed is:

1. An apparatus for producing one or more haptic effects, the apparatus comprising: at least one memory; and at least one processor coupled to the at least one memory and configured to: determine, based on one or more parameters, a drive voltage for an actuator associated with the apparatus; apply the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the apparatus; determine a back electromagnetic field (BEMF) associated with the acceleration waveform; determine a braking voltage based on the BEMF; and apply the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

2. The apparatus of claim 1, wherein the drive voltage is precomputed or generated in real time.

3. The apparatus of claim 1, further comprising removing the drive voltage to the actuator.

4. The apparatus of claim 3, further comprising continuously monitoring the BEMF using a power management integrated circuit.

5. The apparatus of claim 4, wherein the BEMF is monitored at an output of the actuator.

6. The apparatus of claim 3, wherein the BEMF is generated based on motion of a mass of the actuator after the drive voltage is removed.

7. The apparatus of claim 1, wherein the braking voltage is determined based on a rate of change of the BEMF.

8. The apparatus of claim 1, wherein the one or more parameters are associated with the actuator and comprise at least one of one or more electrical parameters, one or more derived parameters, or one or more mechanical parameters.

9. The apparatus of claim 8, wherein the one or more electrical parameters comprise at least one of an electrical coil voice resistance at direct current, a voice coil inductance at first frequencies, a para-inductance at second frequencies lower than the first frequencies, or a resistance due to eddy currents.

10. The apparatus of claim 8, wherein the one or more derived parameters comprise at least one of an electrical capacitance representing a mechanical mass, an electrical inductance representing a mechanical compliance, a resistance due to mechanical losses, or a driver resonance frequency.

11. The apparatus of claim 8, wherein the one or more mechanical parameters comprise at least one of a mechanical mass of a proof mass assembly, a mechanical resistance of totaldriver losses, a mechanical stiffness of a driver suspension, a mechanical compliance of the driver suspension, or a force factor.

12. The apparatus of claim 1, wherein the actuator is a linear resonant actuator (LRA).

13. A method for producing one or more haptic effects at a device, the method comprising: determining, based on one or more parameters, a drive voltage for an actuator associated with the device; applying the drive voltage to the actuator to produce an acceleration waveform for generating a haptic effect at the device;determining a back electromagnetic field (BEMF) associated with the acceleration waveform; determining a braking voltage based on the BEMF; and applying the braking voltage to the actuator to dampen out residual acceleration in the acceleration waveform.

14. The method of claim 13, wherein the drive voltage is precomputed or generated in real time.

15. The method of claim 13, further comprising removing the drive voltage to the actuator.

16. The method of claim 15, further comprising continuously monitoring the BEMF using a power management integrated circuit.

17. The method of claim 16, wherein the BEMF is monitored at an output of the actuator.

18. The method of claim 15, wherein the BEMF is generated based on motion of a mass of the actuator after the drive voltage is removed.

19. The method of claim 13, wherein the braking voltage is determined based on a rate of change of the BEMF.

20. The method of claim 13, wherein the one or more parameters are associated with the actuator and comprise at least one of one or more electrical parameters, one or more derived parameters, or one or more mechanical parameters.

Citation Information

Patent Citations

  • Linear motor control method and device

    CN116054679A

  • System optimization method based on motor parameter estimation and motor tactile feedback system

    CN116683824A

  • Restricting undesired movement of a haptic actuator

    US20210328535A1

  • Coherent phase switching and modulation of a linear actuator array

    US20210365123A1