Cover angle detection

By using a low-power sensor unit to measure acceleration and angular velocity in a sleep state in a foldable device, and combining this with an application processor to calculate the cover angle, the high cost and high power consumption problems of existing technologies are solved, and accurate cover angle detection is achieved in both upright and unstable states.

CN121452990APending Publication Date: 2026-02-03STMICROELECTRONICS INT NV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511058293.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-08-02
Filing Date
2025-07-30
Publication Date
2026-02-03

AI Technical Summary

Technical Problem

Existing cover angle detection solutions are costly and power-consuming, and cannot accurately detect cover angles in upright or unstable states of foldable mobile devices.

Method used

The first and second sensor units, which are low-power, continue to work in the device's sleep state to measure acceleration and angular velocity. The application processor calculates the cover angle in the wake-up state and updates the cover angle in conjunction with the accelerometer, magnetometer, or gyroscope.

Benefits of technology

It enables accurate detection of the cover angle in an upright or unstable state, reduces power consumption and cost, and is suitable for foldable devices from 0 to 360 degrees.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121452990A_ABST
    Figure CN121452990A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to cover angle detection. The present disclosure relates to an apparatus and method for cover angle detection that is accurate even if the apparatus is activated in an upright position. While the device is in a sleep state, the first sensor unit and the second sensor unit measure acceleration and angular velocity and calculate an orientation of the respective cover assembly based on the acceleration and angular velocity measurements. After the device exits the sleep state, the processor determines a distance between the calculated orientations, remaps the distance to an estimated cap angle ranging from 0 degree to 360 degrees, sets the estimated cap angle to an initial cap angle, and determines the orientation of the device using, for example, two accelerometers, two accelerometers and two gyroscopes, two accelerometers and two magnetometers. Or two accelerometers, two gyroscopes and two magnetometers to update the initial cover angle.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to cover angle detection. BACKGROUND

[0002] Cover angle detection involves determining an angle between two cover assemblies of a foldable electronic device, such as a laptop computer and a foldable mobile device, which are folded with respect to a hinge or folding portion with respect to each other. Typically, one of the two cover assemblies includes a display and the other of the two cover assemblies includes another display or a user input device such as a keyboard.

[0003] The angle between the two cover assemblies is commonly referred to as a cover angle or a hinge angle. Typically, the cover angle of a foldable electronic device is equal to zero degrees when the foldable electronic device is in a closed state (e.g., the display of the first cover assembly faces the display of the second cover assembly), the cover angle of the foldable electronic device is equal to 180 degrees when the foldable electronic device is in an open and flat state (e.g., the display of the first cover assembly faces the same direction as the display of the second cover assembly), and the cover angle of the foldable electronic device is equal to 360 degrees when the foldable electronic device is in a fully open and rotated state (e.g., the display of the first cover assembly faces the opposite direction as the display of the second cover assembly).

[0004] Current cover angle detection solutions are costly and have high power consumption. Furthermore, for foldable mobile devices, many current cover angle detection solutions are unable to accurately determine the cover angle when the foldable mobile device is activated in an upright position (e.g., the hinge or folding portion of the foldable mobile device extends in a direction parallel to gravity) or in an unstable state (e.g., while the foldable mobile device is being moved or shaken). Specifically, if the foldable mobile device is in an upright position or an unstable state when the cover angle detection solution is initiated, the cover angle cannot be determined. To manage the above special cases, the cover angle detection solution is always running (even when the foldable mobile device is otherwise in a sleep mode). This causes high power consumption over time as the high-power processor is always active. Alternatively, a Hall sensor or magnetometer is used to solve this problem, which increases the cost and power consumption.

[0005] As foldable electronic devices, especially foldable phones, are becoming increasingly popular, it is desirable for manufacturers to incorporate a precise, low-cost cover angle detection solution in the foldable electronic devices that also works when the device is activated in an upright position. Furthermore, newly launched or upcoming devices on the market that open from 0 to 360 degrees require a cover angle solution in order to adjust the user interface based on the cover angle value. SUMMARY

[0006] The present disclosure relates to cover or hinge angle detection for foldable devices, such as foldable phones. Unlike current detection methods, the cover angle detection disclosed herein can detect a cover angle while the foldable device is in an upright position (e.g., when the cover axis is parallel to gravity) or in an unstable state (e.g., while the foldable mobile device is being moved or shaken) and in a range from 0 to 360 degrees. Additional cover angle detection can continue to be performed while the device enters a sleep state.

[0007] The device includes a high-power application processor, and first and second low-power sensor units positioned in respective cover assemblies. The application processor is the main processing unit of the device and enters a sleep state when the device is in a sleep state. The first and second sensor units are multi-sensor devices that include multiple sensors (e.g., accelerometers, magnetometers, gyroscopes, etc.) and are capable of performing simple algorithms. In contrast to the application processor, the first and second sensor units remain in an on state even when the device is in a sleep state.

[0008] While the device is in a sleep state, the first and second sensor units measure acceleration and angular velocity, and compute orientations of the respective cover assemblies based on the acceleration and angular velocity measurements. Upon the device and the application processor exiting the sleep state, the application processor determines a distance between the computed orientations, remaps the distance to an estimated cover angle in a range from 0 to 360 degrees, and sets the estimated cover angle as an initial cover angle. The application processor then updates the initial cover angle using one or more of an accelerometer measurement, a magnetometer measurement, or a gyroscope measurement. BRIEF DESCRIPTION OF DRAWINGS

[0009] In the drawings, like reference numerals identify similar features or elements. The dimensions and relative positions of features in the drawings are not necessarily to scale.

[0010] Figure 1 is a device according to embodiments disclosed herein.

[0011] Figure 2 is a block diagram of a device according to embodiments disclosed herein.

[0012] Figure 3 is a flowchart of a method according to embodiments disclosed herein.

[0013] Figure 4 is a flowchart of a method according to another embodiment disclosed herein.

[0014] Figure 5is a visual representation of the first and second cover assemblies in an ideal case according to embodiments disclosed herein, where the cover angle is 90 degrees.

[0015] Figure 6 is a visual representation of the first and second cover assemblies in a non-ideal case according to embodiments disclosed herein, where the cover angle is 90 degrees.

[0016] Figure 7 is a visual representation of the second cover angle component of the quaternion representing the cover angle rotation, initially aligned with the earth reference frame and rotated.

[0017] Figure 8 is a visual representation of the second cover angle component of the quaternion representing the cover angle rotation, initially aligned with the earth reference frame and rotated. DETAILED DESCRIPTION

[0018] In the following description, for purposes of providing a clear and concise description, specific details are set forth. However, the disclosed subject matter can be practiced without these specific details. In some instances, well-known structures and devices are not described in exhaustive detail, to avoid unnecessarily obscuring the description of the various aspects of the disclosure.

[0019] Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an open, inclusive sense, as

[0020] References to "one embodiment" or "an embodiment" in the present disclosure mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrases "in one embodiment" or "in an embodiment" in various places in the specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics can be combined in any suitable manner in one or more aspects of the disclosure.

[0021] As described above, current cover angle detection solutions are costly and have high power consumption. Furthermore, for foldable mobile devices, current cover angle detection solutions are unable to determine the cover angle when the foldable mobile device is activated in an upright position (e.g., the hinge or folding portion of the foldable mobile device extends in a direction parallel to gravity) or in a non-stable state (e.g., while the foldable mobile device is being moved or shaken).

[0022] The present disclosure relates to devices and methods for lid angle detection. The lid angle detection disclosed herein provides an accurate, low-cost lid angle detection solution that works properly when a foldable electronic device is activated in an upright position or in an unstable state.

[0023] Figure 1 Device 10 is in accordance with the embodiments disclosed herein. In the present embodiment, device 10 is a foldable mobile device, such as a portable smart device, a tablet computer, and a cell phone. Device 10 can also be other types of devices, such as a laptop computer. Device 10 includes first lid assembly 12, second lid assembly 14, and hinge 18.

[0024] Each of first lid assembly 12 and second lid assembly 14 includes a housing or casing for housing internal components of device 10 (e.g., processors, sensors, capacitors, resistors, amplifiers, speakers, etc.). As will be discussed in further detail below, first sensor unit 34 and second sensor unit 36 are housed within first lid assembly 12 and second lid assembly 14, respectively.

[0025] First lid assembly 12 and second lid assembly 14 include first user interface 22 and second user interface 24, respectively. In the embodiments shown in FIG. 1 and discussed below, first user interface 22 and second user interface 24 are displays. However, first user interface 22 and second user interface 24 can also be displays (e.g., monitors, touchscreens, etc.), user input devices (e.g., buttons, keyboards, etc.), and / or other types of user interfaces. In one embodiment, first user interface 22 and second user interface 24 are two portions of a single flexible display. Figure 1

[0026] First lid assembly 12 and second lid assembly 14 fold over each other about hinge 18. First lid assembly 12 and second lid assembly 14 rotate with respect to hinge axis 26. Hinge 18 can be any type of mechanism that allows first lid assembly 12 and second lid assembly 14 to rotate with respect to hinge axis 26.

[0027] ​As will be discussed in further detail below, the device 10 performs cover angle detection to determine a cover angle 28 between the first cover assembly 12 and the second cover assembly 14. The cover angle 28 is the angle between a first surface 30 (more specifically, the first user interface 22) of the first cover assembly 12 and a second surface 32 (more specifically, the second user interface 24) of the second cover assembly 14. When the foldable electronic device is in a closed state (e.g., the first surface 30 faces the second surface 32), the cover angle 28 is equal to zero degrees, when the foldable electronic device is in a flat state (e.g., the first surface 30 and the second surface 32 face the same direction), the cover angle 28 is equal to 180 degrees, and when the foldable electronic device is in a fully open state (e.g., the first surface 30 and the second surface 32 face opposite directions), the cover angle 28 is equal to 360 degrees.

[0028] Figure 2 is a block diagram of the device 10 according to embodiments disclosed herein. The device 10 includes a first sensor unit 34, a second sensor unit 36, and an application processor 38.

[0029] Each of the first sensor unit 34 and the second sensor unit 36 is a multi-sensor device that includes one or more types of sensors, including but not limited to an accelerometer, a gyroscope, a magnetometer, and a hall sensor. Each of the first sensor unit 34 and the second sensor unit 36 includes circuitry for implementing its various components. The accelerometer measures acceleration along one or more axes. The gyroscope measures angular velocity along one or more axes. The magnetometer measures magnetic field along one or more axes.

[0030] Each of the first sensor unit 34 and the second sensor unit 36 also includes its own on-board memory and processor. The processor is configured to process data generated by the sensors and to execute simple programs, such as finite state machines and decision tree logic.

[0031] The first sensor unit 34 and the second sensor unit 36 are respectively located in the first cover assembly 12 and the second cover assembly 14. As will be discussed in further detail below, the first sensor unit 34 and the second sensor unit 36 respectively determine an orientation of the first cover assembly 12 and an orientation of the second cover assembly 14 for cover angle detection.

[0032] The first sensor unit 34 and the second sensor unit 36 are energy-efficient, low-power devices that remain on after the device 10 enters a sleep state. In one embodiment, each of the first sensor unit 34 and the second sensor unit 36 consumes between 5 to 120 microamperes of current for processing. In the sleep state, the application processor 38 and other electronic components (e.g., speakers, sensors, processors) of the device 10 are set to a low-power or off state.

[0033] The application processor 38 is a general-purpose processing unit. The application processor 38 can be any type of processor, controller, or signal processor configured to process data. In one embodiment, the application processor 38 is a general-purpose processor of the device 10 that is used to process data for the operating system, user applications, and other types of software of the device 10 along with processing data for the lid angle detection discussed below. As will be discussed further below, the application processor 38 processes the orientations determined by the first lid assembly 12 and the second lid assembly 14 to obtain an initial lid angle value by the device 10 and performs the lid angle detection to obtain a current lid angle value.

[0034] The application processor 38 can be positioned within the first lid assembly 12 along with the first sensor unit 34; or within the second lid assembly 14 along with the second sensor unit 36.

[0035] The application processor 38 is a high-power processing unit that is set to a low-power or off state when the device 10 enters a sleep state. In one embodiment, the application processor 38 consumes between 1 to a few tenths of a milliamp of current during processing. While in the low-power or off state, the application processor 38 is unable to receive sensor measurements from the first sensor unit 34 and the second sensor unit 36 and thus is unable to perform the lid angle detection.

[0036] Figure 3 is a flowchart of a method 40 in accordance with the embodiments disclosed herein. The method 40 performs the lid angle detection for the device 10.

[0037] In block 42, the device 10 detects whether a screen-off event has occurred. The screen-off event can be detected by the first sensor unit 34, the second sensor unit 36, the application processor 38, or other electronic components (e.g., processors, sensors, etc.) included in the device 10.

[0038] In the screen-off event, the first user interface 22 and / or the second user interface 24 of the device 10 are set to a low-power or off state and no image is displayed on the screen. In one embodiment, the screen-off event occurs in response to a user pressing a power button of the device 10, in response to the device 10 being in a closed state (e.g., the first surface 30 of the first lid assembly 12 facing the second surface 32 of the second lid assembly 14), or in response to a determined amount of time of user inactivity. In the event that the device 10 detects the screen-off event, the method 40 proceeds to block 44. Figure 1

[0039] ​In block 44, the device 10 is set to a sleep state. As discussed above, in the sleep state, the application processor 38 and other electronic components (e.g., speakers, sensors, processors) of the device 10 are set to a low-power or off state.

[0040] While in the low-power or off state, the application processor 38 is unable to receive sensor measurements from the first sensor unit 34 and the second sensor unit 36, and thus is unable to perform cover angle detection. In contrast, even when the device 10 enters the sleep state, the first sensor unit 34 and the second sensor unit 36 remain on and operate. The method 40 then proceeds to blocks 46 and 48, which can be executed concurrently.

[0041] It should be noted that the device 10 is in the sleep state during blocks 46 and 48. Thus, the application processor 38 is in the low-power or off state, while the first sensor unit 34 and the second sensor unit 36 remain on and operate. Blocks 46 and 48 are executed by the first sensor unit 34 and the second sensor unit 36, respectively.

[0042] In block 46, the first sensor unit 34 (more specifically, a processor of the first sensor unit 34) determines an orientation or position of the first cover assembly 12 (more specifically, the first surface 30 of the first cover assembly 12). As discussed above with respect to Figure 1 the first sensor unit 34 is positioned in the first cover assembly 12.

[0043] Similarly, in block 48, the second sensor unit 36 (more specifically, a processor of the second sensor unit 36) determines an orientation or position of the second cover assembly 14 (more specifically, the second surface 32 of the second cover assembly 14). As discussed above with respect to Figure 1 the second sensor unit 36 is positioned in the second cover assembly 14.

[0044] The first sensor unit 34 and the second sensor unit 36 determine the orientation of the first cover assembly 12 and the orientation of the second cover assembly 14, respectively, based on acceleration measurements and angular velocity measurements along one or more axes. Further, the orientations are represented as quaternions.

[0045] In the case where the first sensor unit 34 includes a 3-axis accelerometer that measures acceleration along the X-axis, the Y-axis perpendicular to the X-axis, and the Z-axis perpendicular to the X-axis and the Y-axis; and a 3-axis gyroscope that measures angular velocity along the X-axis, the Y-axis perpendicular to the X-axis, and the Z-axis perpendicular to the X-axis and the Y-axis, the quaternion qi of the first cover assembly 12 is equal to (xi, yi, zi), where xi, yi, zi represent the vector components of the quaternion that represent the orientation of the first cover assembly 12. Similarly, in the case where the second sensor unit 36 includes a 3-axis accelerometer and a 3-axis gyroscope, the quaternion q2 of the second cover assembly 14 is equal to (x2, y2, z2), where x2, y2, z2 represent the vector components of the quaternion that represent the orientation of the second cover assembly 14.

[0046] The first sensor unit 34 and the second sensor unit 36 each repeatedly determine the orientation of the first cover assembly 12 and the orientation of the second cover assembly 14 to ensure that the orientations are current and accurate. In one embodiment, the first sensor unit 34 and the second sensor unit 36 each determine the orientation of the first cover assembly 12 and the orientation of the second cover assembly 14 at determined intervals (e.g., every 5, 10, 15 milliseconds, etc.).

[0047] Once the first sensor unit 34 has determined the orientation of the first cover assembly 12 in block 46 and the second sensor unit 36 has determined the orientation of the second cover assembly 14 in block 48 at least once, the method 40 proceeds to block 49.

[0048] In block 49, the device 10 detects whether a screen-on event has occurred. The screen-on event can be detected by the first sensor unit 34, the second sensor unit 36, the application processor 38, or other electronic components (e.g., processors, sensors, etc.) included in the device 10.

[0049] In the screen-on event, the first user interface 22 or the second user interface 24 of the device 10 is set to an on state and displays an image. In one embodiment, the screen-on event occurs in response to a user pressing a power button of the device 10, in response to the device 10 being in an open state (e.g., the first cover assembly 12 and the second cover assembly 14 are not in a closed state), or in response to a determined amount of time of user activity. In the case where the device 10 detects the screen-on event, the method 40 proceeds to block 50. Figure 1

[0050] ​In block 50, the device 10 is set to an awake state. In contrast to the sleep state, in the awake state, the application processor 38 and other electronic components of the device 10 (e.g., speakers, sensors, processors) are set to an on state and fully operational. For example, the application processor 38 is able to receive sensor measurements from the first sensor unit 34 and the second sensor unit 36 and perform cover angle detection. The method 40 then proceeds to block 52. It should be noted that the device 10 remains in the awake state during blocks 52 to 64.

[0051] In block 52, the application processor 38 obtains the latest, most current orientation of the first cover assembly 12 and the latest, most current orientation of the second cover assembly 14 determined by the first sensor unit 34 and the second sensor unit 36 in blocks 46 and 48, respectively. In one embodiment, the orientations determined by the first sensor unit 34 and the second sensor unit 36 are saved in their respective internal memories, and the application processor 38 obtains the orientations directly from the first sensor unit 34 and the second sensor unit 36. In another embodiment, the orientations determined by the first sensor unit 34 and the second sensor unit 36 are saved to a shared memory that is shared among the first sensor unit 34, the second sensor unit 36, and the application processor 38; and the application processor 38 obtains the orientations from the shared memory. The method 40 then proceeds to block 54.

[0052] In block 54, to enable the application processor to process the orientation data generated by the first sensor unit 34 and the second sensor unit 36, the application processor 38 converts the format of the orientation of the first cover assembly 12 and the format of the orientation of the second cover assembly 14 to a format used by the application processor 38. For example, in one embodiment, the orientations determined by the first sensor unit 34 and the second sensor unit 36 are in half-precision floating point format, and the application processor 38 converts the orientations to single-precision floating point format.

[0053] In the case where the quaternion q1 is represented using vector components due to memory limitations, the quaternion q1 of the first cover assembly 12 is converted to a quaternion q1' equal to (x 1′ ,y 1′ ,z 1′ ,w 1′ ) using the following equations (1) to (4):

[0054] x1' = x1 (1)

[0055] y1' = y1 (2)

[0056] z1' = z1 (3)

[0057]

[0058] Similarly, the quaternion q2 of the second cover component 14 is converted to be equal to (x) using the following equations (5) to (8). 2′ ,y 2′ ,z 2′ ,w 2′ The quaternion q2′ of )

[0059] x2′=x2 (5)

[0060] y2′=y2 (6)

[0061] z2′=z2 (7)

[0062]

[0063] Method 40 then proceeds to block 56. It should be noted that if the first sensor unit 34, the second sensor unit 36, and the application processor 38 utilize the same data format, block 54 can be removed from method 40. In this case, method 40 proceeds from block 52 to block 56, where quaternions q1 and q2 are used in place of the transformed quaternions q1' and q2', respectively.

[0064] In block 56, application processor 38 determines the distance d between the orientation of the first cover assembly 12 and the orientation of the second cover assembly 14. The distance d represents the angular distance between the first cover assembly 12 and the second cover assembly 14.

[0065] First, in block 56, application processor 38 determines the difference quaternion q based on quaternions q1' and q2'. diff Difference quaternion q diff This represents a rotation from quaternion q1' to quaternion q2'. Difference quaternion q diff It is calculated using the following equation (9):

[0066] q diff =q2′ * q1′ -1 (9)

[0067] Where q1' -1 It is the inverse of the quaternion q1' (e.g., it is computed as a conjugate quaternion).

[0068] Secondly, in block 56, application processor 38 will use the differential quaternion q diff Convert to have a positive scalar part. For example, in the difference quaternion q diff When the scalar part is negative, the difference quaternion q diffAll quaternion components (including the scalar part) are multiplied by -1. In the difference quaternion q... diff If the scalar part is already positive, this step can be skipped.

[0069] Next, in block 56, application processor 38 determines the distance d between the first cover assembly 12 and the second cover assembly 14. As described above, distance d represents the angular distance between the first cover assembly 12 and the second cover assembly 14. Distance d is calculated using the following equation (10):

[0070] d = 2 * cos -1 (real(q diff (10)

[0071] Where real(q) diff ) is a difference quaternion q diff The scalar part. Method 40 then proceeds to block 58.

[0072] In block 58, application processor 38 remaps the distance d to the estimated cover angle lid of device 10. o Due to the estimated cover angle lid o It is determined based on the most current orientation of the first cover assembly 12 and the second cover assembly 14 obtained in block 52, thus estimating the cover angle lid. o This is the estimated cover angle of device 10 at the time of the screen-on event in block 49. (As mentioned above...) Figure 1 The cover angle discussed here is the angle between the first surface 30 of the first cover assembly 12 (more specifically the first user interface 22) and the second surface 32 of the second cover assembly 14 (more specifically the second user interface 24).

[0073] It should be noted that in block 56, the angular distance is limited to the range of 0 to 180 degrees. In block 58, the distance d is remapped to an estimated cover angle lid with a range of 0 to 360 degrees. o .

[0074] First, in block 58, application processor 38 determines the differential quaternion q. diff The rotation vector part v r The rotation vector portion is in the same reference frame as the first cover assembly 12. The reference frame of the first cover assembly 12 is the reference frame used by the first sensor unit 34 for measurement (in which the X-axis, Y-axis, and Z-axis are measured). Here, the X-axis of the reference frame of the first sensor unit 34 corresponds to and is aligned with the hinge axis 26.

[0075] Rotation vector part v r It is based on the difference quaternion q determined in block 56.diff the vector portion v is determined. In particular, the rotation vector portion v r is determined by rotating the vector portion v into the same reference frame of the first cover assembly 12. The vector portion v represents the rotation axis of the first cover assembly 12, which in an ideal case corresponds to the hinge axis 26 in the earth reference frame. The rotation vector portion v r is calculated using the following equation (11):

[0076] v r = q1' -1 *v*q'1 (11)

[0077] where q1' -1 is the inverse of the quaternion q1' (e.g., calculated as the conjugate quaternion). In one embodiment, the vector portion v is converted to a pure quaternion prior to using equation (11).

[0078] After rotation of the vector portion v, the X-axis component of the rotation vector portion v r is equal to a value selected from +1 and -1 (or within a threshold of +1 or -1 due to small errors caused by non-idealities of the first sensor unit 34 and non-idealities of the second sensor unit 36) since the X-axis of the reference frame of the first sensor unit 34 corresponds to the hinge axis 26.

[0079] Second, in block 58, the application processor 38 determines an estimated lid r angle of the device 10 based on the rotation vector portion v o and the distance d determined in block 56. The estimated lid o angle of the device 10 is in degrees. The minimum value of the estimated lid o angle of the device 10 is zero degrees, which occurs when the device 10 is in a closed state (e.g., the first surface 30 faces the second surface 32). The maximum value of the estimated lid o angle of the device 10 is 360 degrees, which occurs when the device 10 is in a fully open state (e.g., the first surface 30 and the second surface 32 face in opposite directions).

[0080] lid o = 180 - sign(v rx )*d (12)

[0081] where v rx is the X-axis component of the rotation vector portion v r and the sign function determines the sign (+1 or -1) of v rx . The sign of v rx indicates the direction of rotation about the hinge axis 26. The method then proceeds to block 60.

[0082] As mentioned above, the estimated lid angle lid o has a range from 0 to 360 degrees. However, the estimated lid angle lid o may also be clamped or clamped to a determined maximum value. In one embodiment, in the case where the device 10 should have a maximum lid angle of 180 degrees, the estimated lid angle lid o greater than 180 degrees and equal to or less than 270 degrees, the estimated lid angle lid o is set to 180 degrees, and the estimated lid angle lid o greater than 270 degrees and equal to or less than 360 degrees, the estimated lid angle lid o is set to 0 degrees.

[0083] In block 60, the application processor 38 sets the estimated lid angle lid o to the initial lid angle of the device 10, which is the lid angle between the first surface 30 of the first lid assembly 12 and the second surface 32 of the second lid assembly 14 at the time of the screen-on event in block 49 and in the wake state in block 50. The method 40 then proceeds to block 62.

[0084] In the case where the lid angle detection is currently unreliable or inaccurate, the previously determined estimated lid angle lid o is particularly useful as the initial lid angle of the device 10. For example, many lid angle detection solutions are typically inaccurate when the device 10 is activated or in an unstable state in an upright position.

[0085] In one embodiment, the estimated lid angle lid o is set to the initial lid angle when the device 10 is activated or in an unstable state in an upright position. In the upright position, with reference to Figure 1 , the hinge axis 26 of the device 10 is parallel to the direction of gravity. In the unstable state, the device 10 experiences motion, for example, due to shaking or moving by a user.

[0086] If the device 10 is not in the upright position (e.g., the hinge axis 26 is not parallel to the gravity) or is not in the unstable state (e.g., the device 10 is in a stable state), block 60 is not executed, and the method 40 proceeds from block 58 to block 62. In another embodiment, if the device 10 is not in the upright position or is not in the unstable state, blocks 52, 54, 56, 58 are not executed, and the method 40 proceeds from block 50 to block 62.

[0087] The application processor 38 determines that the device 10 is in an upright position based on acceleration measurements, gyroscope measurements, or a combination thereof generated by one or more of the first sensor unit 34 and the second sensor unit 36. For example, the application processor 38 determines that the device 10 is in an upright position in response to acceleration measurements and / or gyroscope measurements that indicate that the hinge axis 26 of the device 10 is parallel to gravity.

[0088] The application processor 38 determines that the device 10 is in an unstable state based on acceleration measurements, gyroscope measurements, or a combination thereof generated by one or more of the first sensor unit 34 and the second sensor unit 36. For example, the application processor 38 determines that the device 10 is in an unstable state in response to one or more of an acceleration, a variance of acceleration, an average of acceleration, a difference between a current acceleration and an average of acceleration, an angular velocity, a variance of angular velocity, an average of angular velocity, or a difference between a current angular velocity and an average of angular velocity being greater than a respective threshold along one or more axes.

[0089] In block 62, the application processor 38 determines a current cover angle of the device 10. In one embodiment, the application processor 38 determines the current cover angle based on the initial cover angle determined in block 60. For example, the application processor 38 determines the current cover angle based on a detected change in the cover angle from the initial cover angle.

[0090] Because the device 10 is in an awake state, and is not limited to utilizing only the first sensor unit 34 and the second sensor unit 36, the device 10 can utilize any number of different techniques for calculating the cover angle, such as utilizing two accelerometers; two accelerometers and two gyroscopes; two accelerometers and two magnetometers; or two accelerometers, two gyroscopes, and two magnetometers. Additionally, any of these configurations can be combined with a Hall sensor and a magnet. The use of two gyroscopes can also be implemented with a Hall sensor and a magnet (or equivalent "switch" sensor to detect when the device is closed).

[0091] For example, the application processor 38 can recursively determine a current cover angle between the first cover assembly 12 and the second cover assembly 14 from measurement signals generated by a first accelerometer of the first sensor unit 34, a second accelerometer of the second sensor unit 36, a first gyroscope of the first sensor unit 34, and a second gyroscope of the second sensor unit 36. In this example, the current cover angle is determined according to weights that indicate a reliability of the measurement signals to indicate the cover angle between the first cover assembly 12 and the second cover assembly 14. In some cases, the application processor 38 can also generate a first intermediate calculation from the measurement signals generated by the first accelerometer and the second accelerometer, the first intermediate calculation indicating the cover angle between the first cover assembly 12 and the second cover assembly 14; generate a second intermediate calculation from the measurement signals generated by the first gyroscope and the second gyroscope, the second intermediate calculation indicating the cover angle; and determine the current cover angle as a weighted sum of the first intermediate calculation and the second intermediate calculation.

[0092] As another example, a first magnetometer of the first sensor unit 34 and a second magnetometer of the second sensor unit 36 can generate a first signal that indicates a measurement of a magnetic field external to the device 10 and that is indicative of a relative orientation of the first cover assembly 12 relative to the second cover assembly 14. The application processor 38 can then obtain the first signal; generate a calibration parameter from the first signal that is indicative of a calibration condition of the first magnetometer and the second magnetometer; generate a reliability value from the first signal that is indicative of a condition of a reliability of the first signal; calculate an intermediate value of the current cover angle based on the first signal; and calculate the current cover angle based on the calibration parameter, the reliability value, and the intermediate value. To improve accuracy, the calibration parameter, the reliability value, and the intermediate value can also be used in conjunction with the current cover angle determined with the accelerometers and gyroscopes discussed above.

[0093] Once the current cover angle is determined, functionality of the device 10 can be controlled based on the current cover angle. For example, a power state of the device and user interfaces displayed on the first user interface 22 and the second user interface 24 can be adjusted based on the current cover angle.

[0094] The method 40 then proceeds to block 64. However, it should be noted that the execution of block 62 is repeated (e.g., every 5, 10, 15 milliseconds, etc.) while block 64 is executed to ensure that the orientation of the first cover assembly 12 and the orientation of the second cover assembly 14 remain accurate. Moreover, at this time, block 42 is executed concurrently with block 62 in order to detect whether another screen-off event has occurred. Upon detecting a screen-off event, the repeated execution of block 62 ceases.

[0095] In block 64, application processor 38 resets the orientation processing logic of the first sensor unit 34 and the second sensor unit 36 ​​(e.g., the processing logic used in blocks 46 and 48). Resetting the orientation processing logic improves accuracy because measurement errors typically accumulate over time, causing drift in the yaw estimation of the orientation of the first cover assembly 12 and the second cover assembly 14.

[0096] After determining that the device 10 is in a known state, the reset of the orientation processing logic of the first sensor unit 34 and the second sensor unit 36 ​​is executed.

[0097] In the first embodiment, the orientation processing logic is reset when the device 10 is in a stable state and a flat position. Being in a stable state reduces errors caused by linear acceleration when the first sensor unit 34 and the second sensor unit 36 ​​are initialized. Furthermore, the flat position inherently forces the first sensor unit 34 and the second sensor unit 36 ​​to start with the same yaw.

[0098] In a stable state, device 10 is not moved or shaken. Application processor 38 determines that device 10 is in a stable state based on acceleration measurements, gyroscope measurements, or a combination thereof generated by one or more of the first sensor unit 34 and the second sensor unit 36. For example, application processor 38 determines that device 10 is in a stable state in response to one or more of the following: acceleration, variance of acceleration, average of acceleration, difference between current acceleration and average of acceleration, angular velocity, variance of angular velocity, average of angular velocity, or difference between current angular velocity and average of angular velocity being less than a corresponding threshold along one or more axes.

[0099] When laid flat, refer to Figure 1 The first surface 30 and the second surface 32 face the same direction. The application processor 38 determines that the device 10 is in a flat position based on the current cover angle determined in block 62. For example, the application processor 38 determines that the device 10 is in a flat position in response to the current cover angle being within a threshold angle of 180 degrees (e.g., 1 degree, 2 degrees, or 3 degrees, etc.).

[0100] In response to determining that device 10 is in a stable and flat state, application processor 38 sends a reset signal to first sensor unit 34 and second sensor unit 36. Upon receiving the reset signal, the orientation processing logic of first sensor unit 34 and second sensor unit 36 ​​is reset.

[0101] In the second embodiment, the orientation processing logic is reset when the device 10 is in (1) a stable state and (2) a flat or closed state. As described above, being in a stable state reduces the error caused by linear acceleration when the first sensor unit 34 and the second sensor unit 36 ​​are initialized.

[0102] As mentioned above, in the flat position, reference Figure 1 The first surface 30 and the second surface 32 face the same direction. In contrast, in the closed state, the first surface 30 and the second surface 32 face each other. The application processor 38 determines that the device 10 is in the closed state based on the current cover angle determined in block 62. For example, the application processor 38 determines that the device 10 is in the closed state in response to the current cover angle being within a threshold angle of 0 degrees (e.g., 1 degree, 2 degrees, or 3 degrees, etc.).

[0103] In response to determining that device 10 is in (1) a stable state and (2) a flat or closed state, application processor 38 sends a reset signal to first sensor unit 34 and second sensor unit 36. Upon receiving the reset signal, the orientation processing logic of first sensor unit 34 and second sensor unit 36 ​​is reset.

[0104] In the second embodiment, the configuration of the orientation processing logic of the first sensor unit 34 and / or the orientation processing logic of the second sensor unit 36 ​​is changed based on whether the reset is in response to whether the device 10 is in a flat or closed state. More specifically, based on whether the reset is caused by whether the device 10 is in a flat or closed state, the coordinate system (e.g., a northeast-upward (ENU) coordinate system) of one of the orientation processing logics of the first sensor unit 34 and the second sensor unit 36 ​​is set to be aligned with the coordinate system of the other of the orientation processing logics of the first sensor unit 34 and the second sensor unit 36.

[0105] When both the orientation processing logic of the first sensor unit 34 and the orientation processing logic of the second sensor unit 36 ​​utilize the same coordinate system, the coordinate systems of both are set to their respective default coordinate systems in response to a reset caused by the device 10 being in a flat position. Conversely, when both the orientation processing logic of the first sensor unit 34 and the orientation processing logic of the second sensor unit 36 ​​utilize the same coordinate system, the coordinate system of one of them is aligned with the coordinate system of the other in response to a reset caused by the device 10 being in a closed position. For example, in a next execution of method 40, the coordinate system of the first sensor unit 34 orientation processing logic is changed to be aligned with the coordinate system of the second sensor unit 36 ​​orientation processing logic by applying a transformation matrix to the coordinate system of the first sensor unit 34 orientation processing logic.

[0106] Additionally, in the second embodiment and on the next execution of the method 40, the remapping in block 58 is tailored based on whether the reset was in response to the device 10 being in the flat or closed position.

[0107] In the case where the reset was caused by the device 10 being in the flat position, the lid angle lid o is calculated using equation (12) as described above. Conversely, in the case where the reset was caused by the device 10 being in the closed position, the lid angle lid o is calculated using the following equation (13):

[0108] lid o = 180 - sign(v rx )*(d - 180) (13)

[0109] It should be noted that in the case where the two quaternions q1' and q2' are identical, the angular distance d = 0 and v rx = 0, resulting in an erroneous lid o = 180 degrees. This case is managed by setting v rx to -1 or +1 as a special case in order to make lid o equal to 0 or 360 degrees.

[0110] In one embodiment, to avoid over-resetting of the first sensor unit 34 and over-resetting of the second sensor unit 36, the application processor 38 sends the reset signal in the case where a threshold amount of time has passed since the last reset signal transmission. For example, in response to determining that the device 10 is in a stable state and in either the flat position or the closed position, the application processor 38 sends the reset signal to the first sensor unit 34 and the second sensor unit 36 in the case where a threshold amount of time (e.g., 30 seconds, 1 minute, etc.) has passed since the last reset signal transmission. Conversely, in response to determining that the device 10 is in a stable state and in either the flat position or the closed position, the application processor 38 skips (i.e., does not send) transmission of the reset signal to the first sensor unit 34 and the second sensor unit 36 in the case where a threshold amount of time has not passed since the last reset signal transmission.

[0111] Upon completion of block 64, the method 40 is repeated. In other words, the method 40 returns to block 42.

[0112] Figure 4 is a flowchart of a method 66 in accordance with another embodiment disclosed herein. Similar to the method 40 discussed above, the method 66 performs lid angle detection for the device 10.

[0113] In method 40, the orientation processing logic of the first sensor unit 34 and the second sensor unit 36 is reset in order to improve accuracy, as measurement errors typically accumulate over time, causing drift in the yaw estimates of the orientations of the first cover assembly 12 and the second cover assembly 14. The resetting of the orientation processing logic is performed with the device 10 in a stable state and in a flat or closed state. In contrast, in method 66, after the current cover angle of the device 10 is determined in block 62, the first sensor unit 34 orientation and the second sensor unit 36 orientation are realigned with each other, rather than resetting the orientation processing logic of the first sensor unit 34 and the second sensor unit 36 in block 64.

[0114] Method 66 includes blocks 42, 44, 46, 48, 49, 50, 52, 54, 56, 58, 60, and 62, as discussed above with respect to Figure 3 Method 66 proceeds to block 68 once the current cover angle of the device is determined in block 62.

[0115] In block 68, the application processor 38 realigns the orientations measured by the first sensor unit 34 and the second sensor unit 36 with each other in order to remove the differential yaw error caused by the drift in the yaw estimates of the orientations of the first cover assembly 12 and the second cover assembly 14. The drift in the yaw estimates of the orientations of the first cover assembly 12 and the second cover assembly 14 causes a differential yaw error between the first cover assembly 12 and the second cover assembly 14.

[0116] For example, Figure 5 is a visualization of the first cover assembly 12 and the second cover assembly 14 in an ideal case, where the cover angle is 90 degrees, in accordance with embodiments disclosed herein. The first cover assembly 12 and the second cover assembly 14 are shown in the earth reference frame. In the ideal case, the orientations of the first cover assembly 12 and the second cover assembly 14 are correctly computed, there is no drift in the yaw estimates, and there is no differential yaw error between the first cover assembly 12 and the second cover assembly 14. As a result, the current cover angle will be correctly computed as 90 degrees.

[0117] In contrast, Figure 6 is a visualization of the first cover assembly 12 and the second cover assembly 14 in a non-ideal case, where the cover angle is 90 degrees, in accordance with embodiments disclosed herein. The first cover assembly 12 and the second cover assembly 14 are shown in the earth reference frame. In the non-ideal case, there is drift in the yaw estimates of the first cover assembly 12 and the second cover assembly 14. As a result, a differential yaw error between the first cover assembly 12 orientation and the second cover assembly 14 orientation is introduced. For example, the first cover assembly 12 orientation and the second cover assembly 14 orientation are no longer computed to be aligned along the hinge axis. As a result, the current cover angle will not be computed correctly as 90 degrees.

[0118] The realignment in block 68 utilizes the orientation of the first lid assembly 12 determined in block 46 and the current lid angle determined in block 62. The realignment is performed by assuming that the orientation of the first lid assembly 12 is accurate and realigning the orientation of the second lid assembly 14 using the orientation of the first lid assembly 12 and the current lid angle. It should be noted that, in contrast to the reset in block 64 of the method 40, the device 10 does not have to be in a stable state and in a flat or closed position to perform the realignment.

[0119] First, the application processor 38 determines the rotation quaternion q 2rot of the second lid assembly 14. The rotation quaternion q 2rot is the change in orientation of the second lid assembly 14 due to the lid angle rotation only with respect to the earth reference frame. The rotation quaternion q 2rot is calculated using the following equations (14) and (15):

[0120] q = q

[0121]

[0122] where the current lid angle is determined in block 62; and i, j, and k are basis vectors or elements representing the X-axis, Y-axis, and Z-axis in the earth reference frame, respectively.

[0123] For example, Figure 7 is a visual representation of the rotation quaternion q 2rot of the second lid assembly 14 according to the embodiments disclosed herein. In this example, the second lid assembly 14 is rotated 90 degrees about the X-axis of the earth reference frame.

[0124] In another embodiment, the current cover angle is a cover angle determined by other than block 62. For example, the current cover angle can be determined by system information using measurements of: (1) a first accelerometer included in the first cover assembly 12 (e.g., in the first sensor unit 34) and a second accelerometer included in the second cover assembly 14 (e.g., in the second sensor unit 36); (2) a first accelerometer and a first gyroscope included in the first cover assembly 12 (e.g., in the first sensor unit 34) and a second accelerometer and a second gyroscope included in the second cover assembly 14 (e.g., in the second sensor unit 36); (3) a first accelerometer, a first gyroscope, and a first magnetometer included in the first cover assembly 12 (e.g., in the first sensor unit 34) and a second accelerometer, a second gyroscope, and a second magnetometer included in the second cover assembly 14 (e.g., in the second sensor unit 36); (4) a first accelerometer and a first magnetometer included in the first cover assembly 12 (e.g., in the first sensor unit 34) and a second accelerometer and a second magnetometer included in the second cover assembly 14 (e.g., in the second sensor unit 36); (5) a first gyroscope and a first magnetometer included in the first cover assembly 12 (e.g., in the first sensor unit 34) and a second gyroscope and a second magnetometer included in the second cover assembly 14 (e.g., in the second sensor unit 36); (6) a first magnetometer sensor included in the first cover assembly 12 (e.g., in the first sensor unit 34) and a second magnetometer sensor included in the second cover assembly 14 (e.g., in the second sensor unit 36); (7) a Hall sensor included in the first cover assembly 12 affected by a magnetic field generated by a magnet included in the second cover assembly 14; or (8) other types of sensors.

[0125] Next, the application processor 38 determines a realigned quaternion q 2realign of the second cover assembly 14. 2realign The realigned quaternion q 2realign represents the correct orientation of the second cover assembly 14 relative to the first cover assembly 12. The realigned quaternion q 2realign is calculated using the following equation (16):

[0126] q 2rot (16)

[0127] where q1is the quaternion q1of the first cover assembly 12 determined in block 46, and "*" denotes the Hamilton product. In one embodiment, as discussed above with respect to block 54, the quaternion q1determined by the first sensor unit 34 is in half-precision floating point format, and the quaternion q1is converted to single-precision floating point format by the application processor 38 for processing by the application processor 38.

[0128] For example, Figure 8 is the realigned quaternion q 2realign of the second cover assembly 14 according to the embodiments disclosed herein. In this example, the second cover assembly 14, which is initially aligned with the earth reference frame, is first rotated about the X-axis of the earth reference frame by the current cover angle (equal to 90 degrees in this example), and then rotated by the quaternion q1representing the current orientation of the first cover assembly 12. As a result, the second cover assembly 14 is realigned with the first cover assembly 12, and there is no differential yaw error between the first cover assembly 12 and the second cover assembly 14, as shown in Figure 5 Thus, the current cover angle will be correctly calculated as 90 degrees.

[0129] The realigned quaternion q 2realign is then set as the new quaternion q2of the second cover assembly 14. The method 66 is then repeated. The new quaternion q2(i.e., the realigned quaternion q 2realign ) will then be updated in block 48 and acquired in block 52. In one embodiment, the realigned quaternion q 2realign is converted back to half-precision floating point format and stored in memory as the quaternion q2in half-precision floating point format.

[0130] Although the realignment performed in block 68 is performed after block 62 in Figure 4 , the realignment can also be triggered at other times. For example, the realignment can be performed in response to a subsequent screen-off event detected periodically, as needed, etc.

[0131] Various embodiments disclosed herein provide an apparatus and method for lid angle detection. While the apparatus is in a sleep state, a first sensor unit and a second sensor unit measure acceleration and angular velocity, and compute an orientation of a respective lid assembly based on the acceleration measurement and the angular velocity measurement. When the apparatus exits the sleep state, an application processor uses the computed orientation to estimate a lid angle, sets the estimated lid angle as an initial lid angle, and updates the initial lid angle using one or more of an accelerometer measurement, a magnetometer measurement, or a gyroscope measurement. As a result, the initial lid angle is accurate even in the case that the apparatus is in an upright position or a non-stable state after exiting the sleep state. Furthermore, estimating the respective lid angle with the first sensor unit and the second sensor unit while the apparatus is in the sleep state reduces overall system current consumption because the apparatus does not have to remain in an active state.

[0132] An apparatus can be summarized as including: a first assembly comprising: a first user interface; and a first sensor unit comprising a first accelerometer, a first gyroscope, and a first processor configured to determine a first orientation of the first assembly based on measurements by the first accelerometer and the first gyroscope; a second assembly coupled to the first assembly, the first assembly and the second assembly configured to rotate relative to a hinge axis, the second assembly comprising: a second user interface; and a second sensor unit comprising a second accelerometer, a second gyroscope, and a second processor configured to determine a second orientation of the second assembly based on measurements by the second accelerometer and the second gyroscope; and a third processor configured to: determine a distance between the first orientation and the second orientation; and remap the distance to an estimated lid angle relative to the hinge axis and between the first assembly and the second assembly, the estimated lid angle having a value between 0 degrees and 360 degrees.

[0133] The third processor is configured to: in a case that the estimated lid angle is greater than 180 degrees and equal to or less than 270 degrees, set the estimated lid angle to 180 degrees; and in a case that the estimated lid angle is greater than 270 degrees and equal to or less than 360 degrees, set the estimated lid angle to 0 degrees.

[0134] The first orientation is a first quaternion of the first assembly and the second orientation is a second quaternion of the second assembly, and the third processor is configured to: determine a differential quaternion based on the first quaternion and the second quaternion; and determine the distance based on the differential quaternion.

[0135] The third processor is configured to: determine a rotated vector portion of the differential quaternion based on the first quaternion.

[0136] The third processor is configured to remap the distance to the estimated cover angle based on the rotation vector portion.

[0137] The first processor determines the first orientation and the second processor determines the second orientation with the device in the sleep state, and the third processor determines the distance and remaps the distance to the estimated cover angle with the device in the awake state.

[0138] The third processor is configured to set the estimated cover angle to an initial cover angle of the device, and the initial cover angle is an angle relative to the hinge axis and between the first component and the second component after the device exits the sleep state and enters the awake state.

[0139] The third processor sets the estimated cover angle to the initial cover angle with the device in an upright position or in an unstable state.

[0140] The third processor is configured to determine that the device is in a flat state in which the first user interface and the second user interface face in the same direction, determine that the device is in a stable state, and reset the orientation processing logic of the first sensor unit and the orientation processing logic of the second sensor unit with the device in the flat state and the stable state.

[0141] The third processor is configured to determine that the device is in a stable state, determine that the device is in a flat state or a closed state in which the first user interface and the second user interface face in the same direction in the flat state and face each other in the closed state, and reset the orientation processing logic of the first sensor unit and the orientation processing logic of the second sensor unit with the device in (1) the stable state and (2) the flat state or the closed state.

[0142] The third processor is configured to realign the second orientation with the first orientation based on the first orientation and a current cover angle between the first component and the second component.

[0143] A method can be summarized as including: determining, by a first sensor unit, a first orientation of a first component of a device, the first component including a first user interface and the first sensor unit, the first sensor unit including a first accelerometer and a first gyroscope, the first sensor unit determining the first orientation based on measurements by the first accelerometer and the first gyroscope; determining, by a second sensor unit, a second orientation of a second component of the device, the first component and the second component configured to rotate relative to a hinge axis, the second component including a second user interface and the second sensor unit, the second sensor unit including a second accelerometer and a second gyroscope, the second sensor unit determining the second orientation based on measurements by the second accelerometer and the second gyroscope; determining, by a third processor, a distance between the first orientation and the second orientation; and remapping, by the third processor, the distance to an estimated cover angle relative to the hinge axis and between the first component and the second component, the estimated cover angle having a value between 0 degrees and 360 degrees.

[0144] The first orientation is a first quaternion of the first component, and the second orientation is a second quaternion of the second component.

[0145] The method can further include: determining, by the third processor, a differential quaternion based on the first quaternion and the second quaternion; and determining, by the third processor, the distance based on the differential quaternion.

[0146] The method can further include: determining, by the third processor, a rotated vector portion of the differential quaternion based on the first quaternion.

[0147] The method can further include: remapping, by the third processor, the distance to the estimated cover angle based on the rotated vector portion.

[0148] A device can be summarized as including: a first multi-sensor device; a first housing including the first multi-sensor device, the first multi-sensor device configured to determine a first orientation of the first housing based on measurements generated by the first multi-sensor device; a second multi-sensor device; a second housing coupled to the first housing, the first housing and the second housing configured to rotate relative to a hinge axis, the second housing including the second multi-sensor device, the second multi-sensor device configured to determine a second orientation of the second housing based on measurements generated by the second multi-sensor device; and a processor configured to: determine a distance between the first orientation and the second orientation; and remap the distance to an estimated cover angle relative to the hinge axis and between the first housing and the second housing, the estimated cover angle having a value between 0 degrees and 360 degrees.

[0149] The first orientation is a first quaternion of the first housing, and the second orientation is a second quaternion of the second housing, and the processor is configured to: determine a differential quaternion based on the first quaternion and the second quaternion; and determine a distance based on the differential quaternion.

[0150] The processor is configured to determine the rotation vector portion based on the vector portion of the differential quaternion that has been rotated by the first quaternion.

[0151] The processor is configured to remap the distance to the estimated cover angle based on the rotation vector portion.

[0152] The various embodiments described above can be combined to provide other embodiments. Based on the detailed description above, these and other modifications can be made to the embodiments. Generally, the appended claims...

[0153] The terminology used in the claims should not be construed as limiting the scope of the claims as described in the specification and

[0154] The specific embodiments disclosed in the claims should be interpreted as including all possible implementations.

[0155] Examples and the full scope of equivalents conferred by these claims. Therefore, the claims do not

[0156] Subject to the limitations of this disclosure.

Claims

1. An apparatus comprising: The first component includes: First user interface; and A first sensor unit, comprising a first accelerometer, a first gyroscope, and a first processor, wherein the first processor is configured to determine a first orientation of the first component based on measurements from the first accelerometer and the first gyroscope; A second component, coupled to the first component, and the first and second components configured to rotate relative to a hinge axis, the second component comprising: Second user interface; and A second sensor unit, comprising a second accelerometer, a second gyroscope, and a second processor, the second processor being configured to determine a second orientation of the second component based on measurements from the second accelerometer and the second gyroscope; and A third processor, wherein the third processor is configured to: Determine the distance between the first orientation and the second orientation; and The distance is remapped to an estimated cover angle relative to the hinge axis and between the first and second components, the estimated cover angle having a value between 0 degrees and 360 degrees.

2. The device according to claim 1, wherein the third processor is configured to: If the estimated cover angle is greater than 180 degrees and equal to or less than 270 degrees, the estimated cover angle is set to 180 degrees; and If the estimated cover angle is greater than 270 degrees and equal to or less than 360 degrees, the estimated cover angle is set to 0 degrees.

3. The device according to claim 1, wherein The first orientation is a first quaternion of the first component, and the second orientation is a second quaternion of the second component. The third processor is configured as follows: The difference quaternion is determined based on the first quaternion and the second quaternion; and The distance is determined based on the difference quaternion.

4. The device of claim 3, wherein the third processor is configured to: The rotation vector portion is determined based on the vector portion of the difference quaternion that has been rotated from the first quaternion.

5. The device of claim 4, wherein the third processor is configured to: Based on the rotation vector portion, the distance is remapped to the estimated cover angle.

6. The device according to claim 1, wherein When the device is in sleep mode, the first processor determines the first orientation and the second processor determines the second orientation, and When the device is in a wake-up state, the third processor determines the distance and remaps the distance to the estimated cover angle.

7. The device according to claim 6, wherein The third processor is configured to set the estimated cover angle as the initial cover angle of the device, and The initial cover angle is the angle relative to the hinge axis and between the first component and the second component after the device exits the sleep state and enters the wake state.

8. The device of claim 7, wherein the third processor sets the estimated cover angle to the initial cover angle when the device is in an upright position or an unstable state.

9. The device of claim 1, wherein the third processor is configured to: The device is determined to be in a flat position, wherein the first user interface and the second user interface face the same direction in the flat position. It is determined that the device is in a stable state; and When the device is in the flat position and the stable position, the orientation processing logic of the first sensor unit and the orientation processing logic of the second sensor unit are reset.

10. The device of claim 1, wherein the third processor is configured to: The device is confirmed to be in a stable state; The device is determined to be in a horizontal or closed state. In the horizontal state, the first user interface and the second user interface face the same direction; in the closed state, they face each other. When the device is in the stable state (1) and the flat state (2) or the closed state, the orientation processing logic of the first sensor unit and the orientation processing logic of the second sensor unit are reset.

11. The device of claim 1, wherein the third processor is configured to: Based on the first orientation and the current cover angle between the first component and the second component, the second orientation is realigned with the first orientation.

12. A method comprising: A first orientation of a first component of a device is determined by a first sensor unit, the first component including a first user interface and a first sensor unit, the first sensor unit including a first accelerometer and a first gyroscope, the first sensor unit determining the first orientation based on measurements by the first accelerometer and the first gyroscope; A second orientation of a second component of the device is determined by a second sensor unit. The first and second components are configured to rotate relative to a hinge axis. The second component includes a second user interface and a second sensor unit, which includes a second accelerometer and a second gyroscope. The second sensor unit determines the second orientation based on measurements taken by the second accelerometer and the second gyroscope. The distance between the first orientation and the second orientation is determined by the third processor; as well as The third processor remaps the distance to an estimated cover angle relative to the hinge axis and between the first and second components, the estimated cover angle having a value between 0 degrees and 360 degrees.

13. The method of claim 12, wherein the first orientation is a first quaternion of the first component, and the second orientation is a second quaternion of the second component.

14. The method of claim 13, further comprising: The third processor determines the difference quaternion based on the first quaternion and the second quaternion; as well as The distance is determined by the third processor based on the differential quaternion.

15. The method of claim 14, further comprising: The third processor determines the rotation vector portion based on the vector portion of the differential quaternion that has been rotated from the first quaternion.

16. The method of claim 15, further comprising: The third processor remaps the distance to the estimated cover angle based on the rotation vector portion.

17. An apparatus comprising: The first multi-sensor device; A first housing, the first housing including the first multi-sensor device, the first multi-sensor device being configured to determine a first orientation of the first housing based on measurements generated by the first multi-sensor device; Second multi-sensor device; A second housing coupled to the first housing, the first and second housings being configured to rotate relative to a hinge axis, the second housing including a second multi-sensor device configured to determine a second orientation of the second housing based on measurements generated by the second multi-sensor device; as well as Processor, the processor being configured to: Determine the distance between the first orientation and the second orientation; and The distance is remapped to an estimated cover angle relative to the hinge axis and between the first and second housings, the estimated cover angle having a value between 0 degrees and 360 degrees.

18. The device according to claim 17, wherein The first orientation is a first quaternion of the first housing, and the second orientation is a second quaternion of the second housing. The processor is configured to: The difference quaternion is determined based on the first quaternion and the second quaternion; and The distance is determined based on the difference quaternion.

19. The device of claim 18, wherein the processor is configured to: The rotation vector portion is determined based on the vector portion of the difference quaternion that has been rotated from the first quaternion.

20. The device of claim 19, wherein the processor is configured to: The distance is remapped to the estimated cap angle based on the rotation vector portion.