throbber
as) United States
`a2) Patent Application Publication (0) Pub. No.: US 2008/0198139 Al
` Lacroix et al. (43) Pub. Date: Aug. 21, 2008
`
`
`
`US 20080198139A1
`
`(54) HAPTIC FEEDBACK SYSTEM WITH
`STORED EFFECTS
`
`(22)
`
`Filed:
`
`May 14, 2007
`
`(75)
`
`Inventors:
`
`Robert Andre Lacroix,
`Saint-Lambert (CA); Pedro
`Gregorio, Verdun (CA); Kollin M.
`Tierling, Milpitas, CA (US)
`
`Correspondence Address:
`WOMBLE CARLYLE SANDRIDGE & RICE,
`PLLC
`ATTN: PATENT DOCKETING 32ND FLOOR,
`P.O. BOX 7037
`ATLANTA, GA 30357-0037
`
`(73) Assignee:
`
`Immersion Corporation, San Jose,
`CA (US)
`
`(21) Appl. No.:
`
`11/748,219
`
`Related U.S. Application Data
`(60) Provisional application No. 60/890,690,filed on Feb.
`20, 2007.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 3041
`(52) US. CD. ee cececssseeceserersesesenseesenssensentes 345/173
`(57)
`ABSTRACT
`
`includes a controller, a
`A haptic feedback system that
`memory coupled to the controller, an actuator drive circuit
`coupled to the controller, and an actuator coupled to the
`actuator drive circuit. The memory storesat least one haptic
`effect that is executed by the controller in order to create a
`haptic effect.
`
`Controller
`
`
`13
`
`11
`42 18
`
`oS
`
`
`Actuator Drive
`
`Circuit
`16
`
`
`Vibration
`Actuator
`
`APPLE 1010
`
`APPLE 1010
`
`1
`
`

`

`Patent Application Publication
`
`Aug. 21,2008 Sheet 1 of 6
`
`US 2008/0198139 Al
`
`13
`
`Memory
`20
`
`Controller
`12
`
`SS
` Actuator Drive
`
`Circuit
`16
`
`Actuator
`
`Fig. 1
`
`2
`
`

`

`Patent Application Publication
`
`Aug. 21, 2008 Sheet 2 of 6
`
`US 2008/0198139 Al
`
`100
`
`/
`
`32
`
`Application 2
`
`34
`
`36
`
`Host processor
`
`30
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`39
`
`Service. Provider
`Pi
`Antetace,
`
`
`
`
`
`
`1 PWM, x y kHz, 1
`
`1P WM,15-30 kHz, 1
`
`42
`
`a
`
`SMKPiezo
`Drive Circuit
`
`LRA Drive
`Circuit
`
`46
`
`48
`
`oN Piezotactile
`
`system
`
`52
`
`LRA tactile system
`
`3
`
`

`

`Patent Application Publication
`
`Aug. 21,2008 Sheet 3 of 6
`
`US 2008/0198139 Al
`
`
`
`Client Application
`
`
`Playback RequesfData:
`
`Index, Priority, Repeat Count,
`
` Playback’
`
`request
`Repeat Gap
`
`
`
`Playback
`
`
`request
`
`
`Playback
`result/
`
`
`handle
`
`request
`
`APT State Data:
`
`
`Current Effect Handle
`
`
`
`
`
`CurrentPriority
`
`
`
`request—
`GetStat
`Playback
`
`
`
`Index,
`ACK/NAK
`(ifNAK
`
`
`
`Rpt Cnt,
`
`| Rpt Gap
`
`
`DAI
`
`DSEConstructData
`
`Timer Object
`
`(Driver Access Interface) DAI State Data:
` Master Strength
`Current Timeticks
`
`
`
`Current Effect Index
`Current Repeat Count
`Repeat Gap
`Current DSE Datapointer
`Current PWM value
`Current PWM remainder
`value
`
`
`
`
`
`
`Actuator
`Control
`Data
`(every
`5ms)
`
`
`
`
`
`
`
`
` Current Mode (Hold/Ramp)
`(Service Provider Interface)
`
`SPI
`
` Actuator
`
`Drive
`
`4
`
`

`

`Patent Application Publication
`
`Aug. 21,2008 Sheet 4 of 6
`
`US 2008/0198139 Al
`
`DSEFile
`
`DSE 1.0 Header Block
`
`Effect Set Name Block (optional)
`
`Effect Storage Block
`
`Fig. 4
`
`5
`
`

`

`Patent Application Publication
`
`Aug. 21,2008 Sheet 5 of 6
`
`US 2008/0198139 Al
`
`Effect Storage Offset Sub-Block
`
` Effect Storage Block
`
`Effect Storage Data Sub-Block
`
`6
`
`

`

`Patent Application Publication
`
`Aug. 21,2008 Sheet 6 of 6
`
`US 2008/0198139 Al
`
`Idealized
`
`Voltage
`
`7
`
`

`

`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`HAPTIC FEEDBACK SYSTEM WITH
`STORED EFFECTS
`
`RELATED APPLICATIONS
`
`[0001] This application claims the benefit of U.S. Provi-
`sional Patent Application No. 60/890,690,filed Feb. 20, 2007.
`
`FIELD OF THE INVENTION
`
`[0002] One embodimentofthe present invention is directed
`to a handheld device with a touchscreen. Moreparticularly,
`one embodiment of the present invention is directed to a
`handheld device with a touchscreen that includes a haptic
`feedback system.
`
`BACKGROUND INFORMATION
`
`[0003] Electronic device manufacturers strive to produce a
`rich interface for users. Conventional devices use visual and
`auditory cues to provide feedbackto a user. In someinterface
`devices, kinesthetic feedback (such as active and resistive
`force feedback) and/or tactile feedback (such as vibration,
`texture, and heat) is also providedto the user, more generally
`knowncollectively as “haptic feedback.” Haptic feedback can
`provide cues that enhance and simplify the user interface.
`Specifically, vibration effects, or vibrotactile haptic effects,
`may be useful in providing cuesto users of electronic devices
`to alert the user to specific events, or provide realistic feed-
`back to create greater sensory immersion within a simulated
`or virtual environment.
`[0004] Haptic feedback has also been increasingly incor-
`porated in portable electronic devices, such as cellular tele-
`phones, personal digital assistants (PDAs), portable gaming
`devices, and a variety ofother portable electronic devices. For
`example, some portable gaming applications are capable of
`vibrating in a manner similar to control devices (e.g., joy-
`sticks, etc.) used with larger-scale gaming systemsthat are
`configured to provide haptic feedback. Additionally, devices
`such as cellular telephones and PDAsare capable of provid-
`ing variousalerts to users by way of vibrations. For example,
`acellular telephonecan alert a user to an incoming telephone
`call by vibrating. Similarly, a PDA can alert a user to a
`scheduled calendar item or provide a user with a reminder for
`a “to do”list ttem or calendar appointment.
`[0005]
`Increasingly, portable devices are moving away
`from physical buttonsin favor oftouchscreen only interfaces.
`This shift allows increased flexibility, reduced parts count,
`and reduced dependenceon failure-prone mechanical buttons
`and is in line with emerging trends in product design. When
`using the touchscreen input device, a mechanical confirma-
`tion on button press or other user interface action can be
`simulated with haptics.
`[0006]
`Some known devices modify or generate haptic
`effects in real-time or “on the fly”. Although this allows a
`wide variety of haptic effects to be generated, it may require
`a substantial amountof processing power and maynotfacili-
`tate rapid developmentof new devices because the wide vari-
`ety of possible haptic effects must be compatible with the
`hardware interface of the device.
`there is a need for an
`[0007] Based on the foregoing,
`improved system and methodfor generating haptic effects for
`a device.
`
`SUMMARYOF THE INVENTION
`
`[0008] One embodimentis a haptic feedback system that
`includes a controller, a memory coupled to the controller, an
`actuator drive circuit coupled to the controller, and an actua-
`
`tor coupled to the actuator drive circuit. The memory stores at
`least one haptic effect that is executed by the controller in
`order to create a haptic effect. The stored haptic effect, unlike
`real-time generated haptic effects, reduces the required pro-
`cessing power.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG.1 is a block diagram ofa cellular telephone in
`[0009]
`accordance with one embodiment.
`[0010]
`FIG. 2 isa block diagram of the system architecture
`of a haptic feedback system in accordance with one embodi-
`ment.
`
`FIG. 3 is a block diagram of the software architec-
`[0011]
`ture in accordance with one embodiment.
`
`FIG. 41s a block diagram ofthefile format used in
`[0012]
`one embodimentfor a digitized steam envelope construct.
`[0013]
`FIG. 5isa block diagram of an Effect Storage Block
`in accordance with one embodiment.
`
`DETAILED DESCRIPTION
`
`FIG. 1 isa block diagram ofa cellular telephone 10
`[0014]
`in accordance with one embodiment. Telephone 10 includes a
`screen 11 and keys 13. In one embodiment, keys 13 are
`mechanicaltype keys. In another embodiment, keys 13 can be
`implemented by a touchscreenor other type oftouch sensitive
`surface so that keys 13 are touchscreenkeys, or can be imple-
`mented using any method.Internal to telephone 10 is a haptic
`feedback system that generates vibrations on telephone 10. In
`one embodiment, the vibrations are generated on the entire
`telephone 10. In other embodiments, specific portions oftele-
`phone 10 can be haptically enabled by the haptic feedback
`system, including individual keys of keys 13, whether the
`keys are mechanically oriented, touchscreen, or some other
`type of implementation.
`[0015] The haptic feedback system includes a controller
`12. Coupled to controller 12 is a memory 20 andan actuator
`drive circuit 16, which is coupled to a vibration actuator 18.
`Although the embodimentof FIG.1 is a cellular telephone,
`embodiments of the present invention can be implemented
`with any type of handset or mobile/portable device, or any
`device that uses an actuator to generate vibrations. Further,
`the haptic feedback system may be implementedas a devel-
`opment board that allows manufacturers of haptically
`enabled handsets to perform rapid prototypes.
`[0016] Controller 12 may be any type of general purpose
`controller or processor, or could be a controller specifically
`designed to provide haptic effects, such as an application-
`specific integrated circuit (“ASIC”). Controller 12 may be the
`same controller/processor that operates the entire telephone
`10, or may be a separate controller. Controller 12 can decide
`whathaptic effects are to be played andthe order in which the
`effects are played based on high level parameters. In general,
`the high level parametersthat define a particular haptic effect
`include magnitude, frequency and duration.
`[0017] Controller 12 outputs the control signals to drive
`circuit 16 which includes electronic components and circuitry
`used to supply actuator 18 with the requiredelectrical current
`and voltage to cause the desired haptic effects. Actuator 18 is
`a haptic device that generates a vibration on telephone 10.
`Actuator 18 can include one or more force applying mecha-
`nisms which are capable of applying a vibrotactile force to a
`user of telephone 10 (e.g., via the housing of telephone 10).
`Actuator 18 may be, for example, an electromagnetic actua-
`
`tor, an Eccentric Rotating Mass (“ERM”’)in which an eccen-
`tric mass is moved by a motor, a Linear Resonant Actuator
`(“LRA”) in which a mass attached to a spring is driven back
`
`8
`
`

`

`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`
`
`cycle resolution, 50%=no output, with a fine granularity in
`the 20-30 kHz range (as the carrier frequency is a multiple of
`the LRA drive frequency in many designs). The circuit also
`requires a General Purpose Output (“GPO”) for AMP_EN-
`ABLEcontrol.
`
`and forth, or a “smart material”such as piezoelectric, electro-
`active polymers or shape memory alloys. Memory 20 can be
`any type of storage device, such as random access memory
`(“RAM”) or read-only memory (“ROM”). Memory 20 stores
`instructions executed by controller 12. Memory 20 mayalso
`be located internal to controller 12, or any combination of
`[0027] Alternately, an even simpler amp circuit could be
`internal and external memory.
`used, because a 5 or 8 kHz output rate from the driver would
`allow outputof sine or square waveformsat the LRA resonant
`[0018]
`FIG. 2 is a block diagram of the system architecture
`frequency. This eliminates the need to fine-tune the PWM
`of a haptic feedback system 100 in accordance with one
`frequency, as the resonant frequency woulditselfbe encoded.
`embodiment. System 100 includes two or more applications
`30 and 32 that call, via software commands, for a specific
`[0028]
`FIG. 3 is a block diagram of the software architec-
`ture in accordance with one embodiment. One embodiment of
`stored haptic effect to be played. Application program inter-
`face (““API’’) 34 interprets the software commands and out-
`the architecture includes the following:
`puts to two parallel paths, one for each type of actuator. In
`[0029]
`1. No custom effect playback for applications.
`other embodiments, one or more paths may be implemented.
`Only pre-definedeffects (“stored haptic effects’), stored
`In FIG.2, the left-side path is for a piezo actuator 50 while the
`in Digitized Streaming Envelope (“DSE”) constructs
`right-side path is for an LRA actuator 52.
`stored in the driver software can be played back.
`[0019] Coupled to each path is a digitized stream envelope
`[0030]
`2. No real-time generation. Effect playback is
`(“DSE”) construct 36 which includesstored haptic effects. In
`based on a pre-recorded control signal, not generated in
`one embodiment, four different haptic effects are stored, but
`real-time. The control signal is computed using an effect
`any numbermaybestored. Each path includesa driver 38 and
`design tool.
`40 and a service provider interface 39 and 41 that include
`[0031]
`3. Multiple application support. Multiple appli-
`information on the specific type of actuatorfor the path. This
`cations could register with the API simultaneously. Sup-
`allows the API to be hardware/actuator independent.
`porting multiple applications requires some form ofAPI
`[0020] Each path further includes, for each actuator, a drive
`client marshaling, where the API must determine whose
`signal 42 and 46 and an electrical drive circuit 44 and 48.
`request is most important. Two approachesare possible:
`Finally, actuators 50 and 52 generate the vibration or other
`[0032]
`a. Last caller wins. When multiple applications
`desired haptic effect.
`try to usethe vibration resource simultaneously, the last
`the piezo actuator driver
`[0021]
`In one embodiment,
`caller interrupts whatever was playing before andits
`expects a differential sine wave control signal. One embodi-
`effect plays.
`ment generates a sine wave in software at a 5 kHz rate and
`[0033]
`b. Priority scheme. The API could support a con-
`outputs that as a pulse width modulation (“PWM”) signal. A
`cept of high/medium/low priority on effect playback
`simpler control signal may be used to achieve the samefeel on
`launch. When launchinganeffect, the caller specifies the
`the device. However, in one embodiment, the piezo circuit
`priority to be used. Playback succeeds whenpriority is
`requires a PWMsignal with fixed frequency in the 20-50 kHz
`equal to or higher than the current effect’s playback
`range, whose duty cycle is expected to be updated every 200
`priority.
`Ls.
`[0034]
`4. Designed for portability. Like VibeTonz®,
`In one embodiment, there are at least 3 possible
`[0022]
`ANSIC only, no dynamic memory allocation.
`physical configurations for the LRAs:
`[0035]
`In one embodiment, the Driver Access Interface
`the
`[0023]
`1. Case mounting—In this configuration,
`(“DAT”) consists of lower-level functions that provide the
`LRAsare mounted rigidly to the interior of the device
`bulk of the API functionality. In one embodiment, the DAIis
`casing. The LRA is driven at its resonant frequency
`designed to be implemented as a functional interface, which
`(from 175 Hz to 185 Hz), and the entire device is actu-
`is easily wrappedinaserial protocol. The driver is a timed
`ated.
`loop that executes the following commands:
`[0036]
`1. Look at API/Driver shared memory.If play-
`back is scheduled, retrieve current DSE pointer from
`memory, along with any other required driver/effect
`state information.
`
`2. Screen mounting—matched frequency. The
`[0024]
`screen is floated on a suspension, mechanically isolated
`from the casing, andthe LRAsare rigidly mountedto the
`screen. The LRAsis typically driven at the LRA reso-
`nant frequency, and the suspension is tuned to reinforce
`that frequency.
`[0025]
`3. Screen mounting—bi-modal. The screen is
`floated on a suspension, mechanically isolated from the
`casing, and the LRAsare rigidly mountedto the screen.
`The LRA can be driven at the LRA resonant frequency in
`which case the suspension is tuned to transmit most of
`the vibration to the casing. The LRA can also be driven
`at the system’s natural frequency, with the suspension
`tuned to a higher frequency than the LRA’s own resonant
`frequency (typically approx. 500 Hz). In this configura-
`tion, the LRA can be used both as an event alerting
`system (Silent/Manner mode vibration alerter) or as a
`touchscreen feedback system (for button press tactile
`confirmation).
`[0026]
`In one embodiment, many variants of the known
`VibeTonz® LRA drive circuit from Immersion Corp. can be
`used. Generally, these drive circuits require one PWM at
`20-50 kHz fixed frequency, variable duty cycle, 8-bit duty
`
`2. Ifstate is “playing effect”, decode DSE,extract
`[0037]
`PWMvalueto be applied to PWM. Then write to PWM.
`Sleep until next sample.
`[0038]
`3. If state is “finished iteration check for repeat”,
`and ifeffect is to be repeated, decrementrepeat value, set
`up gap timing and sleep until gap time expires.
`[0039]
`In one embodiment, DSEconstruct 36 of FIG. 2 isa
`set of magnitudes, or strengths, over time, for a number of
`effects. The samples are stored in a lossless compact format.
`Files containing DSE informationusethe .dsefile extension.
`[0040]
`FIG. 41s a block diagram ofthefile format used in
`one embodimentfor the DSE construct. The DSE 1.0 Header
`Block contains file format version information, number of
`effects, location of the Effect Storage Block, location of the
`Effect Set Name Block, and file size. The Effect Storage
`Block containsall the effect definitions stored in the DSEfile.
`The Eftect Set Name Block, which is optional, contains the
`nameofthe effect set.
`
`9
`
`

`

`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`FIG. 5 is a block diagram of the Effect Storage
`[0041]
`Block, in accordance with one embodiment, which has two
`sub-blocks: an Effect Storage Offset Sub-Block and an Effect
`Storage Data Sub-Block.
`[0042] The Effect Storage Offset Sub-Block is an array of
`offsets, one offset for each effect. Each offset occupies two
`bytes with the least-significant byte at the lower memory
`address. The number of effects is stored in the DSEfile
`
`header. The offset, in bytes, specifies where in the Effect
`Storage Data Sub-Blocktheeffect’s definition begins relative
`to the start of the Effect Storage Data Sub-Block. Thesize of
`the Effect Storage Offset Sub-Block is 2*EFFECTCOUNT.
`The EFFECTCOUNTcomesfrom the DSEfile header. The
`Lffect Storage Data Sub-Block stores the effect definitions.
`[0043]
`In one embodiment, the DSE contains magnitude
`control information over time. An idealized voltage, from
`-127 to 127,
`is modulated over time to drive a vibration
`actuator. For AC control (e.g., LRAs), other parts of the
`system (driver software, electronics) are responsible for syn-
`thesizing the AC signal, andthe DSErepresents the maximum
`value attained, per cycle, by the AC control signal.
`[0044]
`FIG.6 illustrates a typical short control signal or
`stored haptic effect where the critical data to be encoded is
`clearly identified in accordance with one embodiment.
`Unlike known systems that generate haptic effects in real-
`time by generating haptic effects from a plurality ofhigh level
`parameters, the haptic effect in FIG. 6 is predefined with the
`low level haptic parameters such as voltage levels and time
`duration.
`
`Point 1 is the start of the haptic effect, which is
`[0045]
`always assumedtostart at time t=O ms. Assumethat idealized
`voltage level is 127. The time between point 1 and point 2 is
`
`for example,
`the kickstart pulse. Point 2, occurring at,
`time=20 ms, identifies the start of the sustain period, with
`voltage level 80 applied. This level is applied until point 3 at
`time=100 ms, for example, where a braking pulsestarts, with
`voltage at -127. At point 4, time t=120 ms, voltage dropsto 0.
`An additional zero point, point 5, is placed at t=150 ms to
`encode a certain amountof silence—useful when theeffectis
`designed to be repeated (the same effect can be obtained by
`specifying a gap value ina DAI/APIcall). Table 1 below is an
`example ofhowthecritical points and timings are encoded in
`one embodiment.
`
`TABLE1
`
`Byte #
`
`Meaning
`
`
`
`OmAAAMPWNOS
`
`Apply voltage level 127...
`For 20 ms.
`Apply voltage level 80...
`For 80 ms.
`Apply voltage level -127...
`For 20 ms.
`Apply voltage level 0...
`For 30 ms.
`Apply voltage level 0...
`For 0 ms - this means, “end ofdigitized streamed effect
`definition”.
`
`Inone embodimenta slightly more complex encod-
`[0046]
`ing that incorporates a slope encoding is shown in Tables 2
`and 3 below. Regardingtable 2, the following applies:
`[0047]
`1. Data is organized in voltage/timepairs.
`[0048]
`2. Timeisrelative, not absolute. “Apply X voltage
`for the next Y milliseconds”, and not “Apply voltage X start-
`ing at time=Y”.
`
`TABLE 2
`
`Generalized Voltage/Time Pair Encoding, “Set & Hold”Pair:
`
`Byte #
`
`Bits
`
`Data
`
`Meaning
`
`7
`Ramp/nHold 0 => Holdthis voltage level constant for this duration
`6...0 Voltage/2
`Voltage level to be applied, divided by 2. Use a single
`left shift commandandcast to a signed 8-bit integer to
`obtain the desired voltage level between -127 and 127.
`The driver should always add 1/-1 to the result unless
`the valueis 0.
`Time,in 5 ms increments. Forbest results, the driver
`code should run the control loop at 200 Hz. Maximum
`time that can be encoded = 255 x 5 ms = 1.275 sec. For
`longer durations, create a sequence of voltage/time
`pairs.
`
`7...0 Time, ms/5
`
`00
`
`TABLE3
`
`Generalized Voltage/Time Pair Encoding, “Set & Ramp”Pair:
`Bits
`
`Data
`
`Meaning
`
`7
`
`6...0 Voltage/2
`
`Ramp/nHold 1 => Start at the voltage level and ramp according to
`the enclosed parameters for the specified duration
`Voltage level to be applied at time 0, divided by 2. Use
`asingle left shift command and cast to a signed 8-bit
`integer to obtain the desired voltage level between -127
`and 127. The driver should always add 1/—1 to the
`result unless the valueis 0.
`Time,in 5 ms increments. Forbest results, the driver
`code should run the control loop at 200 Hz. Maximum
`time that can be encoded = 255 x 5 ms = 1.275 sec. For
`longer durations, create a sequence of voltage/time
`pairs.
`
`7...0 Time, ms/5
`
`10
`
`Byte #
`
`0 0
`
`10
`
`

`

`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`TABLE3-continued
`
`Generalized Voltage/Time Pair Encoding, “Set & Ramp”Pair:
`
`Byte #
`
`Bits Data
`
`Meaning
`
`2
`
`3
`
`7...0 Slope
`
`7...0 SlopeFrac
`
`-128, or -127 to 127. Whole part of the slope value,
`representing whole PWMstepsto be taken every 5 ms.
`—128 represents a Slope of “negative 0”, versus
`“positive 0”, which is 0. More on slope below.
`0... 255. Fractional part of the slope value, expressed
`as a fraction of 256. More on slope below.
`
`11. A method of generating a haptic effect comprising:
`retrieving a stored haptic effect;
`generating drive signals based on the stored haptic effect;
`and
`applying the drive signals to an actuator.
`12. The method of claim 11, wherein the haptic effect
`comprisesa plurality of discrete magnitude points.
`13. The method of claim 12, wherein a magnitudeis held
`constant over a time period.
`14. The method of claim 12, wherein a magnitude is modu-
`lated over a time period as a function oftime.
`15. The method of claim 12, wherein the discrete magni-
`tude points comprise a start point, a sustain point, a brake
`point, and a zero point.
`16. The methodof claim 11, wherein the haptic effect is a
`pre-computed haptic effect.
`17. The method of claim 11, wherein the haptic effect is
`generated with an effect design tool.
`18. The method of claim 11, wherein the actuator is a
`Linear Resonant Actuator.
`19. The method of claim 11, wherein the actuatoris a piezo
`actuator.
`
`20. The method of claim 11, wherein the haptic effect is
`stored as a digitized streamed envelope construct.
`21. A computer readable medium having instructions
`stored thereon that, when executed by a processor, cause the
`processorto:
`retrieve a stored haptic effect;
`generate drive signals based on the stored haptic effect; and
`apply the drive signals to an actuator.
`22. The computer readable medium of claim 21, wherein
`the haptic effect comprises a plurality of discrete magnitude
`points.
`23. The computer readable medium ofclaim 22, wherein a
`magnitude is held constant over a time period.
`24. The computer readable medium of claim 22, wherein a
`magnitude is modulated over a time period as a function of
`time.
`25. The computer readable medium of claim 22, wherein
`the discrete magnitude points comprise a start point, a sustain
`point, a brake point, and a zero point.
`26. The computer readable medium of claim 21, wherein
`the haptic effect is a pre-computed haptic effect.
`27. The computer readable medium of claim 22, wherein
`the haptic effect is generated with an effect design tool.
`28. The computer readable medium of claim 22, wherein
`the actuator is a Linear Resonant Actuator.
`
`29. The computer readable medium of claim 22, wherein
`the actuatoris a piezo actuator.
`30. The computer readable medium of claim 22, wherein
`the haptic effect is stored as a digitized streamed envelope
`construct.
`
`[0049] Using Slope and Slopel'rac
`The driver can use these values in the following way:
`[0050]
`pwm=Voltage<<1; /*Initial PWM value*/
`[0051]
`pwm_rem=0; /*Initial PWM remainder*/
`In 5 msloop:
`
`If( (pwm__rem + SlopeFrac) <pwm__trem) /* this remainder is aboutto
`rollover */
`
`{S
`
`}p
`
`lope >= 0 ? pwm++ : pwm--;
`
`wm_rem += SlopeFrac;
`if( -128 != Slope) pwm += Slope;
`
`[0052] Effect Name Block, which is optional, has one sub-
`block: an Effect Name Data Sub-Block.
`
`Several embodiments are specifically illustrated
`[0053]
`and/or described herein. However,it will be appreciated that
`modifications and variations of are covered by the above
`teachings and within the purview of the appended claims
`without departing from the spirit and intended scope of the
`invention.
`Whatis claimedis:
`
`1. A haptic feedback system comprising:
`a controller;
`amemory coupled to said controller;
`an actuator drive circuit coupled to said controller; and
`an actuator coupled to said actuatordrive circuit;
`wherein said memory stores at least one haptic effect.
`2. The haptic feedback system of claim 1, wherein said
`haptic effect comprises a plurality of discrete magnitude
`points.
`3. The haptic feedback system of claim 2, wherein a mag-
`nitude is held constant over a time period.
`4. The haptic feedback system of claim 2, wherein a mag-
`nitude is modulated over a time period as a function of time.
`5. The haptic feedback system of claim 2, wherein said
`discrete magnitude points comprise a start point, a sustain
`point, a brake point, and a zero point.
`6. The haptic feedback system of claim 1, wherein said
`haptic effect is a pre-computedhaptic effect.
`7. The haptic feedback system of claim 6, wherein said
`haptic effect is generated with an effect design tool.
`8. The haptic feedback system of claim 1, wherein said
`actuator is a Linear Resonant Actuator.
`9. The haptic feedback system of claim 1, wherein said
`actuatoris a piezo actuator.
`10. The haptic feedback system of claim 1, wherein the
`haptic effect is stored as a digitized streamed envelope con-
`struct.
`
`11
`
`11
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket