Patent Description:
Some trackpads are "clickable" (also referred to as clickpads), which refers to an additional ability to detect a magnitude of force on or displacement of the sensing surface caused by the user's finger(s) and include force / displacement magnitude in the digital output. The operating system may utilize the force / displacement magnitude applied by the user's finger(s) to determine if the user intends to "click" the trackpad in the detected position and with the detected motion of the user's finger(s). Supplementing the movement stroke of a trackpad with a haptic response is one way to provide feedback to a user, for example, by indicating that sufficient force has been detected by the trackpad to register a "click.

<CIT> discloses an electronic device having a vibration generator vibrating an input portion in response to contact with the input portion, a driving circuit portion supplying a driving signal having an acceleration period including a first pulse of a predetermined pulse width vibrating the vibration generator by resonance and a deceleration period including a second pulse of a phase opposite to the phase of the first pulse to the vibration generator, and a vibration control portion changing the number of first pulses included in the driving signal supplied to the vibration generator by the driving circuit portion according to the operating environment.

<CIT> discloses an electronic damping feedback control system coupled in a feedback loop between a user interface device and an electroactive polymer actuator, where the actuator is coupled to the user interface device. The electronic damping feedback control system is configured to receive an actuation signal from the user interface device in response to a user input. In response to the actuation signal, the electronic damping feedback control system generates an electronic damping signal to couple to the actuator.

<CIT> discloses a control system for a linear vibration motor capable of eliminating necessity of a separate sensor of detecting the motion of the motor. The control system includes a controller which detects an ongoing amplitude, i.e., the motion represented by the displacement, speed, or acceleration of the vibrator and provides ON-periods of feeding the driving current to the winding in a varying amount based upon the ongoing amplitude detected in order to keep a vibration amplitude of the vibrator constant. Thus, the winding can be best utilized commonly to drive the motor and to sense the ongoing amplitude or motion of the vibrator, thereby eliminating an additional sensor for detection of the motion of the vibrator.

<CIT> discloses a linear motor overtravel control method comprising: acquiring a maximum target acceleration value of the linear motor; obtaining a time domain threshold of the linear motor; when the maximum target acceleration value is greater than or equal to the time domain threshold, acquiring an excitation voltage corresponding to the time domain threshold; determining an adjustment range of a maximum input excitation voltage of the linear motor based on the excitation voltage; and controlling the maximum input excitation voltage to be within the adjustment range to drive the linear motor to vibrate.

<CIT> discloses an accelerometer mechanically coupled to a linear resonant actuator (LRA), such as by being mounted to the same circuit board. The output of the accelerometer is evaluated in order to select a drive frequency for the LRA.

<CIT> discloses an impact-driven actuator activated by a pulse voltage generated by an action of a transistor. A stress monitoring unit calculates a stress amount of an impact-driven actuator based on parameters of a key event and a pulse voltage. A stress adjustment unit changes the parameter of the pulse voltage when the stress amount reaches a permissible value.

Implementations described and claimed herein provide a trackpad comprising a printed circuit board (PCB) including a touch interface, a haptic element fixedly attached to the PCB to selectively oscillate the PCB, an accelerometer fixedly attached to the PCB to measure peak-to- peak acceleration of the oscillation of the PCB, and a microcontroller. The microcontroller compares the measured peak-to-peak acceleration with a target peak-to-peak acceleration of the oscillation of the PCB and adjusts an output of the haptic element to change the measured peak- to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB. Implementations described and claimed herein further provide a method for actively controlling a trackpad comprising measuring peak-to-peak acceleration of a haptic event oscillation of a printed circuit board (PCB) including a touch interface using an accelerometer fixedly attached thereto, comparing the measured peak-to-peak acceleration with a target peak-to-peak acceleration of the oscillation of the PCB, and adjusting an output of a haptic element fixedly attached to the PCB to change the measured peak-to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB.

Implementations described and claimed herein still further provide a haptic button comprising a frame, a printed circuit board (PCB), a resiliently deflectable spacer oriented between the frame and the PCB, the resiliently deflectable spacer to permit shear displacement of the PCB with reference to the frame, a haptic element fixedly attached to the PCB to selectively oscillate the PCB, an accelerometer fixedly attached to the PCB to measure peak-to-peak acceleration of the oscillation of the PCB, and a microcontroller. The microcontroller compares the measured peak-to-peak acceleration with a target peak-to-peak acceleration of the oscillation of the PCB and adjusts an output of the haptic element to change the measured peak-to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Descriptions.

In mass production scale, there are variations in the manufacturing, tolerances, and environmental conditions, for example, which may cause mechanical properties of a run of trackpads to vary click-by-click and unit-by-unit. Also, as time goes, mechanical wear or material degradation within each trackpad may change its mechanical properties. All of which may cause the haptic response received by the user to vary across similarly designed trackpads, and also change over time on the same trackpad. This may be interpreted by the user as an indication of low product quality.

The following describes in detail haptic trackpads including accelerometers that enable the disclosed active control and/or calibration. The disclosed haptic trackpads allow for a more uniform user experience across a manufacturing run of trackpads and/or throughout the projected life of individual trackpads.

<FIG> illustrates a perspective view of an example keyboard <NUM> including a haptic trackpad <NUM> with an accelerometer <NUM> and using active control and/or calibration according to the presently disclosed technology. Generally, the keyboard <NUM> includes a keypad <NUM> and the haptic trackpad <NUM> mounted within a frame <NUM>. The keypad <NUM> contains an array of keys (e.g., key <NUM>) arranged in a predetermined pattern (e.g., QWERTY). Each key within the keypad <NUM> may be communicatively connected to an associated computing device (also not shown). The haptic trackpad <NUM> (also referred to herein as a user-depressible touchpad or mousepad) converts physical user inputs into corresponding electrical signals that may be interpreted by the computing device, as well as providing haptic feedback to the user.

The keyboard <NUM> may also secure additional electronic components or other user-depressible interface components (e.g., push buttons, dials, and/or knobs, not shown). In various implementations, some or all of the haptic trackpad <NUM>, individual keys of the keypad <NUM>, and the push buttons, dials, and/or knobs incorporated within the keyboard <NUM> may incorporate accelerometers and use active control and/or calibration as further described in detail below.

The haptic trackpad <NUM> (or other user-depressible interface that incorporates accelerometers and uses active control and/or calibration) may have a variety of mechanical arrangements that achieve a specified physical depression magnitude (or travel), with a variety of force-deflection profiles. Resiliently deflectable spacers (e.g., spacer <NUM> are spaced apart across an x-y plane of the haptic trackpad <NUM>. While <NUM> spacers are depicted, in other implementations greater or fewer spacers may be used. The resiliently deflectable spacers provide x-y plane compliance and separate a PCB and associated touch sensor (also referred to as a touch glass or simply glass) from another resiliently deflectable structure that provides compliance in the z-direction (e.g., cantilever spring <NUM> of <FIG>), but not in the x-y plane. In various implementations, the physical depression in the z-direction is used as a proxy for z-direction force measurement, as applied by a user, on the haptic trackpad <NUM>.

While the haptic trackpad <NUM> is capable of physical depression in order to detect the force magnitude applied on the haptic trackpad <NUM>, the physical depression may be insufficient to provide a user an adequate trackpad feel and feedback. For example, the depression may be too small for the user to gauge application of adequate pressure to constitute a "click. " To enhance the user's perception of adequate pressure to constitute a "click," the haptic trackpad <NUM> includes haptic element <NUM> that is actuated by and works in conjunction with the physical travel of the haptic trackpad <NUM> to give physical feedback to the user that adequate force to constitute a "click" has been detected by the haptic trackpad <NUM>. This may offer the user a feel and overall performance comparable to a traditional clickable button snap-over collapsing in physical travel. The haptic element <NUM> generates haptic feedback in the form of a user-perceptible "click" by generating vibration or other repeated forces or motions (collectively, haptic responses) and transmitting the generated vibration, forces, or motions to the user via the haptic trackpad <NUM> concurrently with or immediately before or after the physical travel of the haptic trackpad <NUM> caused by the user's application of force on the haptic trackpad <NUM>. The haptic element <NUM> may utilize a variety of technologies to generate the vibration or other repeating forces or motions (e.g., weighted and unbalanced (linear or rotational) motors or electromagnetic actuators, linear resonant actuators (LRAs) solenoids, direct drive actuators, piezoelectric devices, vibra-motors, electrostatic feedback devices, and ultrasonic devices).

In various implementations, the haptic feedback is defined as any repeating oscillating motion that exceeds <NUM> of acceleration and an approximately <NUM>-micron displacement, while overall staying in position. The haptic feedback may also include a noise generated by the haptic element <NUM> as it oscillates (e.g., via resonance or collision of adjacent parts within the haptic trackpad <NUM>). As an example, linear oscillating vibration of the haptic trackpad <NUM> driven by the haptic element <NUM> is illustrated by dotted arrow <NUM>, which is oriented along the x-axis of the haptic trackpad <NUM>. In other implementations, the linear oscillating vibration is oriented along the y-axis or a combination of the x-axis and the y-axis of the haptic trackpad <NUM>. A rotational oscillating vibration may be oriented within the x-y plane of the haptic trackpad <NUM>.

In various implementations, depending upon the computing device type and construction, the frame <NUM> may be a device bucket or mid-frame, which serves as a structural framework for the keyboard <NUM>. The resiliently deflectable spacers connect portions of the haptic trackpad <NUM> to the frame <NUM> via the z-direction resiliently deflectable structure. In order for the haptic element <NUM> to vibrate the haptic trackpad <NUM> within the x-y plane, the haptic trackpad <NUM> is designed for compliance in the x-y plane with reference to the frame <NUM> using the resiliently deflectable spacers. This allows the haptic trackpad <NUM> to be capable of movement caused by the haptic element <NUM> in the x-y plane with reference to the frame <NUM>.

The accelerometer <NUM> is used to detect haptic acceleration (e.g., characterized herein as peak-to-peak acceleration) of the haptic trackpad <NUM> in real-time. More specifically, peak-to-peak acceleration (or PTP acceleration) is the difference between maximum positive and maximum negative amplitudes of a waveform describing the haptic acceleration of the haptic trackpad <NUM>. The accelerometer <NUM> is fixedly attached to an associated PCB so that it moves in unison with the PCB. This achieves a technical effect of an acceleration measurement by the accelerometer <NUM> being equivalent to acceleration of the PCB. The accelerometer <NUM> may feed acceleration data to a microcontroller unit (MCU), not shown, see e.g., MCU <NUM> of <FIG>), which calibrates the trackpad <NUM> initially or periodically and/or actively controls the trackpad <NUM> during its usage over time and total lifespan (e.g., using a control loop, as further discussed below). Further, the acceleration data may be used to introduce more features to the trackpad <NUM> in order to provide a consistent and therefore improved click experience for the user.

XYZ coordinates are shown and described to illustrate directional features of the disclosed technology. Other coordinate systems may also be used with different orientations with similar effect. Further, various aspects of the haptic trackpad <NUM> (e.g., the haptic element <NUM>, the accelerometer <NUM>, and the resiliently deflectable spacers) are depicted in broken lines in <FIG>. These features would not normally be visible from an exterior of the keyboard <NUM> and/or may appear far different from the depictions in <FIG> but are nonetheless shown to illustrate the disclosed technology.

In various implementations, the keyboard <NUM> may itself be considered a computing device or be physically and/or communicatively coupled to a tablet computer, a laptop computer, a personal computer, a gaming device, a smart phone, or any other discrete device that carries out one or more specific sets of arithmetic and/or logical operations. Further, features of the haptic trackpad <NUM>, including the haptic element <NUM>, the accelerometer <NUM>, and the resiliently deflectable spacers, may be applied to any push button or other user-depressible interface component with a touch interface, with or without the keyboard <NUM>. For example, the user-depressible interface component may be applied to vehicles (e.g., automobiles, watercraft, and aircraft), consumer electronics (e.g., cameras, telephones, and home appliances), and industrial or commercial machinery.

<FIG> illustrates a perspective underside view of an example haptic trackpad <NUM> with an accelerometer <NUM> and using active control and/or calibration according to the presently disclosed technology. The haptic trackpad <NUM> converts physical user inputs, into corresponding electrical signals that may be interpreted by a computing device (not shown). The haptic trackpad <NUM> also provides haptic feedback to the user. The haptic trackpad <NUM> is illustrated in a perspective underside view, which illustrates components that would not be ordinarily be visible when the trackpad <NUM> is installed within a keyboard (e.g., attached to frame <NUM> of keyboard <NUM> of <FIG>) or other computing device.

The haptic trackpad <NUM> is made up of a printed circuit board (PCB) <NUM> with a touch interface <NUM> (e.g., a mylar or glass layer) mounted thereon (e.g., with a pressure-sensitive adhesive, not shown, adhering the touch interface <NUM> to the PCB <NUM>). The PCB <NUM> detects location, size, and motion of the user's touch inputs on the touch interface <NUM> and the PCB <NUM> converts the location, size, and motion of the user's touch inputs into an electronic signal that can be interpreted by the computing device. The PCB <NUM> may utilize capacitive or resistive technology for sensing the user's touch inputs through the touch interface <NUM>, as examples. Further, the various components of the haptic trackpad <NUM> may be permanently bonded or laminated together.

The PCB <NUM> and the associated touch interface <NUM> is attached to a mounting plate <NUM> via an array of spaced resiliently deflectable spacers (e.g., resiliently deflectable spacer <NUM>). The resiliently deflectable spacers support the PCB <NUM> is a spaced relationship with the mounting plate <NUM> in a z-direction but permit compliance in an x-y plane so that the PCB <NUM> and the associated touch interface <NUM> may selectively vibrate to provide haptic feedback to the user. In various implementations, the resiliently deflectable spacers are of a rubber, silicone, plastic, and/or composite construction.

The mounting plate <NUM> includes an array of cantilever springs (e.g., cantilever spring <NUM>) that permit the mounting plate <NUM> to deflect in the z-direction and one or more force sensors (e.g., adhered strain gauges, printed micro-strain gauges, force sensing resistors, etc., not shown) that measure the z-direction deflection of the mounting plate <NUM>. In other example implementations, the force sensors are parallel plate capacitors that measures applied force using an electrostatic sensor. Further, the force sensors may incorporate one or more of capacitive, inductive, magnetic, optical, ultrasonic, and hall effect technology.

The measured z-direction deflection of the mounting plate <NUM> is used as a measurement of force applied on the touch interface <NUM> by the user. A first end of each of the cantilever springs is mounted to one of the resiliently deflectable spacers, while a second end of each of the cantilever springs is attached to a frame (e.g., a midframe or device bucket, not shown) of the haptic trackpad <NUM> via bolt(s) or screw(s) (e.g., bolt <NUM>). In other implementations, the cantilever springs may not be contiguous with the mounting plate <NUM> and may be otherwise fixedly attached to the frame. The frame serves as a structural framework for the haptic trackpad <NUM> and includes a cavity (not shown) that receives the cantilever springs when the user depresses the touch interface <NUM> and the cantilever springs collapse into the cavity.

The cantilever springs are resiliently deflectable and provide a predictable force-deflection profile for collapse into and rebound from the cavity, which aids in accurately measuring the physical depression magnitude of the haptic trackpad <NUM>, and thus the applied force on the touch interface <NUM>. In various some implementations, the cantilever springs suspend the PCB <NUM> over the cavity. The technical effect is that the cavity provides room within the haptic trackpad <NUM> for movement of the PCB in the z-direction without contact with a frame and permit the PCB <NUM> to oscillate in and out of the cavity when excited by the haptic element <NUM>. In various implementations, the mounting plate <NUM>, including the cantilever springs may be made of a metal alloy, including spring steel, a plastic, or a composite material. In other implementations, different types of springs may be used in place of the cantilever springs (e.g., helical, arc, volute, leaf, etc.). In the depicted implementation, there are <NUM> pairings of resiliently deflectable spacers and associated cantilever springs arranged about a perimeter of the PCB <NUM>. This provides a distribution of load applied to the PCB <NUM> and associated touch interface <NUM> in response to the user's applied force. In other implementations, there may be greater or fewer resiliently deflectable spacer / cantilever springs pairings and/or differently located resiliently deflectable spacer / cantilever springs pairings, so long as the PCB <NUM> is adequately supported from the mounting plate <NUM> in the z-direction and has adequate compliance in the x-y plane to provide haptic feedback to the user.

Further, the number of cantilever springs may not be equal to the number of resiliently deflectable spacers. The total resiliently deflectable spacers and/or cantilever springs may be spread across an x-y planar area of the haptic trackpad <NUM> to distribute reaction force to the physical user inputs, as well as provide a cumulative resistance to deflection necessary for proper haptic trackpad <NUM> operation within a range of physical user input forces expected from the user. Further, as noted above, there may be one or more force sensors to measure deflection in the z-direction. In the case that multiple force sensors are used, outputs from the multiple force sensors may be averaged or otherwise combined to output a more accurate measurement of displacement of the PCB <NUM> and associated touch interface <NUM>, and by proxy, the force applied by the user.

While the haptic trackpad <NUM> is capable of physical depression in order to detect the force magnitude applied thereon, the physical depression may be insufficient to provide the user an adequate trackpad feel and feedback. For example, the depression may be too small for the user to gauge application of adequate pressure to constitute a "click. " To enhance the user's perception of adequate pressure to constitute a "click," the haptic trackpad <NUM> includes haptic element <NUM> that works in conjunction with the physical travel of the haptic trackpad <NUM> to give physical feedback to the user that adequate force to constitute a "click" has been applied to the haptic trackpad <NUM>. This may offer the user a feel and overall performance comparable to a traditional clickable button snap-over collapsing in physical travel.

The haptic element <NUM> indicates the user-perceptible "click" by generating vibration or other repeated forces or motions (collectively, a haptic response), transmitting the haptic response to the PCB <NUM>, and to the user via the touch interface <NUM> concurrently with or immediately before or after the physical depression of the haptic trackpad <NUM>. In various implementations, the haptic element <NUM> oscillates linearly along an axis within the x-y plane or rotationally within the x-y plane of the haptic trackpad <NUM>.

The accelerometer <NUM> is used to detect haptic acceleration (e.g., characterized herein as peak-to-peak acceleration) of the haptic trackpad <NUM> in real-time. More specifically, peak-to-peak acceleration (or PTP acceleration) is the difference between maximum positive and maximum negative amplitudes of a waveform describing the haptic acceleration of the haptic trackpad <NUM>. In various implementations, the accelerometer <NUM> may be a discrete component surface mounted to the PCB <NUM> (as illustrated), a flexible printed circuit that is bonded to the PCB <NUM> and/or the touch interface <NUM> or integrated into a microcontroller unit (MCU) <NUM> for the haptic trackpad <NUM>, as examples. The accelerometer <NUM> may feed acceleration data to the MCU <NUM>, which calibrates the trackpad <NUM> initially or periodically and/or actively controls the trackpad <NUM> during its usage over time and total lifespan (e.g., using a control loop, as further discussed below). Further, the acceleration data may be used to introduce more features to the trackpad <NUM> in order to provide a consistent and therefore improved click experience for the user. XYZ coordinates are shown and described to illustrate directional features of the disclosed technology. Other coordinate systems may also be used with different orientations with similar effect. In various implementations, the haptic trackpad <NUM> may be physically and/or communicatively coupled to a variety of computing devices, such as a tablet computer, a laptop computer, a personal computer, a gaming device, a smart phone, or any other discrete device that carries out one or more specific sets of arithmetic and/or logical operations. Further, features of the haptic trackpad <NUM>, including the accelerometer <NUM>, may be applied to a haptic push button with a touch interface used for any practical application.

<FIG> illustrates a partial sectional elevation view of an example haptic trackpad <NUM> with an accelerometer <NUM> using active control and/or calibration according to the presently disclosed technology. The haptic trackpad <NUM> converts physical user input, illustrated as applied by user's hand <NUM>, into corresponding electrical signals that may be interpreted by a computing device (not shown). The haptic trackpad <NUM> also provides haptic feedback to the user via the user's hand <NUM>. The haptic trackpad <NUM> is illustrated in partial sectional view, as indicated by break lines <NUM>, <NUM>.

The haptic trackpad <NUM> is made up of a printed circuit board (PCB) <NUM> with a touch interface <NUM> (e.g., a mylar or glass layer) mounted thereon (e.g., with a pressure-sensitive adhesive, not shown, adhering the touch interface <NUM> to the PCB <NUM>). The PCB <NUM> detects location, size, and motion of the user's touch inputs on the touch interface <NUM> and the PCB <NUM> converts the location, size, and motion of the user's touch inputs into an electronic signal that can be interpreted by the computing device. The PCB <NUM> and the associated touch interface <NUM> is attached to a mounting plate <NUM> via an array of spaced resiliently deflectable spacers (e.g., resiliently deflectable spacer <NUM>). The resiliently deflectable spacers support the PCB <NUM> is a spaced relationship with the mounting plate <NUM> in a z-direction but permit compliance in an x-y plane so that the PCB <NUM> and the associated touch interface <NUM> may selectively vibrate to provide haptic feedback to the user.

The mounting plate <NUM> includes an array of cantilever springs (e.g., cantilever spring <NUM>) that permit the mounting plate <NUM> to deflect in the z-direction and one or more force sensors (e.g., force sensor <NUM>) that measure the z-direction deflection of the mounting plate <NUM>. The measured z-direction deflection of the mounting plate <NUM> is used as a measurement of force applied on the touch interface <NUM> by the user's hand <NUM>. A first end of each of the cantilever springs is mounted to one of the resiliently deflectable spacers, while a second end of each of the cantilever springs is attached to a frame <NUM> of the haptic trackpad <NUM> via bolt(s) or screw(s) (e.g., bolt <NUM>). The frame serves as a structural framework for the haptic trackpad <NUM>, as well as a palm rest for the user, and includes a cavity <NUM> that receives the cantilever springs when the user's hand <NUM> depresses the touch interface <NUM> and the cantilever springs collapse into the cavity <NUM>.

While a matched pair of resiliently deflectable spacers and associated cantilever springs is depicted in <FIG>, as <FIG> is an illustration of a partial sectional elevation view, the haptic trackpad <NUM> may include additional resiliently deflectable spacers and/or cantilever springs that are not shown. The additional resiliently deflectable spacers and/or cantilever springs may be configured similarly to the resiliently deflectable spacer <NUM> and the cantilever spring <NUM>, as described in detail below. The total resiliently deflectable spacers and/or cantilever springs may be spread across an x-y planar area of the haptic trackpad <NUM> to distribute reaction force to the physical user inputs applied by the user's hand <NUM>, as illustrated in <FIG> and described above, for example. This provides a cumulative resistance to deflection necessary for proper haptic trackpad <NUM> operation within a range of physical user input forces expected from the user's hand <NUM>.

The haptic element <NUM> includes an actuator magnet <NUM> with a fixed polarity bonded to the frame <NUM> and a haptic coil <NUM> (e.g., one or more spiral wound racetracks of wire or trace) embedded within the PCB <NUM>. In various implementations, the haptic coil <NUM> may be embedded within the PCB <NUM> (as shown) or bonded to an exterior surface of the PCB <NUM>. Rapidly oscillating a current direction in the haptic coil <NUM> causes a rapidly shifting x-y plane forces on the PCB <NUM> caused by the magnet <NUM>, as illustrated by arrow <NUM>. This movement is referred to herein as haptic feedback, which is experienced as the rapid acceleration and deceleration (e.g., characterized herein as peak-to-peak acceleration) and change of direction of movement of the PCB <NUM> and the associated touch interface <NUM> with reference to the frame <NUM>.

The accelerometer <NUM> is used to detect the peak-to-peak acceleration of the haptic trackpad <NUM> in real-time. More specifically, peak-to-peak acceleration (or PTP acceleration) is the difference between maximum positive and maximum negative amplitudes of a waveform describing the haptic acceleration of the PCB <NUM> with reference to the frame <NUM> of the haptic trackpad <NUM>. The accelerometer <NUM> may feed acceleration data to a microcontroller unit (MCU) <NUM>, which calibrates the trackpad <NUM> initially or periodically and/or actively controls the haptic trackpad <NUM> during its usage over time and total lifespan (e.g., using a control loop, as further discussed below). Further, the acceleration data may be used to introduce more features to the trackpad <NUM> in order to provide a consistent and therefore improved click experience for the user. Additionally, the haptic trackpad <NUM> may include a current sensor <NUM> (e.g., a discrete sensor attached to the PCB <NUM> or a sensor integrated into the MCU <NUM> or other PCB componentry) that may be used by the MCU <NUM> in conjunction with the data from the accelerometer <NUM> to calibrate and/or actively control the haptic trackpad <NUM>. For example, the current sensor <NUM> may measure the actual current running through the haptic coil <NUM> for a haptic event and the MCU <NUM> may adjust power applied to the haptic coil <NUM> for the next haptic event to achieve a target for the current running through the haptic coil <NUM>.

XYZ coordinates are shown and described to illustrate directional features of the disclosed technology. Other coordinate systems may also be used with different orientations with similar effect. In various implementations, the haptic trackpad <NUM> may be physically and/or communicatively coupled to a variety of computing devices, such as a tablet computer, a laptop computer, a personal computer, a gaming device, a smart phone, or any other discrete device that carries out one or more specific sets of arithmetic and/or logical operations. Further, features of the haptic trackpad <NUM>, including the accelerometer <NUM>, may be applied to a haptic push button with a touch interface used for any practical application.

<FIG> illustrates an example electrical architecture <NUM> for a haptic trackpad (e.g., haptic trackpads <NUM> and <NUM> of <FIG> and <FIG>, respectively) using active control and/or calibration according to the presently disclosed technology. The haptic trackpad converts physical user inputs, into corresponding electrical signals that may be interpreted by a computing device <NUM> (e.g., a tablet computer, a laptop computer, a personal computer, a gaming device, a smart phone, or any other discrete device that carries out one or more specific sets of arithmetic and/or logical operations). The haptic trackpad also provides haptic feedback to the user. The haptic trackpad is made up of a printed circuit board (PCB) (not shown, see e.g., PCBs <NUM> and <NUM> of <FIG> and <FIG>, respectively) with a touch interface (not shown, see e.g., touch interfaces <NUM> and <NUM> of <FIG> and <FIG>, respectively) mounted thereon. Some or all of the electronic components of the haptic trackpad illustrated in <FIG> and described in detail below are mounted on or incorporated within the haptic trackpad PCB.

A touch controller <NUM> captures user inputs on the haptic trackpad and sends a signal representing the user's inputs to a haptic microcontroller <NUM> for processing and output to the computing device <NUM> over a communication bus <NUM> (e.g., an inter-integrated circuit (I<NUM>C connection). The computing device <NUM> may use the signal received from the haptic microcontroller <NUM> for user inputs to the computing device <NUM> and/or rendering on an associated display <NUM>. Once the touch controller <NUM> detects a click trigger event on the haptic trackpad, it sends a status indicator <NUM> (e.g., a flag through a general-purpose input / output (GPIO)) to haptic motor driver <NUM> for haptic actuation of a haptic element (not shown, see e.g., haptic elements <NUM> and <NUM> of <FIG> and <FIG>, respectively) of the haptic trackpad.

The haptic driver <NUM> (e.g., a H-bridge motor driver or a microcontroller integrated H-bridge) drives a haptic coil <NUM> with a driving voltage <NUM> having an alternating voltage polarity. In various implementations, the haptic driver <NUM> includes a current sensor to measure the current across the haptic driver <NUM> and a voltage sensor to protect the haptic driver <NUM> in the event of an adverse short condition, both illustrates as voltage (V) / current (I) feedback <NUM>. The haptic driver <NUM> powers the haptic coil <NUM> to provide haptic feedback indicating a click upon a user's press and/or release event on the haptic trackpad.

The accelerometer <NUM> measures touchpad X/Y/Z directional acceleration during haptic actuation and sends its data to the haptic microcontroller <NUM> via the communication bus <NUM>. The haptic microcontroller <NUM> uses inputs of data from the accelerometer <NUM> and the touch controller <NUM> to control operation of the haptic driver <NUM>, also over the communication bus <NUM>, particularly according to an active control and/or calibration process, as further described in detail below.

Power supply <NUM> powers various components of the electrical architecture <NUM>. The haptic microcontroller <NUM>, the touch controller <NUM>, and the accelerometer <NUM> are all powered by the power supply <NUM> at a relatively low voltage (e.g., <NUM>. 8V - <NUM>. 3V) for digital logic, as illustrated by low voltage power feed <NUM>. The haptic driver <NUM> and the haptic coil <NUM> are powered by the power supply <NUM> at a relatively high voltage (e.g., 5V - 12V), as illustrated by high voltage power feed <NUM>. In various implementations, the computing device <NUM> may also be powered by the power supply <NUM>, or another power supply.

In various implementations, the haptic microcontroller <NUM> implements an advanced haptic control scheme, which uses the current sensor embedded within the haptic driver <NUM> to fine tune the current driven through the haptic coil <NUM> for optimal haptic feedback control. Further, the accelerometer <NUM> may also directly connect to the haptic driver <NUM> via the communication bus <NUM> to enable the advanced haptic control scheme to be directly deployed by the haptic driver <NUM> (rather than through the haptic microcontroller <NUM>) for a faster response time of the haptic feedback control.

<FIG> illustrates a model <NUM> of x-y plane motion of an example haptic trackpad <NUM> tracked using an accelerometer <NUM> according to the presently disclosed technology. The haptic trackpad <NUM> converts physical user input, illustrated as applied by user's hand <NUM>, into corresponding electrical signals that may be interpreted by a computing device (not shown). The haptic trackpad <NUM> also provides haptic feedback to the user via the user's hand <NUM>.

The haptic trackpad <NUM> is made up of a printed circuit board (PCB) with a touch interface (e.g., a mylar or glass layer) mounted thereon. The PCB detects location, size, and motion of the user's touch inputs on the touch interface and the PCB converts the location, size, and motion of the user's touch inputs into an electronic signal that can be interpreted by the computing device. The PCB and the associated touch interface are attached to a mounting plate <NUM> via an array of spaced resiliently deflectable spacers (e.g., resiliently deflectable spacer <NUM>). The resiliently deflectable spacers support the PCB in a spaced relationship with the mounting plate <NUM> in a z-direction but permit compliance in an x-y plane so that the PCB and the associated touch interface may selectively vibrate to provide haptic feedback to the user.

A combined mass of the PCB, the touch interface, the accelerometer <NUM>, the user's hand <NUM>, and any other componentry attached to the PCB and suspended from the mounting plate <NUM> using the resiliently deflectable spacers is referred to herein as the trackpad mass (m) <NUM>. As noted above, the resiliently deflectable spacers are compliant in the x-y plane, as illustrated by dotted and dashed line representations of the resiliently deflectable spacers being deformed under shear forces and dotted arrows (e.g., arrow <NUM>).

The trackpad mass (m) <NUM> is also shown in the model <NUM>, and the combined one or more resiliently deflectable spacers <NUM> is represented by dashpot (or damper) <NUM> and spring <NUM> in terms of their effect on movement of the trackpad mass (m) <NUM> under an applied external force (F). The haptic trackpad <NUM> vibrating laterally (within the x-y place, either linearly or rotationally) can be simplified and modeled as the spring-damper-mass vibration model <NUM> that is actuated using the external force (F). Suspended components of the haptic trackpad <NUM> in total are considered a rigid body with trackpad mass (m) <NUM>. xeq is considered a steady-state position of the haptic trackpad <NUM>, while x represents displacement of the haptic trackpad <NUM> within the x-y plane when under the external force (F).

When the external force (F) is applied, the resiliently deflectable spacers <NUM> mounted between the PCB and the mounting plate <NUM> will shear and permit the haptic trackpad <NUM> to oscillate within the x-y plane, a motion that is modeled by the depicted dashpot <NUM> and spring <NUM>, having damping constant c and spring constant K, respectively. The external force (F) is generated electromagnetically from a direct drive actuator (not shown, see e.g., haptic driver <NUM> of <FIG>), which applies the external force (F) using a current-carrying conductor (not shown, see e.g., haptic coil <NUM> of <FIG>) within a magnetic field.

A waveform of the current going through the haptic coil is defined herein as W(t), where t is time and W(t) is between <NUM> to <NUM>. The waveform may be preset by design, (e.g., sine, half sine, step, etc). The external force (F), according to Lorentz force, is derived as F = i * (N * I) * B, where i is current through the haptic coil, N is the total loops of the haptic coil, l is the length of the haptic coil in and perpendicular to the magnetic field, and B is the magnetic flux density that is perpendicular to the coil.

As a sum of force in the system, the differential equation can be expressed as mX" + cX' + kX = l * N * B * i * W(t) (equation (<NUM>)), with x(t) defined as displacement of the moving haptic trackpad <NUM>, X'(t) as velocity of the moving haptic trackpad <NUM>, and X"(t) as acceleration of the moving haptic trackpad <NUM> (what the accelerometer <NUM> measures), where m, l, N, B, are designed parameters in the model <NUM> and c and k are also designed parameter and can be measured and determined by mechanical testing of the haptic trackpad <NUM>. Parameters G and w are used to control the actuation force, each of which is a gain value (e.g., <NUM> to <NUM>) for the current and input waveform frequency, which can be set and used to control the acceleration of the haptic trackpad <NUM>. This model can be expressed as mX" + cX' + kX = l * N * B * G * i * W(wt) (equation (<NUM>)), with G and w as controlled variables.

G and W(wt) break the current i into a time dependent function, and current through the haptic coil is changed the by adjusting G and w. With the accelerometer <NUM> on haptic trackpad <NUM>, equation <NUM> (above) can be used as a feedback control loop, with parameters G and w being modified to control acceleration of the moving haptic trackpad <NUM> (X"(t)) against a target acceleration iteratively over time. Specifically, the current gain G and the input waveform frequency w change the touchpad acceleration (X"(t)), while the touchpad acceleration (X"(t)) is fed back to adjust G and w to achieve the target acceleration.

<FIG> illustrates an example control system <NUM> for a haptic trackpad with an accelerometer <NUM> using active control and/or calibration according to the presently disclosed technology. The haptic trackpad converts physical user input into corresponding electrical signals that may be interpreted by a computing device. The haptic trackpad also provides haptic feedback to the user.

The control system <NUM> actively adjusts the trackpad haptic feedback (measured and expressed as peak-to-peak acceleration). A desired peak-to-peak (PTP) acceleration (X"d) <NUM> is pre-set as input to the control system <NUM>. The accelerometer <NUM> on the haptic trackpad measures the PTP acceleration of the last haptic trackpad click in its vibration axis, and then calculates a difference between the last measured PTP acceleration and the desired PTP acceleration, which is referred to herein as a PTP error.

Controller <NUM>, which may be implemented in hardware and/or software, takes the PTP error as an input, and converts it to the input current to be sent through a haptic coil via haptic driver <NUM> by adjusting the current gain G of equation (<NUM>), discussed above. For example, a Proportional-Integral-Derivative (PID) controller may be used as the controller <NUM>. The choice of controller <NUM> is flexible and could be linear or non-linear and tuned for maximum effectiveness. The controller <NUM> outputs the expected input current to the haptic driver <NUM>, then the haptic driver <NUM> outputs a voltage in pulse width modulation (PWM) that can generate the expected current in the haptic coil when there is a click event trigger. The click event trigger will actuate the haptic trackpad to vibrate and generate haptic feedback to meet the desired acceleration (X"d) setpoint <NUM>. While the haptic trackpad is actuating with the controlled input current, the accelerometer <NUM> will capture the acceleration of the current haptic click and feed that measurement back to the controller <NUM> to calculate an expected current for the next click. The process continues in an iterative closed-loop fashion to update the voltage output from the haptic driver <NUM> to the haptic coil to achieve the desired acceleration (X"d) setpoint <NUM>. The various implementation, the control system <NUM> may be considered a closed feedback loop.

<FIG> illustrates another example control system <NUM> for a haptic trackpad with an accelerometer <NUM> using active control and/or calibration according to the presently disclosed technology. The haptic trackpad converts physical user input into corresponding electrical signals that may be interpreted by a computing device. The haptic trackpad also provides haptic feedback to the user.

Controller <NUM>, which may be implemented in hardware and/or software, takes the PTP error as an input, and converts it to the input current to be sent through a haptic coil via haptic driver <NUM> by adjusting the current gain G of equation (<NUM>), discussed above. For example, a Proportional-Integral-Derivative (PID) controller may be used as the controller <NUM>. The choice of controller <NUM> is flexible and could be linear or non-linear and tuned for maximum effectiveness. The controller <NUM> outputs the expected input current to the haptic driver <NUM>, then the haptic driver <NUM> outputs a voltage in pulse width modulation (PWM) that can generate the expected current in the haptic coil when there is a click event trigger. The click event trigger will actuate the haptic trackpad to vibrate and generate haptic feedback to meet the desired acceleration (X"d) setpoint <NUM>. While the haptic trackpad is actuating with the controlled input current, the accelerometer <NUM> will capture the acceleration of the current haptic click and feed that measurement back to the controller <NUM> to calculate an expected current for the next click. The process continues in an iterative closed-loop fashion to update the voltage output from the haptic driver <NUM> to the haptic coil to achieve the desired acceleration (X"d) setpoint <NUM>.

As compared to the control system <NUM> of <FIG>, the control system <NUM> uses an additional feedback loop using current sensor <NUM> to fine tune the current across the haptic coil for optimal haptic feedback control additional to the control using the accelerometer <NUM>. The additional current feedback is used to control the voltage applied by the haptic driver <NUM> by measuring the current across the haptic coil to ensure the actual current is matching a desired input current Id (setpoint) <NUM> calculated using the controller <NUM>. A second controller <NUM> takes the error between the desired input current Id (setpoint) <NUM> and actual current through the haptic coil measured by the current sensor <NUM> and outputs a tuned voltage to achieve the desired input current Id (setpoint) <NUM> to the haptic driver <NUM>. The haptic trackpad will be actuated with this tuned input voltage / current, and the acceleration feedback data is used to sense if the desired haptic actuation trackpad feedback has been reached. The various implementation, the control system <NUM> may be considered a closed feedback loop.

<FIG> illustrates example operations <NUM> for running an active control system on a haptic trackpad with an accelerometer. During normal haptic trackpad usage, a control system such as that illustrated in <FIG> and described above may be used to implement the operation <NUM> for haptic feedback active tuning to get consistent peak-to-peak acceleration. Generally, operations <NUM> take click acceleration of a previous click, adjust input current via a designed controller, and output to an actuator for touchpad haptic click to meet the target acceleration. By running such a feedback loop, the touchpad haptic feedback will be tuned on every click.

A triggering operation <NUM> triggers a click event. For example, a user may depress the haptic trackpad sufficiently to indicate the user's desire to trigger the click event. A measuring operation <NUM> measures peak-to-peak (PTP) acceleration of the click event. In various implementations, the measuring operation <NUM> is accomplished using an accelerometer mounted to a haptic trackpad PCB. A calculation operation <NUM> calculates a difference between the measured PTP acceleration and a target PTP acceleration. In various implementations, the target PTP acceleration is predefined to provide a desired haptic experience to the user.

A decision operation <NUM> determines if the calculated difference (error) between the measured PTP acceleration and a target PTP acceleration exceeds a threshold. In various implementations, the threshold is <NUM>/s<NUM>. If the calculated difference between the measured PTP acceleration and a target PTP acceleration does not exceed the threshold, setting operation <NUM> sets the existing input current gain (G) as the default for the next click event. The active control system then waits for the next click event to be triggered.

If the calculated difference between the measured PTP acceleration and a target PTP acceleration exceeds the threshold, inputting operation <NUM> inputs the calculated difference into a haptic controller or calculation of a new input current gain (G) value. The new input current gain (G) value adjusts an output of the haptic element to change the measured peak-to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB. A setting operation <NUM> sets the newly calculated input current gain (G) as the default for the next click event. The active control system then waits for the next click event to be triggered.

<FIG> illustrates example operations <NUM> for running an active calibration system on a haptic trackpad with an accelerometer. The calibration operations <NUM> may be used to calibrate each individual haptic trackpad. More specifically, the calibration operations <NUM> may be used to test for any abnormal conditions on the haptic trackpad and configurate its haptic actuation strength according to its own mechanical properties and performance, to meet a target peak-to-peak (PTP) acceleration.

In some implementations, the calibration operations <NUM> are used at a point and time of manufacture of the haptic trackpad as a part of its commissioning. In other implementations, the calibration operations <NUM> may be used to re-calibrate the haptic trackpad periodically over its lifespan. For further example, when the haptic trackpad in a user's hand, the user may trigger the calibration operations <NUM> if any abnormal noticed, such as mechanical wear, material degradation, and environment changes. Similarly, if a resonance frequency of the haptic trackpad is beyond an expected range, the user may be notified and prompted to check with store for abnormal, such as debris inside gaps between touchpad glass and chassis. The calibration operations <NUM> may further be used to build a haptic feedback database <NUM>, which represents the haptic trackpad's mechanical properties. A technical effect of the haptic feedback database <NUM> is that it stores data specific to the haptic trackpad, based on the calibration operations <NUM>. As manufacturing tolerances, wear, and age, for example, may vary between similarly designed and manufactured haptic trackpads, the haptic feedback database <NUM> may be used to compensate for those variances.

A triggering operation <NUM> triggers a haptic actuator within the haptic trackpad multiple times across a spectrum of input frequencies between frequency minimum and a frequency maximum values and at a maximum gain (G) value. A reading operation <NUM> reads PTP acceleration for each haptic actuation and constructs a model of the read results, which is stored within the haptic feedback database <NUM>. A determining operation <NUM> determines a resonant frequency of the haptic trackpad by determining a maximum PTP acceleration across the spectrum of input frequencies, using the same maximum gain (G) value.

A decision operation <NUM> determines if the determined resonant frequency is within a normal range for the haptic trackpad. If it is not, a setting operation <NUM> sets a failure condition for the haptic trackpad. In some implementations, this may mean that the haptic trackpad is sent for failure analysis or repair. In other implementations, this means that the notification is sent to the user to have the haptic trackpad brought in for repair. If the decision operation <NUM> determines that the determined resonant frequency is within a normal range for the haptic trackpad, a determining operation <NUM> determines an initial input current gain (G) for the haptic trackpad. The initial input current gain (G) is stored within the haptic feedback database <NUM>.

A firing operation <NUM> fires the haptic element within the haptic trackpad with the determine input current gain (G) and at a preset resonant frequency for the haptic trackpad, as retrieved from the haptic feedback database <NUM>. A measuring operation <NUM> measures peak-to-peak (PTP) acceleration of the firing event. In various implementations, the measuring operation <NUM> is accomplished using an accelerometer mounted to a haptic trackpad PCB. A calculation operation <NUM> calculates a difference between the measured PTP acceleration and a target PTP acceleration. In various implementations, the target PTP acceleration is predefined to provide a desired haptic experience to the user.

A decision operation <NUM> determines if the calculated difference (error) between the measured PTP acceleration and a target PTP acceleration exceeds a threshold. In various implementations, the threshold is <NUM>/s<NUM>. If the calculated difference between the measured PTP acceleration and a target PTP acceleration does not exceed the threshold, setting operation <NUM> sets the existing input current gain (G) as the default for the first click event. The active calibration process is then complete, and an active control system then waits for the first click event to be triggered. If the calculated difference between the measured PTP acceleration and a target PTP acceleration exceeds the threshold, inputting operation <NUM> inputs the calculated difference into a haptic controller for calculation of a new input current gain (G) value. The firing operation <NUM> is then repeated with the new input current gain (G) value.

<FIG> illustrates example operations <NUM> for running an active braking system on a haptic trackpad with an accelerometer. The braking operations <NUM> may be used to actively brake a haptic waveform following its first full period of oscillation. More specifically, the actively controlled braking operations <NUM> are triggered after a haptic actuation click, to stop redundant free oscillation of the haptic trackpad after the click actuation, in order to offer a cleaner and quieter haptic click experience to the user.

A triggering operation <NUM> triggers a click event. For example, a user may depress the haptic trackpad sufficiently to indicate the user's desire to trigger the click event. A firing operation <NUM> fires the haptic element within the haptic trackpad by generating an input current waveform for a haptic element within the haptic trackpad. After an initial full period of the input current waveform is completed at a peak-to-peak acceleration, a measuring operation <NUM> measures an instant acceleration of residual oscillation of the haptic trackpad. The technical benefit of measuring instant acceleration following peak-to-peak acceleration is that the following braking actuation can be timed and applied in magnitude to reduce or negate the instant acceleration. In various implementations, the measuring operation <NUM> is accomplished using an accelerometer mounted to a haptic trackpad PCB.

A calculation operation <NUM> calculates a difference between the measured instant acceleration and a target acceleration. In various implementations, the target acceleration for braking the haptic trackpad is <NUM>/s<NUM>. A decision operation <NUM> determines if the calculated difference (error) between the measured instant acceleration and the target acceleration exceeds a threshold. In various implementations, the threshold is also <NUM>/s<NUM>. If the calculated difference between the measured instant acceleration and the target acceleration does not exceed the threshold, stopping operation <NUM> stops braking actuation of the haptic element. The braking control system then waits for the next click event to be triggered.

If the calculated difference between the measured instant acceleration and the target acceleration exceeds the threshold, inputting operation <NUM> inputs the calculated difference into a haptic controller for calculation of a new input braking current gain (G) value. A firing operation <NUM> fires the haptic element with the newly calculated input braking current gain (G) value, thereby applying instant braking force to the haptic element. The measuring operation <NUM> is then repeated to determine if further braking operations are necessary.

In some implementations, the braking operations <NUM> immediately follow active control operations, such as active control operations <NUM> of <FIG>. After the controlled haptic actuation reaches a desired peak-to-peak acceleration on the haptic trackpad, the accelerometer continues measuring the instant acceleration, and the controller calculates an instant error between desired braking acceleration, which may be set at <NUM>/s<NUM>. The haptic controller, or a dedicated braking controller (e.g., a PID) takes the error as an input and converts the input current to the haptic driver. The haptic driver will apply a braking waveform (e.g., a similar waveform as the driving waveform, but reversed in polarity) to the haptic coil in order to stop the free oscillation of the haptic trackpad.

In an example implementation, an input current may be characterized as a sinusoidal waveform running for a singular PTP period. However, the residual oscillation of the haptic trackpad without active braking after a PTP acceleration point can be characterized as an underdamped sinusoidal oscillation (e.g., sin(wt) with G set to <NUM>) that continues beyond the singular PTP period and that substantially ceases after approximately <NUM> seconds following initial actuation of the haptic element. The haptic trackpad reaches peak-to-peak acceleration after the input waveform, and then undergoes an under-damped oscillation. The residual redundant vibration of the haptic trackpad can be felt by the user as is gradually fades away, which is not clean in terms of the user experience and causes undesired acoustics.

The active braking waveform counteracts this residual under-damped oscillation to actively remove it. In one example implementation, a braking controller is implemented as a Proportional-Derivative (PD) controller. After reaching the desired peak-to-peak, the PD controller acceleration applies a input braking current waveform that is an inverse of the residual redundant vibration waveform and quickly reduces the residual redundant vibration of the haptic trackpad to <NUM>/s<NUM> with only one measurable full oscillation following the PTP acceleration. The haptic trackpad reaches substantially <NUM>/s<NUM> at approximately <NUM> seconds and stays at <NUM>/s<NUM> as a steady-state. This faster transient state may provide better haptic click experience for the user than allowing the haptic trackpad to naturally reach steady-state within active braking.

The operations making up the embodiments of the invention described herein are referred to variously as operations, steps, objects, or modules. Furthermore, the operations may be performed in any order, adding or omitting operations as desired, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language. Unless otherwise explicitly defined, dimensions described as substantially or approximately herein are +/- <NUM>% of the values provided.

Implementations disclosed herein provide a trackpad comprising a printed circuit board (PCB) including a touch interface, a haptic element fixedly attached to the PCB to selectively oscillate the PCB, an accelerometer fixedly attached to the PCB to measure peak-to-peak acceleration of the oscillation of the PCB, and a microcontroller. The microcontroller compares the measured peak-to-peak acceleration with a target peak-to-peak acceleration of the oscillation of the PCB and adjusts an output of the haptic element to change the measured peak-to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB.

Implementations disclosed herein provide a trackpad further comprising a frame, a resiliently deflectable spacer oriented between the frame and the PCB, the resiliently deflectable spacer to permit shear displacement of the PCB with reference to the frame, and a spring connecting the resiliently deflectable spacer to the frame, the spring to permit compressive displacement of the PCB with reference to the frame.

Implementations disclosed herein provide a trackpad wherein the haptic element includes a haptic coil fixedly attached to the PCB and a magnet fixedly attached to the frame.

Implementations disclosed herein provide a trackpad further comprising a current sensor to measure current running through the haptic coil. The microcontroller further compares the measured current running through the haptic coil with a target current running through the haptic coil and adjusts a power applied to the haptic coil to change the measured current running through the haptic coil to substantially match the target current running through the haptic coil. Implementations disclosed herein provide a trackpad further comprising a force sensor to detect the compressive displacement of the PCB with reference to the frame.

Implementations disclosed herein provide a trackpad wherein the spring cantilevers the PCB over a cavity in the frame.

Implementations disclosed herein provide a trackpad further comprising a haptic feedback database specific to the trackpad, wherein measured peak-to-peak accelerations of a series of haptic event oscillations, each associated with an oscillation frequency, are stored within the haptic feedback database.

Implementations disclosed herein provide a method for actively controlling a trackpad. The method comprises measuring peak-to-peak acceleration of a haptic event oscillation of a printed circuit board (PCB) including a touch interface using an accelerometer fixedly attached thereto, comparing the measured peak-to-peak acceleration with a target peak-to-peak acceleration of the oscillation of the PCB, and adjusting an output of a haptic element fixedly attached to the PCB to change the measured peak-to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB.

Implementations disclosed herein provide a method wherein adjusting the output of the haptic element includes changing a gain factor for the input current of a next haptic event oscillation of the PCB.

Implementations disclosed herein provide a method further comprising measuring instant acceleration following completion of an initial waveform period of the haptic event oscillation of the PCB using the accelerometer fixedly attached thereto, comparing the measured instant acceleration with a target acceleration of the oscillation of the PCB, and adjusting an output of the haptic element to change the measured instant acceleration to match the target acceleration of the oscillation of the PCB.

Implementations disclosed herein provide a method wherein the target acceleration of the oscillation of the PCB is <NUM>/s<NUM> and the adjustment operation is to achieve actively controlled braking of the oscillation of the PCB.

Implementations disclosed herein provide a method wherein the output of the haptic element is adjusted to an inverse of a residual oscillation waveform of the PCB.

Implementations disclosed herein provide a method wherein the haptic event is triggered for active calibration of the trackpad, and wherein adjusting the output of the haptic element includes setting an initial gain factor for the input current for the first haptic event oscillation of the PCB during normal use.

Implementations disclosed herein provide a method further comprising triggering the haptic element across a range of frequencies, measuring peak-to-peak acceleration of each haptic event oscillation associated with a frequency, determining a resonant frequency of the trackpad corresponding to a maximum peak-to-peak acceleration of the trackpad, and comparing the determined resonant frequency with a range of normal resonant frequencies for the trackpad. Implementations disclosed herein provide a method further comprising storing the measured peak-to-peak acceleration of each haptic event oscillation associated with a frequency in a haptic feedback database specific to the trackpad.

Implementations disclosed herein provide a method further comprising determining an initial gain value for the trackpad and storing the initial gain value in the haptic feedback database specific to the trackpad.

Implementations disclosed herein provide a method wherein the measuring, comparing, and adjusting operations are performed in a closed feedback loop.

Implementations disclosed herein provide a haptic button comprising a frame, a printed circuit board (PCB), a resiliently deflectable spacer oriented between the frame and the PCB, the resiliently deflectable spacer to permit shear displacement of the PCB with reference to the frame, a haptic element fixedly attached to the PCB to selectively oscillate the PCB, an accelerometer fixedly attached to the PCB to measure peak-to-peak acceleration of the oscillation of the PCB, and a microcontroller. The microcontroller compares the measured peak-to-peak acceleration with a target peak-to-peak acceleration of the oscillation of the PCB and adjusts an output of the haptic element to change the measured peak-to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB.

Implementations disclosed herein provide a haptic button wherein the haptic element includes a haptic coil fixedly attached to the PCB and a magnet fixedly attached to the frame.

Implementations disclosed herein provide a haptic button further comprising a current sensor to measure current running through the haptic coil, wherein the microcontroller compares the measured current running through the haptic coil with a target current running through the haptic coil, and adjusts a power applied to the haptic coil to change the measured current running through the haptic coil to match the target current running through the haptic coil.

Claim 1:
A trackpad (<NUM>) comprising:
a printed circuit board, PCB, (<NUM>) including a touch interface (<NUM>);
a haptic element (<NUM>) fixedly attached to the PCB (<NUM>) to selectively oscillate the PCB (<NUM>);
an accelerometer (<NUM>) fixedly attached to the PCB (<NUM>) to measure peak-to-peak acceleration of the oscillation of the PCB (<NUM>); and
a microcontroller (<NUM>) configured to:
compare the measured peak-to-peak acceleration with a target peak-to-peak acceleration of the oscillation of the PCB (<NUM>); and
adjust an output of the haptic element (<NUM>) to change the measured peak-to-peak acceleration to match the target peak-to-peak acceleration of the oscillation of the PCB (<NUM>);
the microcontroller (<NUM>) characterized by being further configured to:
trigger the haptic element (<NUM>) across a range of frequencies;
measure peak-to-peak acceleration of each haptic event oscillation associated with a frequency;
determine a resonant frequency of the trackpad (<NUM>) corresponding to a maximum peak-to-peak acceleration of the trackpad (<NUM>);
compare the determined resonant frequency with a range of normal resonant frequencies for the trackpad (<NUM>).