Method, device and medium for ranging

The method optimizes mobile device communication by using UWB and BLE signals for pairwise ranging sessions with pruning to eliminate redundant sessions, addressing complexity and power issues in existing many-to-many techniques, ensuring efficient and accurate distance and angle measurements.

JP7617233B2Active Publication Date: 2025-01-17APPLE INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023200967
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-16
Filing Date
2023-11-28
Publication Date
2025-01-17
Estimated Expiration
2041-06-16

AI Technical Summary

Technical Problem

Existing many-to-many communication/ranging techniques involving look-up tables and random scheduling are complex, inefficient, and power-consuming, especially for mobile devices, due to device synchronization issues, collisions, and battery drainage, particularly when determining distance and angle measurements.

Method used

A method for mobile devices to establish pairwise ranging sessions using ultra-wideband (UWB) pulses and Bluetooth Low Energy (BLE) signals, allowing devices to function as both initiators and responders, with a pruning mechanism to eliminate redundant sessions and minimize collisions, optimizing power usage and communication efficiency.

Benefits of technology

This approach reduces power consumption and minimizes collisions, enabling accurate distance and angle measurements between multiple mobile devices while maintaining efficient communication sessions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007617233000001
    Figure 0007617233000001
  • Figure 0007617233000002
    Figure 0007617233000002
  • Figure 0007617233000003
    Figure 0007617233000003
Patent Text Reader

Abstract

To provide methods for establishing connections in sessions for ranging with a mobile device group including three or more mobile devices.SOLUTION: Each mobile device 402a-402c of a group can operate as both an initiating device and a responding device for a ranging session. The first mobile device is configured for: transmitting a ranging request to establish outgoing pairwise ranging sessions with other mobile devices of the group; receiving 412 from each of the other mobile devices a request to establish an incoming pairwise ranging session; detecting one or more redundant ranging sessions; further identifying whether to keep or terminate each of the one or more redundant ranging sessions based on a common criterion; and performing ranging using ranging sessions with each of the other mobile devices.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of and priority to U.S. Provisional Patent Application No. 63 / 040,870, filed June 18, 2020, and U.S. Patent Application No. 17 / 072,776, filed October 16, 2020, each of which is incorporated by reference in its entirety for all purposes. [Background technology]

[0002] Existing many-to-many communication / ranging techniques involving lookup tables to specify ranging pairs of devices with a given communication window may be too complex for many applications. These techniques are also complex for mobile devices to enter and leave a ranging / communication session. Furthermore, these techniques require determining which device among many mobile devices is the leader / coordinating device to establish a communication schedule. A typical approach for communication / ranging techniques is to use "random scheduling" where each device in the exchange chooses a random delay between transmissions. However, this approach requires all devices to be continuously acquiring ("listening") to the other devices.

[0003] Various applications of mobile devices utilize wireless communication techniques to share or exchange information between devices. In the case of ranging techniques, the primary information exchange is not only the data bits but also the exact time they were received. Data bits are often communicated from an initiator to a responder, but this is not required. Information exchange techniques may be limited in the number of participating devices due to collisions between information packet exchanges using wireless protocols. Previous techniques may require complex scheduling techniques to minimize packet collisions and account for devices entering and leaving a packet exchange. In addition, keeping a device powered on until its next transmission time may drain the device's battery.

[0004] Techniques for determining distance between electronic devices using one-to-one communication are inefficient. These techniques are complicated because the internal clocks of the various electronic devices are not synchronized with each other. In some situations, an initiating mobile device can provide information about the local environment that can be provided to multiple electronic devices. In some cases, users with electronic devices are attempting to obtain their distance and / or angle measurements from an initiating mobile device. With a single initiating mobile device and multiple receiving devices, communicating in the same bandwidth can result in collisions between data packets. Collisions can result in failure of distance measurements. Techniques that allow for these potential collisions to be taken into account when implementing techniques for efficient ranging techniques can be advantageous. Summary of the Invention

[0005] Some embodiments are directed to techniques (e.g., devices, methods, memories or non-transitory computer-readable media storing code or instructions executable by one or more processors) for communication techniques between three or more mobile devices (e.g., smartphones, tablets, wearable devices, etc.). The communication techniques refer to modes (e.g., listening modes for receiving devices and broadcast modes for transmitting devices). In this way, the number of receiving devices is not as limited as it is for other communication technologies.

[0006] In one aspect, a many-to-many technique for coordinating communications among a group of mobile devices may be performed by a first mobile device of a group of mobile devices including three or more mobile devices. In accordance with the technique, the first mobile device may transmit a request to establish an outgoing pairwise ranging session with another mobile device of the group of mobile devices over a first wireless protocol. The pairwise ranging session may use a second wireless protocol. The first mobile device may receive a request to establish an incoming pairwise ranging session with the other mobile device over the first wireless protocol from each of the other mobile devices in the group of mobile devices.

[0007] Each of the mobile devices in the group of mobile devices can establish a ranging session with the other mobile devices. In various embodiments, each mobile device can function as an initiating device for the ranging session and a responding device for the ranging session. The established ranging sessions can result in one or more redundant ranging sessions. For example, a first device can establish a ranging session with a second device as an initiating device and establish a second ranging session with the second device as a responding device. Since the ranging sessions can provide the same information, one of the ranging sessions can be considered redundant.

[0008] According to the present technique, a first mobile device can detect one or more redundant ranging sessions between the first mobile device and one of the other mobile devices. The first mobile device can identify whether to maintain or terminate each of the one or more redundant ranging sessions based on a criterion. The mobile device can perform ranging using the remaining ranging sessions with each of the other mobile devices.

[0009] These and other embodiments of the present disclosure are described in more detail below. For example, other embodiments are directed to systems, portable consumer devices, and computer-readable media associated with the methods described herein.

[0010] A better understanding of the nature and advantages of embodiments of the present invention can be obtained by reference to the following detailed description and accompanying drawings. [Brief description of the drawings]

[0011] [Figure 1] 1 illustrates a sequence diagram for performing distance measurement between two mobile devices according to an embodiment of the present disclosure.

[0012] [Diagram 2] FIG. 1 is a sequence diagram of a ranging operation involving a mobile device having three antennas, according to an embodiment of the present disclosure.

[0013] [Diagram 3] 1 illustrates a ranging exchange involving redundancy exchange between multiple mobile devices.

[0014] [Figure 4] 1 illustrates pruning of redundant ranging exchanges in a communication session.

[0015] [Diagram 5] An efficient ranging exchange communication session is presented.

[0016] [Figure 6] 1 illustrates an example sequence diagram for establishing timing for a many-to-many communication technique.

[0017] [Figure 7] 1 shows an example flow chart for a many-to-many communication technique.

[0018] [Figure 8]1 illustrates an exemplary ranging exchange between an initiating mobile device and one or more computing devices.

[0019] [Figure 9] 1 illustrates a simplified timeline for a ranging round between a transmitting device and a receiving device.

[0020] [Figure 10] 1 illustrates an example sequence diagram for a ranging session between mobile devices.

[0021] [Figure 11] 1 shows an example flow chart for a many-to-many communication technique.

[0022] [Figure 12] FIG. 2 is a block diagram of components of a mobile device operable to perform ranging according to an embodiment of the present disclosure.

[0023] [Figure 13] FIG. 1 is a block diagram of an example electronic device according to an embodiment of the present disclosure.

[0024] Like reference numbers in various figures, according to some exemplary implementations, refer to like elements. Additionally, multiple instances of an element may be indicated by following the first and second numbers for the element with a letter or a hyphen. For example, multiple instances of element 110 may be indicated as 110-1, 110-2, 110-3, etc., or as 110a, 110b, 110c, etc. When referring to such an element using only the first number, any instance of the element should be understood (e.g., element 110 in the previous example refers to elements 110-1, 110-2, and 110-3, or elements 110a, 110b, and 110c). DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0025] Some embodiments are directed to techniques (eg, devices, methods, memories or non-transitory computer-readable media storing code or instructions executable by one or more processors) for many-to-many communication techniques.

[0026] In some embodiments, a mobile device may include ranging circuitry capable of determining a relative distance between the mobile device and another mobile device. For example, time-of-flight measurements may be performed using ultra-wideband (UWB) pulses transmitted between the mobile devices. Ranging may provide distance information that may be used to determine a relative position of one mobile device with respect to another mobile device. By way of example, the relative position may include a distance value, angle (orientation) information, or both between the two devices.

[0027] The ranging functionality can be implemented in combination with another wireless protocol that can establish an initial communication session, for example to perform authentication and / or exchange ranging settings. Additional wireless protocols can also be used, for example, for the transmission of content from one device to the other. For example, video or audio files can be transferred from one device to the other after ranging has been performed.

[0028] The distance information obtained from a ranging session can be used in a variety of ways. For example, the distance information can be used to display the relative location of a receiving mobile device on the screen of a sending mobile device transmitting the data item. Such a user interface can enable a user to quickly and accurately select a recipient device to send a data item, e.g., video, audio, or a link to an application, such as can be used to hand off an application at a specific location (e.g., page) within the application.

[0029] The improved many-to-many technique may include several stages. In a first stage, a mobile device sends out a ranging packet including mobile device information and specifying a number of response windows. The transmission of the ranging packet may be based on the transmission of an advertising signal over a first wireless protocol (e.g., Bluetooth low energy). The ranging packet may be transmitted over a second wireless protocol (e.g., an ultra-wideband (UWB) signal). The number of response windows may be based on a delta t from the transmission of the ranging packet. Multiple response windows may be possible to account for packet collisions between the initiating device and the responding device.

[0030] The second stage can establish symmetric communication links between an initiating mobile device and several receiving devices. For example, assume there are four mobile devices for a communication session. If mobile device #1 can be an initiating device, mobile device #1 can establish communication sessions with mobile devices #2, #3, and #4. Each of the communication sessions can include multiple packet exchanges between the mobile devices. Mobile device #1 can initiate a communication session with each of devices #2, #3, and #4. Mobile device #2 can initiate a communication session with each of devices #1, #3, and #4. Mobile device #3 can initiate a communication session with each of devices #1, #2, and #4. Mobile device #4 can initiate a communication session with each of devices #1, #2, and #3. These multiple communication sessions can result in multiple redundant communication sessions between the devices. For example, there can be multiple communication sessions between devices #1 and #4. One session may have device #1 as the initiating device and device #4 as the responding device, and a second session may have device #4 as the initiating device and device #1 as the responding device. These multiple communication sessions between pairs of devices may not be efficient.

[0031] The third stage (pruning stage) can identify these redundant communication sessions between mobile devices and remove one or more of the redundant sessions to improve efficiency of the communication sessions. For example, one of the redundant sessions between device #1 and device #4 can be terminated as redundant. Similar redundant communication sessions can be terminated between other devices.

[0032] When a new device (e.g., mobile device #5) configured for mobile-to-mobile communication enters the communication session, device #5 sends out a many-to-many communication signal. Devices #1, #2, #3, and #4 can receive the ranging signal and begin to respond to the signal transmitted by device #5. Device #5 can respond to each ranging signal transmitted by devices #1, #2, #3, and #4. Finally, a pruning step can be performed to reduce redundant communication sessions between the newly added device (e.g., mobile device #5) and other mobile devices.

[0033] If one of the participating mobile devices (e.g., device #1, #2, #3, or #4) leaves the communication session, the leaving device (e.g., device #2) will not respond to the communication session of devices #1, #3, and #4. After a predetermined number of missed transmission messages, each of the responding devices (e.g., devices #1, #3, and #4) may terminate their responses to the leaving device (e.g., device #2).

[0034] One or more mobile devices can transmit a timing signal via a low power wireless protocol (e.g., Bluetooth Low Energy (BLE) advertising). The timing signal can inform one or more other mobile devices of the start of a ranging cycle. The mobile devices can perform ranging via a predictable schedule that begins at a predetermined time from the transmission of the timing signal. The schedule for ranging can be generated by the initiating mobile device or can be hard-coded within the mobile device.

[0035] Having a predetermined time to transmit information, the initiating device can enter a low power mode until just before the transmission time. At the predetermined time, via a wireless protocol (e.g., a UWB protocol), the initiating mobile device can begin transmitting and the responding devices can begin receiving. The mobile devices can use the time of reception of the signal from the initiating mobile device to determine the distance of the devices from the initiating mobile device.

[0036] I. Ranging / triangulation techniques In some embodiments, the mobile device may include circuitry for performing distance measurements. Such circuitry may include antennas and circuitry for processing the measured signals. Distance measurements may be performed using the time of flight of a pulse between two mobile devices. In some implementations, a round trip time (RTT) is used, for example, to determine distance information for each of the antennas. In other implementations, a single trip time in one direction may be used. The pulses may be formed using ultra-wideband (UWB) radio technology.

[0037] A. Sequence diagram FIG. 1 illustrates a sequence diagram 100 for performing distance measurements between two mobile devices, according to an embodiment of the present disclosure. The two mobile devices may belong to two different users. The two users may know each other and therefore have each other's phone numbers or other identifiers. As will be explained in more detail later, such identifiers may be used for authentication purposes, e.g., no ranging is performed with an unknown device. Although FIG. 1 illustrates a single measurement, the process may be repeated to perform multiple measurements over a time interval as part of a ranging session, where such measurements may be averaged or otherwise analyzed, e.g., to provide a single distance value for each antenna.

[0038] A first mobile device 110 (e.g., a smartphone) can initiate a distance measurement (operation) by sending a distance measurement request 101 to a second mobile device 120. The distance measurement request 101 can include a first set of one or more pulses. The distance measurement can be performed using a ranging wireless protocol (e.g., UWB). The distance measurement can be triggered in various ways, for example, based on user input and / or authentication using another wireless protocol, for example, Bluetooth Low Energy (BLE).

[0039] At T1, the first mobile device 110 transmits the ranging request 101. At T2, the second mobile device 120 receives the ranging request 101. T2 may be the average reception time when the pulses are in the first set. The second mobile device 120 may expect the ranging request 101 within a time window based on a previous communication, for example, using another wireless protocol. The ranging wireless protocol and the another wireless protocol may be synchronized, such that the second mobile device 120 may turn on the ranging antenna and associated circuitry for a specified time window, as opposed to leaving them on for the entire ranging session.

[0040] In response to receiving the ranging request 101, the second mobile device 120 can transmit a ranging response 102. As shown, the ranging response 102 is transmitted at a time T3, e.g., a transmission time of a pulse or an average transmission time of a set of pulses. T2 and T3 may be a set of times for each pulse. The ranging response 102 can include the times T2 and T3 so that the first mobile device 110 can calculate distance information. Alternatively, a delta between the two times (e.g., T3-T2) can be transmitted. The ranging response 102 can also include an identifier for the first mobile device 110, an identifier for the second mobile device 120, or both.

[0041] At T4, the first mobile device 110 can receive the ranging response 102. Like the other times, T4 can be a single time value or a set of time values. The device 110 measures T1 and T4. The device 120 does not need to transmit them. The device 120 needs to transmit the T2 and T3 measurements, or the difference T3-T2. This can also be a known constant delay, eliminating the need to transmit this information.

[0042] At 103, the first mobile device 110 calculates distance information 130, which may have various units, such as distance units (e.g., meters) or time (e.g., milliseconds). The time may be equivalent to the distance with a proportionality factor corresponding to the speed of light. In some embodiments, the distance may be calculated from the total round trip time, which may be equal to T2-T1+T4-T3. In some embodiments, the processing time for the second mobile device 120 may also be subtracted from the total round trip time. More complex calculations may also be used, for example, when the time corresponds to a set of times for a set of pulses and when frequency corrections are performed.

[0043] B. Triangulation In some embodiments, a mobile device may have multiple antennas, for example to perform triangulation. Separate measurements from different antennas may be used to determine a two-dimensional (2D) position, as opposed to a single distance value that may occur anywhere on a circle / sphere around the mobile device. The two-dimensional (2D) position may be specified in various coordinates, for example, Cartesian or polar coordinates, where polar coordinates may include angle and radius values.

[0044] 2 illustrates a communication group 200 for ranging operations including a mobile device 210 having three antennas 211, 212, and 213, according to an embodiment of the present disclosure. The antennas 211, 212, 213 may be positioned to have different orientations, for example, to define a field of view for performing distance measurements.

[0045] 2, each of antennas 211, 212, 213 transmits a packet (including one or more pulses) that is received by mobile device 220. These packets may be part of a ranging request 201. The packets may each be transmitted at time T1, but may be transmitted at different times in other implementations.

[0046] In some embodiments, the mobile device 220 may have multiple antennas itself. In such implementations, the antenna of the mobile device 210 may transmit a packet (as opposed to broadcast) to a specific antenna of the mobile device 220, and the mobile device 220 may respond to that specific packet. The mobile device 220 may listen to a specific antenna so that both devices know which antenna is involved, or the packet may indicate which antenna the message is for. For example, a first antenna may respond to a received packet, and once a response is received, it may send another packet to a different antenna. However, this alternative procedure may take more time and power.

[0047] The three packets of ranging request 201 may be received at times T2, T3, and T4, respectively. Thus, the antenna (e.g., UWB antenna) of mobile device 220 can listen substantially simultaneously and respond independently. Mobile device 220 provides ranging response 202, each transmitted at time T5. Mobile device 210 receives ranging response at times T6, T7, and T8, respectively.

[0048] At 203, the processor 214 of the mobile device 210 calculates distance information 230, for example, as described herein. The processor 214 may receive time from the antennas, and more specifically, from circuitry (e.g., UWB circuitry) that analyzes signals from the antennas 211, 212, 213. As described later, the processor 214 may be an always-on processor that uses less power than an application processor that may perform more general functions. The distance information 230 may be used to determine a 2D or 3D location of the mobile device 220, and such location may be used to configure the display screen of the mobile device 210. For example, the location may be used to determine where to display an icon corresponding to the mobile device 220, for example, at what location in a list, at what location in a 2D grid, or within what cluster of a 1D, 2D, or 3D distance / location range.

[0049] In some embodiments, to determine which ranging response is from which antenna, the mobile device 220 can inform the mobile device 210 of the order of response messages sent, for example, during a ranging setup handshake that may occur using another wireless protocol. In other embodiments, the ranging response can include an identifier. The identifier indicates which antenna sent the message. These identifiers can be negotiated in the ranging setup handshake.

[0050] The messages in the ranging request 201 and ranging response 202 can contain very little data in the payload, for example by including a small number of pulses. Using fewer pulses can be advantageous. The environment of the mobile device (potentially in a pocket) can make measurements difficult. As another example, the antenna of one device may be pointing in a different direction than the other device is approaching. Thus, while it is desirable to use high power for each pulse, there are government regulations (as well as battery concerns) regarding how much power can be used within a certain time window (e.g., averaged over 1 millisecond). Packet frames in these messages can be approximately 150-180 microseconds long.

[0051] II. Pairwise Ranging and Redundant Session Elimination A mobile device may use GPS or other location determination circuitry to determine the location of the mobile device. For example, a map application may show the approximate location of the mobile device on a map. However, such techniques for determining location are typically determined relative to some fixed external frame of reference, rather than relative to a variable frame of reference, e.g., another mobile device.

[0052] In some embodiments, a mobile device may include ranging circuitry capable of determining a relative distance between the mobile device and another mobile device. For example, time-of-flight measurements may be performed using ultra-wideband (UWB) pulses transmitted between the mobile devices. Ranging may provide distance information that may be used to determine a relative position of one mobile device with respect to another mobile device. By way of example, the relative position may include a distance value, angle (orientation) information, or both between the two devices.

[0053] Ranging techniques between mobile devices face challenges due to clock synchronization between the devices and collisions between messages on the same channel. Techniques can be implemented to reduce the number of collisions between ranging messages by reducing the number of redundant ranging sessions between the devices. After establishing several ranging sessions between the mobile devices, the techniques can include determining several redundant ranging sessions and deciding whether to maintain or remove the redundant ranging sessions. These techniques allow the mobile devices to enter and exit communication sessions without complex routines for adding or removing mobile devices. Furthermore, each device can establish ranging sessions between other mobile devices without the need to establish a coordinator device between the mobile devices.

[0054] In some embodiments, the ranging techniques can use multiple protocols. For example, the authentication and setup phase can be implemented using a first wireless protocol (e.g., BLE or other Bluetooth). A second (ranging) wireless protocol can be used to perform the distance measurements. The ranging techniques can be used to share information between devices with a predefined distance for applications such as augmented reality. This disclosure also provides details regarding mobile devices that perform the ranging techniques.

[0055] The ranging functionality can be implemented in combination with another wireless protocol that can establish an initial communication session, for example to perform authentication and / or exchange ranging settings. Additional wireless protocols can also be used, for example, for the transmission of content from one device to the other. For example, video or audio files can be transferred from one device to the other after ranging has been performed.

[0056] A. Establishing an independent connection for many-to-many ranging exchange FIG. 3 illustrates an example ranging exchange 300 including pair-wise ranging exchanges between multiple mobile devices. Some of the ranging exchanges are redundant. Although FIG. 3 illustrates three mobile devices 302a, 302b, 302c, any number of devices greater than three may employ these techniques. Each of the mobile devices 302a, 302b, and 302c may act as an initiating device and / or a responding device during a ranging session. For example, a first ranging session 310 may be between a first mobile device 302a and a third mobile device 302c. In the first ranging session 310, the third mobile device 302c may be an initiating device by transmitting a ranging request 312. The first mobile device 302a may transmit a response 314 to the ranging request 312. During the first ranging session 310, the third mobile device 302c may calculate the distance between the devices using a two-way time of flight (TWTOF) time. The third mobile device 302a can transmit the calculated distance to the first mobile device 302a via a third packet exchange (not shown in FIG. 3). Alternatively, the calculated distance or TWTOF time between the third mobile device 302c and the first mobile device 302a can be transmitted to the first mobile device 302a using a different communication path (e.g., BLE). The first mobile device 302a can calculate the distance between the first mobile device 302a and the third mobile device 302c using TWTOF. Although the first ranging session 310 shows a single bidirectional packet exchange between the mobile devices, in various embodiments, two or more bidirectional packet exchanges can occur during the first ranging session 310.

[0057] In the second ranging session 320, the first mobile device 302a acts as an initiating device by sending a ranging request. The third mobile device 302c can respond to the ranging request from the first mobile device 302a. The second ranging session 320 can occur before, after, or simultaneously with the first ranging session 310. The first ranging session 310 and the second ranging session 320 can be established independently of each other. In this manner, there is no need to establish a coordinator for either the first ranging session 310 or the second ranging session 320, or for any ranging session as illustrated in FIG. 3 or described for the techniques described herein. During the second ranging session 320, the first mobile device 302c can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The first mobile device 302a can transmit the calculated distance to the third mobile device 302c via a third packet exchange (not shown in FIG. 3). Alternatively, the calculated distance or TWTOF time between the first mobile device 302a and the third mobile device 302c can be transmitted to the third mobile device 302c using a different communication path (e.g., BLE). The third mobile device 302c can calculate the distance between the third mobile device 302c and the first mobile device 302a using TWTOF. Although the second ranging session 320 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, two or more bidirectional packet exchanges can occur during the second ranging session 320.

[0058] In the third ranging session 330, the first mobile device 302a may be an initiating device and the second mobile device 302b may be a responding device. During the third ranging session 330, the first mobile device 302a may calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The first mobile device 302a may transmit the calculated distance to the second mobile device 302b via a third packet exchange (not shown in FIG. 3). Alternatively, the calculated distance or TWTOF time between the first mobile device 302a and the second mobile device 302b may be transmitted to the second mobile device 302b using a different communication path (e.g., BLE). The second mobile device 302b may calculate the distance between the first mobile device 302a and the second mobile device 302b using TWTOF. Although the third ranging session 330 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the third ranging session 330 time period.

[0059] In the fourth ranging session 340, the second mobile device 302b can initiate a ranging session and the first mobile device 302a can respond. During the fourth ranging session 340, the second mobile device 302b can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The second mobile device 302b can transmit the calculated distance to the first mobile device 302a via a third packet exchange (not shown in FIG. 3). Alternatively, the calculated distance or TWTOF time between the second mobile device 302b and the first mobile device 302b can be transmitted to the first mobile device 302a using a different communication path (e.g., BLE). The first mobile device 302a can calculate the distance between the second mobile device 302b and the first mobile device 302a using TWTOF. Although the fourth ranging session 340 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the fourth ranging session 340 time period.

[0060] In the fifth ranging session 350, the third mobile device 302c can initiate a ranging request with the second mobile device 302b, and the second mobile device 302b can respond. During the fifth ranging session 350, the third mobile device 302c can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The third mobile device 302c can transmit the calculated distance to the second mobile device 302b via a third packet exchange (not shown in FIG. 3). Alternatively, the calculated distance or TWTOF time between the third mobile device 302c and the second mobile device 302b can be transmitted to the second mobile device 302b using a different communication path (e.g., BLE). The second mobile device 302b can calculate the distance between the third mobile device 302c and the second mobile device 302b using TWTOF. Although the fifth ranging session 350 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the fifth ranging session 350.

[0061] In the sixth ranging session 360, the second mobile device 302b can initiate a ranging request with the third mobile device 302c, and the third mobile device 302c can respond. During the sixth ranging session 360, the second mobile device 302b can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The second mobile device 302b can transmit the calculated distance to the third mobile device 302c via a third packet exchange (not shown in FIG. 3). Alternatively, the calculated distance or TWTOF time between the second mobile device 302b and the third mobile device 302c can be transmitted to the third mobile device 302c using a different communication path (e.g., BLE). The third mobile device 302c can calculate the distance between the third mobile device 302c and the second mobile device 302b using TWTOF. Although the sixth ranging session 360 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the sixth ranging session 360 time period.

[0062] As shown in Figure 3, there are redundant ranging sessions between devices. For example, the distance between a first mobile device 302a and a third mobile device 302c can be determined by either the first ranging session 320 or the second ranging session 310. Therefore, one of the two ranging sessions is redundant and can be pruned or removed.

[0063] B. Pruning redundant communication exchanges FIG. 4 illustrates pruning of redundant ranging exchanges 400 in a communication session. The ranging exchange 400 of FIG. 4 is similar to the exemplary exchange of FIG. 3, but with additional aspects that reduce one or more redundant ranging sessions. FIG. 4 illustrates an exemplary ranging exchange 400 having redundant ranging exchanges between multiple mobile devices. Although FIG. 4 illustrates three mobile devices 402a, 402b, and 402c, any number of devices greater than three can employ these techniques. Each of the mobile devices 402a, 402b, and 402c can act as an initiating device and a responding device during a ranging session. For example, a first ranging session 410 between a first mobile device 402a and a third mobile device 402c. In the first ranging session 410, the third mobile device 402c can be an initiating device by transmitting a ranging request 412. The first mobile device 402a can transmit a response 414 to the ranging request 412. During the first ranging session 410, the third mobile device 402c can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The third mobile device 402a can transmit the calculated distance to the first mobile device 402a via a third packet exchange (not shown in FIG. 4). Alternatively, the calculated distance or TWTOF time between the third mobile device 402c and the first mobile device 402a can be transmitted to the first mobile device 402a using a different communication path (e.g., BLE). The first mobile device 402a can calculate the distance between the first mobile device 402a and the third mobile device 402c using TWTOF. Although the first ranging session 410 illustrates a single two-way packet exchange between the mobile devices, in various embodiments, two or more two-way packet exchanges can occur during the first ranging session 410.

[0064] In the second ranging session 420, the third mobile device 402c acts as an initiating device by sending a ranging request to the first mobile device 402a. The first mobile device 402a can respond to the ranging request from the third mobile device 402c. During the second ranging session 420, the first mobile device 402c can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The first mobile device 402a can transmit the calculated distance to the third mobile device 402c via a third packet exchange (not shown in FIG. 4). Alternatively, the calculated distance or TWTOF time between the first mobile device 402a and the third mobile device 402c can be transmitted to the third mobile device 402c using a different communication path (e.g., BLE). The third mobile device 402c can calculate the distance between the third mobile device 402c and the first mobile device 402a using TWTOF. Although the second ranging session 420 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the second ranging session 420.

[0065] In the third ranging session 430, the first mobile device 402a may be an initiating device and the second mobile device 402b may be a responding device. During the third ranging session 430, the first mobile device 402a may calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The first mobile device 402a may transmit the calculated distance to the second mobile device 402b via a third packet exchange (not shown in FIG. 4). Alternatively, the calculated distance or TWTOF time between the first mobile device 402a and the second mobile device 402b may be transmitted to the second mobile device 402b using a different communication path (e.g., BLE). The second mobile device 402b may calculate the distance between the first mobile device 402a and the second mobile device 402b using TWTOF. Although the third ranging session 430 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the third ranging session 430 time period.

[0066] In the fourth ranging session 440, the second mobile device 402b can initiate a ranging session and the first mobile device 402a can respond. During the fourth ranging session 440, the second mobile device 402b can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The second mobile device 402b can transmit the calculated distance to the first mobile device 402a via a third packet exchange (not shown in FIG. 4). Alternatively, the calculated distance or TWTOF time between the second mobile device 402b and the first mobile device 402b can be transmitted to the first mobile device 402a using a different communication path (e.g., BLE). The first mobile device 402a can calculate the distance between the second mobile device 402b and the first mobile device 402a using TWTOF. Although the fourth ranging session 440 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the fourth ranging session 440 time period.

[0067] In the fifth ranging session 450, the third mobile device 402c can initiate a ranging request with the second mobile device 402b, and the second mobile device 402b can respond. During the fifth ranging session 450, the third mobile device 402c can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The third mobile device 402c can transmit the calculated distance to the second mobile device 402b via a third packet exchange (not shown in FIG. 4). Alternatively, the calculated distance or TWTOF time between the third mobile device 402c and the second mobile device 402b can be transmitted to the second mobile device 402b using a different communication path (e.g., BLE). The second mobile device 402b can calculate the distance between the third mobile device 402c and the second mobile device 402b using TWTOF. Although the fifth ranging session 450 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the fifth ranging session 450.

[0068] In the sixth ranging session 460, the second mobile device 402b can initiate a ranging request with the third mobile device 402c, and the third mobile device 402c can respond. During the sixth ranging session 460, the second mobile device 402b can calculate the distance between the devices using a two-way time-of-flight (TWTOF) time. The second mobile device 402b can transmit the calculated distance to the third mobile device 402c via a third packet exchange (not shown in FIG. 4). Alternatively, the calculated distance or TWTOF time between the second mobile device 402b and the third mobile device 402c can be transmitted to the third mobile device 402c using a different communication path (e.g., BLE). The third mobile device 402c can calculate the distance between the third mobile device 402c and the second mobile device 402b using TWTOF. Although the sixth ranging session 460 illustrates a single bidirectional packet exchange between the mobile devices, in various embodiments, more than one bidirectional packet exchange may occur during the sixth ranging session 460 time period.

[0069] FIG. 4 shows that the technique can detect that there is a redundant ranging session between the first mobile device 402a and the third mobile device 402c. If the first mobile device 402a receives the distance or TWTOF between the devices via the third communication exchange or via a different communication path, the second ranging session 420 can be considered redundant. The redundant ranging session between the third mobile device 402c and the first mobile device 402a (here, the second ranging session 420) can be designated as a redundant ranging session. Upon detection, one of the ranging sessions of the first ranging session 410 and the second ranging session 420 can be maintained or deleted. Similarly, one of the ranging sessions between the first mobile device 402a and the second mobile device 402b can be designated as redundant. Similarly, one of the ranging sessions between the second mobile device 402b and the third mobile device 402c can be designated as redundant.

[0070] The decision to maintain or terminate each of the one or more redundant ranging sessions can be based on a common criterion shared by the group of mobile devices. The common criterion includes a media access control (MAC) address of the device. A media access control address is a unique identifier assigned to a network interface controller for use as a network address in communications within a network segment. A MAC address can be used in IEEE 802 networking technologies including Ethernet, Wi-Fi, and Bluetooth. The common criterion can be an identifier of the mobile device or a part of an identifier of the mobile device. The identifier of the device can be an International Mobile Equipment Identity (IMEI) number. The IMEI number is a unique identification number or serial number that all mobile phones and smartphones have. The IMEI number can typically be 15 digits long. The part of the identifier can be the last 5 digits of the identifier.

[0071] The first ranging session 410 may be removed by notifying the transmitting device (here, the first mobile device 402a) in the second ranging session 420 to cease sending ranging requests.

[0072] In various embodiments, each of the redundant ranging sessions can determine which ranging session of the pair is redundant. In various embodiments, some but not all of the redundant ranging sessions can be removed. In some embodiments, all of the redundant ranging sessions can be eliminated.

[0073] FIG. 5 illustrates an efficient ranging exchange 500 communication session. FIG. 5 illustrates an example efficient ranging exchange 500 without any redundant ranging exchanges between multiple mobile devices. In accordance with the techniques described herein, it is not necessary that all redundant ranging sessions be terminated. However, the most efficient ranging technique between mobile devices is one in which there is only one ranging session between a pair of devices. It does not matter whether a particular mobile device acts as an initiating device or a responding device.

[0074] 5 shows three mobile devices 502a, 502b, and 502c, but any number of devices greater than three may employ these techniques. Each of the mobile devices 502a, 502b, and 502c may act as an initiating device and a responding device to a ranging request. For example, a first ranging session 510 between a first mobile device 502a and a third mobile device 502c. In the first ranging session 510, the third mobile device 502c may be the initiating device by transmitting a ranging request 512. The first mobile device 502a may transmit a response 514 to the ranging request 512. Although the first ranging session 510 shows a single bidirectional packet exchange between the mobile devices, in various embodiments, two or more bidirectional packet exchanges may occur during the first ranging session 510.

[0075] In a fourth ranging session 540, the second mobile device 502b can initiate a ranging session and the first mobile device 502a can respond. In a sixth ranging session 560, the second mobile device 502b can initiate a ranging request with the third mobile device 502c and the third mobile device 502c can respond.

[0076] FIG. 5 also shows a fourth mobile device 502d participating in the ranging session. Although the fourth mobile device 502d is shown between three other mobile devices, such geometry is not required. The fourth mobile device 502d can receive advertising signals (not shown) from the three other mobile devices and listen to ranging signals 572, 582, 592 from each of the three other mobile devices 502a, 502b, and 502c. FIG. 7 shows a seventh ranging session 570 between the first mobile device 502a and the fourth mobile device 502d. The second mobile device 502b can range with the fourth mobile device 502d as part of an eighth ranging session 580. The fourth mobile device 502d can range with the third mobile device 502c as part of a ninth ranging session 590. The fourth mobile device 502d may select one of the response slots for each of the three mobile device ranging sessions and transmit the response messages 574, 584, 594 accordingly. The response slots may be predetermined time intervals.

[0077] 5 illustrates an efficient ranging technique since there are no redundant ranging sessions between devices. The reduction in redundant ranging sessions saves battery power in each of the devices and reduces the number of potential collisions between data packets.

[0078] C. Ranging Techniques Performed by Mobile Devices 6 shows an example flow chart for a communication technique performed by a plurality of computing devices. The method 600 can be used to determine the spatial relationship of three or more mobile devices to each of the other mobile devices.

[0079] At 602, the technique may include transmitting, via a first wireless protocol, a request to establish an outgoing pairwise ranging session with another mobile device of a group of mobile devices. The request may be an advertising message 704 as shown in FIG. 7. The first wireless protocol may be a low power wireless protocol (e.g., a Bluetooth® Low Energy advertising signal). The transmission of the request to establish the pairwise ranging session may be received by one or more mobile devices within range of the first wireless protocol signal.

[0080] In various embodiments, the transmission schedule for the advertising packets may be transmitted randomly or pseudo-randomly. The transmission schedule may specify a time delay from an advertising packet transmission to the next ranging packet transmission. One or more receiving devices may receive the advertising packets. The advertising packets may include information regarding the identity of the transmitting device. The advertising packets may include a schedule for transmission of ranging packets. The one or more receiving devices may use the advertising packets as a timing signal to calculate the transmission time of the ranging packets.

[0081] The ranging message may include a schedule for responding to one or more mobile devices. The schedule may include one or more time delays following receipt of the ranging message. The responding device may randomly select one of the response time slots to respond to the mobile device. The response message may include a time of receipt of the ranging message. The response message may include an identifier of the response message. The response message may include a rough ranging calculation between the first mobile device and the second mobile device. The responding mobile device may use the time in the ranging message to calculate an approximate distance between the initiating mobile device and the responding mobile device.

[0082] In various embodiments, the ranging message may include information about the transmitting mobile device (e.g., a device identifier). The request may include a time delay (Δt) 708 following receipt of the request to initiate the pairwise ranging session, as shown in FIG. 7. This allows the receiving mobile device to determine a listening window for receiving the ranging message from the initiating mobile device. The pairwise ranging session may be conducted using a second wireless protocol. The second wireless protocol may be an ultra-wideband transmission.

[0083] At 604, the technique may include receiving a request from each of the other mobile devices in the group of mobile devices over a first wireless protocol to establish an incoming pair-wise ranging session with the other mobile device. The request from each of the other mobile devices in the group of mobile devices may include an identifier of the mobile device in the request. The identifier may include an IMEI or a MAC address. The identifier of the mobile device may be used to specify which mobile device of the multiple mobile devices sent the request message. The mobile device may use a time of receipt of the request to establish a listening window for receiving one or more ranging messages.

[0084] Each of the mobile devices can establish a ranging session with each of the other mobile devices, as shown in Figure 3. Each mobile device can function as an initiating device and a responding device, as shown in Figure 3. Thus, multiple ranging sessions (e.g., a first ranging session 310 and a second ranging session 320) can be established between the mobile devices.

[0085] At 606, the technique may include detecting one or more redundant ranging sessions. Each mobile device may receive an identifier of the other mobile device from which it is ranging. For example, the first mobile device 302a shown in FIG. 3 may receive an identifier of the second mobile device 302b and the third mobile device 302c. The identifier may be an IMEI number or a portion of the IMEI of the mobile device. The identifier may be stored in a memory of the mobile device.

[0086] The processor of the mobile device can access the memory to determine whether the mobile device is acting as an initiating device for a certain mobile device identifier. The processor can also determine whether the mobile device is acting as a responding device for a particular device identifier. If the mobile device is acting as both an initiating device and a responding device for the same mobile device identifier, a redundant ranging session exists. For example, as shown in FIG. 3, a first mobile device is acting as an initiating device for a second ranging session 320 and as a responding device for a first ranging session 310. Because the first mobile device is acting as both an initiating device and a responding device with the same mobile device (i.e., a third mobile device 302c), a redundant ranging session exists between the devices.

[0087] Each ranging session can include multiple pair-wise message exchanges between the devices. For each ranging session, one mobile device is an initiating device. The initiating device transmits a ranging message. The second mobile device in the ranging session is a responding device. The responding mobile device receives the ranging message and transmits a response message. The response message can include an identifier of the responding device. In some embodiments, the response message can include a time of the response. The initiating mobile device can receive the response message and calculate the distance between the devices. In various embodiments, multiple pair-wise message exchanges can occur during a ranging session.

[0088] In various embodiments, a first mobile device can act as both an initiating device and a responding device in a pairwise message exchange with a second mobile device. These ranging sessions can be considered as symmetric links and can collectively include two or more symmetric links. A symmetric link can include one or more bidirectional data packet exchanges. One of the two ranging sessions can be considered redundant because the first pairwise message exchange can be sufficient to determine the distance between the first device and the second device. A redundant link is inefficient because it results in additional power required from each of the devices and the additional ranging messages can increase the number of data packet collisions in the same frequency bandwidth.

[0089] At 608, the technique can include identifying whether to maintain or terminate each of the one or more redundant ranging sessions based on a criterion. Under certain circumstances, the processor can decide to maintain one or more redundant links even if there is some inefficiency. The decision not to prune a redundant link can be based on available bandwidth or quality of the received signal. The criterion can be a common criterion shared among a group of mobile devices.

[0090] In some embodiments, a first mobile device can communicate to a second mobile device using an in-band (e.g., UWB) or out-of-band (e.g., BLE) protocol to communicate loading on a transceiver for the first mobile device to reduce one or more redundant ranging sessions between the devices. The devices can randomly select which of the redundant ranging sessions to prune. Characteristics of the mobile devices (e.g., Media Access Control (MAC) addresses) can be used to determine which ranging sessions to prune. Common criteria can include an identifier of the mobile device (e.g., IMEI). Common criteria can include all or a portion of an identifier for the mobile device to determine which ranging sessions to prune. For example, in one embodiment, an initiating device with a lower numerical value of ranging sessions can be pruned. Alternatively, an initiating device with a higher numerical value can be pruned.

[0091] At 610, the technique may include performing ranging using the remaining ranging sessions with each of the other mobile devices. The ranging technique may be accomplished by determining the distance between the devices using the round trip time between the time of sending the ranging request and the time of receiving the response. The response message may be received by multiple antennas on the first mobile device. Each of the multiple antennas on the first mobile device may receive the response message at a different time based at least on the orientation of the multiple antenna elements and the orientation of the mobile device. The first mobile device may use the reception times of the response messages at the different antennas in addition to the sensors to detect the orientation of the device and calculate the angle of arrival to the responding device. The calculated distance and angle of arrival may be stored in a memory of the mobile device. The distance and / or angle of arrival may be used in one or more mobile device applications.

[0092] It will be appreciated that the specific steps illustrated in FIG. 6 provide a particular technique for a many-to-many communication technique according to various embodiments of the present disclosure. Also, other sequences of steps may be performed according to alternative embodiments. For example, the steps described above may be performed in different orders in alternative embodiments of the present invention. Moreover, each step described in FIG. 6 may include multiple sub-steps that may be performed in various orders as appropriate for that individual step. Furthermore, steps may be added or deleted depending on the particular application. Those skilled in the art will recognize many variations, modifications, and alternatives.

[0093] FIG. 8 illustrates an exemplary ranging exchange 800 between a first mobile device (device A) 802 and multiple computing devices (e.g., device B 804 and device C 806). Although only two devices are shown in FIG. 8, more computing devices can participate in ranging depending on the number of time slots available in the listening window 812. To allow multiple devices to perform ranging with an initiating device while minimizing or avoiding collisions between messages, the following techniques can be implemented: One of many devices can be identified as an initiating device. The period for performing ranging between the initiating device and multiple computing devices is a ranging round. The ranging round can be repeated one or more times based on the requirements of the applications running on the devices. The structure of a ranging round is disclosed below.

[0094] III. Ultra-wideband packet transmission Because ultra-wideband transmissions are not continuous, a receiving device that wants to acquire a UWB transmission needs knowledge of the start time of the transmission or needs to expend energy in a powered-on state listening until the device captures the impulse UWB signal. If the receiving device only knows the approximate time of the transmission, the receiver can stay in a reduced power mode or sleep mode until just before the transmission time. With UWB communications, it can be difficult for the receiving device to know when the first packet will arrive.

[0095] A technique for propagating UWB transmission times is to broadcast the transmission time information using another wireless protocol, for example Bluetooth Low Energy (BLE) advertisement transmission, at a defined time after the advertisement signal. An example may be mentioned Bluetooth, but other wireless protocols may be used. BLE has 40 physical channels in the 2.4 GHz ISM band, each physical channel separated by 2 MHz. Bluetooth defines two transmission types: data transmission and advertising transmission. Thus, 3 of these 40 channels are dedicated to advertising and 37 channels are dedicated to data. Advertising allows devices to broadcast information that defines their intentions.

[0096] The UWB information packet may be configured to transmit at a specific time relative to the transmitting device's BLE advertisement. Thus, the receiving device may listen for the UWB packet at the expected time or during an expected time window around the expected time. The UWB packet may carry transmitting device information, deep link, and / or transmission time information. The receiver device may use the time in the BLE advertising message to determine when to listen for the next poll. The UWB packet may be transmitted in the UWB frequency range.

[0097] The wireless protocol used for ranging can have a narrower pulse (e.g., narrower full width at half maximum (FWHM)) than the first wireless protocol (e.g., Bluetooth) used for initial authentication or communication of the ranging setup. In some implementations, the ranging wireless protocol (e.g., UWB) can provide a distance accuracy of 5 cm or better. The frequency range can be 3.1 to 10.6 gigahertz (GHz). Multiple channels can be used, e.g., one channel at 6.5 GHz, another channel at 8 GHz. As such, in some cases, the ranging wireless protocol does not overlap with the frequency range (e.g., 2.4 to 2.485 GHz) of the first wireless protocol.

[0098] Ranging radio protocols can be specified by IEEE 802.15.4, which is a type of UWB. Each pulse in a pulse-based UWB system can occupy the entire UWB bandwidth (e.g., 500 MHz), allowing the pulse to be localized in time (i.e., narrow time width, e.g., 0.5 ns to a few nanoseconds). In terms of distance, the pulse can be less than 60 cm wide for a 500 MHz wide pulse and less than 23 cm wide for a 1.3 GHz wide pulse. With such a wide bandwidth and such a narrow width in real space, very accurate time-of-flight measurements can be obtained.

[0099] Each one of the ranging messages (also called a frame or packet) can include a sequence of pulses that can represent modulated information. Each data symbol in a frame can be a sequence. A packet can have a preamble that includes header information, e.g., physical layer and media access control (MAC) layer, and can include a destination address. In some implementations, a packet frame can include a synchronization portion and a start frame delimiter that can line up timing.

[0100] The packet may include how security is configured and may include encrypted information, e.g., an identifier of which antenna transmits the packet. The encrypted information may be used for further authentication. However, for ranging operations, the content of the data may not need to be determined. In some embodiments, a timestamp for the pulse of a particular piece of data may be used to track the difference between transmission and reception. The content (e.g., the decrypted content) may be used to match the pulses so that the correct time difference may be calculated. In some implementations, the encrypted information may include an indicator that authenticates which stage the message corresponds to, e.g., a ranging request may correspond to a first stage and a ranging response may correspond to a second stage. Such use of an indicator may be useful when more than two devices are performing ranging operations near each other.

[0101] Narrow pulses (e.g., ∼2 nanoseconds wide) can be used to accurately determine distance. This corresponds to a 500 MHz spectrum (bandwidth). A high bandwidth (e.g., 500 MHz spectrum) allows for narrow pulses and accurate location determination. Cross-correlation of the pulses can provide timing accuracy that is a small fraction of the width of the pulse, providing accuracy within hundreds or tens of picoseconds, for example, providing sub-meter level ranging accuracy. The pulses can represent plus-one and minus-one ranging waveforms in some pattern that is recognized by the receiver. Distance measurements can use round-trip time measurements, also called time-of-flight measurements. As mentioned above, the mobile device can transmit a set of timestamps, which can eliminate the need for clock synchronization between the two devices.

[0102] FIG. 7 illustrates an example diagram of a timeline 700 for using BLE advertisement signals to synchronize timing for transmission of UWB packets. FIG. 7 illustrates a timeline 700 for transmission of multiple signals (e.g., UWB and BLE signals) from a single device. The transmitter device may transmit UWB packets 702a-702j on an irregular schedule. The transmitter device may also transmit BLE advertisements 704 in a separate band to inform other devices when to listen for the next UWB packet 702a-702j transmission. For example, the BLE advertisements 704 may be transmitted approximately every 30 milliseconds. The BLE advertisements 704 may be transmitted irregularly to avoid collisions between data packets. Thus, the BLE advertisements 704 may be transmitted at a predetermined interval (e.g., every 30 seconds) plus some random delay of 0-10 milliseconds. This provides random dithering between advertisements. The transmitter device may transmit UWB packets 702a-702j at a fixed time interval (ΔT) 708 following the transmission of the BLE advertisement 704. The time interval (ΔT) 708 may be predetermined so that the receiving device knows to listen for the UWB packets 702a-702j a predetermined time after the transmission of the BLE advertisement 704.

[0103] In a one-to-many communication technique, there may be multiple receiver devices, as described above. The UWB packets 702a-702j may be ranging requests 101 as shown in Figure 1, or broadcast messages 312 as shown in Figure 3. For example, with one initiating device and three receiving devices in a ranging round, each communication may be designated in a specific time slot (as shown in Figure 8). In some embodiments, the single broadcast message for one-to-many may be an advertising signal.

[0104] In other embodiments, for each timeslot, there may be a different BLE advertisement signal 704 and a different UWB packet 702a-702j for that particular timeslot to synchronize the timing between the transmitting device and the receiving device during the timeslot.

[0105] In some embodiments, a mobile device may include circuitry for performing distance measurements. Such circuitry may include one or more dedicated antennas (e.g., three) and circuitry for processing the measured signals. Distance measurements may be performed using the time of flight of a pulse between two mobile devices. In some implementations, a round trip time (RTT) is used, for example, to determine distance information for each of the antennas. In other implementations, a single trip time in one direction may be used. The pulses may be formed using ultra-wideband (UWB) radio technology. Ranging techniques between multiple devices may be challenging due to scheduling the transmission of ranging request messages, response messages, and acknowledgement messages on the same channel such that collisions between these messages are minimized or avoided. These techniques may be better understood with a brief description of ranging techniques for mobile devices.

[0106] IV. Further Many-to-Many Communication Techniques In some applications, e.g., augmented reality, multiple mobile devices perform distance measurements on one another. Techniques may be implemented to overcome challenges due to mobile device clock drift. If the internal clocks of mobile devices in a group of mobile devices are not synchronized, inaccuracies in distance calculations may occur. In various embodiments, clock drift (either ahead or behind true time) may affect the calculated distance. These techniques attempt to minimize duplicate communications that may occur due to clock drift or other synchronization issues.

[0107] Other many-to-many ranging techniques may use a predefined ranging schedule between mobile devices. These other techniques may be inflexible and require knowledge of the number of devices that have previously participated in a many-to-many communication session. Furthermore, such other techniques may require the designation of a coordinator device for a mobile device in a many-to-many communication session. The techniques disclosed herein are simply a process by which mobile devices enter and exit a many-to-many communication ranging session.

[0108] In one embodiment, the technique includes one or more ranging rounds 808. The ranging round 808 may be divided in time into discrete windows including an initial time slot 816 (i.e., time slot 0), a listening window 812, and an inactive period 814. Before the ranging round 808 begins, the initiating mobile device 802 may determine parameters for the ranging round 808 including the initial time slot 816, the number of response time slots, and the duration of each response time slot. The parameters of the ranging round 808 may be based in part on the number of computing devices in the ranging round 808 and any information regarding the known distance between the devices 804, 806. The parameters of the ranging round 808 may be generated by one or more processors of the initiating mobile device 802 and stored in a memory of the initiating mobile device 802. The parameters of the ranging round 808 may be incorporated into a broadcast message 810 for transmission to the other mobile devices 804, 806. The parameters of the ranging round 808 may also be defined by the particular protocol used for ranging.

[0109] The number and duration of slots for the ranging round 808 may vary dynamically. For example, if the number of detected collisions increases, the number of slots may be increased for the ranging round 808. This allows for more slots in the ranging round 808 in case a collision occurred during the previous time slot, increasing the chances of a second response message 838. If the number of detected collisions decreases, the number of available slots may be decreased to reduce the power requirements for ranging.

[0110] A broadcast message 810 may be transmitted by the initiating mobile device 802 during the initial timeslot 816. In some embodiments, the time and duration of the initial timeslot 816 may be included in the broadcast message 810. In this way, devices 804, 806 receiving the broadcast message 810 know not to perform ranging during the initial timeslot 816.

[0111] The broadcast message 810 may also include an identifier of the initiating mobile device 802. The identifier of the initiating mobile device 802 may be received by the mobile devices 804, 806 and then included in the response message 830 so that the initiating mobile device 802 can identify that the response message 830 is associated with the broadcast message 810 sent by the initiating mobile device 802. In some embodiments, the identifier may be provided by the manufacturer of the electronic device (e.g., an International Mobile Equipment Identity (IMEI) number). In some embodiments, the identifier may be a portion of the IMEI number (e.g., only the last five digits).

[0112] The duration of each time slot may also be specified in the broadcast message 810. By specifying the number and duration of each of the time slots, the mobile devices 804, 806 may select from several different defined time periods to perform ranging, reducing the possibility of missing messages due to collisions between messages on the same channel. The failure of the mobile devices 804, 806 to receive an acknowledgment message 834 from the initiating mobile device 802 in response to the response message 830 may be an indication that two devices are transmitting in the same time slot. Rather than simply retransmitting the response message 830 again during the same time slot, a different time slot later in time in the listening window 812 may be selected by the device to perform ranging. In this manner, potential collisions due to multiple devices 804, 806 performing ranging operations during the same time slot may be reduced.

[0113] The initiating mobile device 802 may send a broadcast message 810 to begin the process in time slot 0 816. The listening window 812 and corresponding time slot may begin immediately after the broadcast transmission is completed.

[0114] Parameters for the ranging round 808 may be communicated from the initiating mobile device 802 to multiple computing devices via a broadcast message 810. For example, FIG. 8 shows timeslot-1 818 through timeslot-M 822 during a listening window 812. M may be an integer greater than 2. The number of timeslots may be related to the number of devices participating in the ranging session. As the number of participating devices increases, the number of timeslots should also increase.

[0115] Following the initial timeslot 816, a listening window 812 begins. The listener window 812 may be divided into multiple non-overlapping timeslots (e.g., timeslot-1 818 through timeslot-M 824) to provide designated times for the computing devices to perform ranging measurements with the initiating device 802. The timeslots provide designated time windows for the devices 804, 806 to perform ranging measurements with the initiating mobile device 802. The devices 804, 806 may receive ranging round parameters, such as the number and duration of timeslots, from the initiating device 802. From these parameters, each of the devices 804, 806 may independently select a timeslot to perform ranging measurements with the initiating mobile device 802. Under some circumstances, two or more devices 804, 806 may select the same timeslot, resulting in undesirable missed messages due to collisions. Thus, the devices 804, 806 may randomly or pseudo-randomly select timeslots to perform ranging measurements to reduce the likelihood of collisions. The time slots can be based in time on a time period from an initiating mobile device transmission of the broadcast message 810. In some embodiments, the listening window 812 can include 20-40 time slots. The duration of a time slot can be on the order of milliseconds (ms).

[0116] The time slots provide an opportunity for the devices 804, 806 to conduct a ranging session with the initiating mobile device 802. Upon receiving the broadcast message 810, one or more processors of the devices 804, 806 execute a routine to select one of the time slots defined in the broadcast message 810. The selected time slot may be stored in a memory of the devices 804, 806. Selection of the time slot is described below.

[0117] During the selected time slot, the devices 804, 806 send a response message 830 to the initiator mobile device 802. The response message 830 may include information required by the initiator mobile device 802 to identify the devices 804, 806. In addition, the response message may include information to link the response message 830 to the initiator mobile device 802, such as an identifier of the initiator mobile device 802. The response message 830 may also include an estimated distance between the initiator mobile device 802 and the devices 804, 806, which may be calculated by one or more processors of the devices 804, 806.

[0118] Upon receiving the response message 830 during the selected time slot, one or more processors of the initiating mobile device 802 can calculate a first distance between the initiating mobile device 802 and the devices 804, 806. The first distance can be calculated by knowing the time slot to which the devices 802, 804 are responding. The initiating mobile device 802 knows when the time slot starts and can calculate the duration from the start of the time slot to the receipt of the response message 830. The duration is related to the first distance between the initiating mobile device 802 and the devices 804, 806. The first distance can be calculated by multiplying the duration by the speed of light (c). In some embodiments, the processing time by the initiating mobile device 802 can be subtracted from the duration to account for any delay in receiving and processing the response message 830.

[0119] During the selected time slot, the initiator mobile device 802 may transmit an acknowledgement message 834 to the devices 804, 806. The acknowledgement message 834 notifies the devices 804, 806 that the response message 830 was received by the initiator mobile device 802. In some embodiments, the acknowledgement message 834 may include information such as an identifier of the initiator mobile device 802, an identifier of the devices 804, 806, a first distance between the initiator mobile device 802 and the devices 804, 806, and a delay time.

[0120] Under some circumstances, collisions between messages transmitted on the same channel may result in the initiating mobile device 802 not receiving the response message 830 or the devices 804, 806 not receiving the acknowledgement message 834. The devices 804, 806 may determine that they have not received an acknowledgement message in response to the response message 830 that they transmitted. In these circumstances, the device 804 may select a second time slot to transmit a second response message 838. The time slot 824 for the second response message 838 may be selected randomly or pseudo-randomly. In response to receiving the second response message 838, the initiating mobile device 802 may transmit a second acknowledgement message 840 to the device 804. The second acknowledgement message 840 informs the devices 804, 806 that the second response message 638 was received by the initiating mobile device 802. In some embodiments, the second acknowledgement message 840 may include information such as an identifier of the initiating mobile device 802, an identifier of the devices 804, 806, a first distance between the initiating mobile device 802 and the devices 804, 806, and a delay time. Under some circumstances, the second acknowledgement message may not be received due to a collision between the messages. In this case, a third time slot may be selected for ranging between the devices. This process may continue until all devices 804, 806 receive an acknowledgement message from the initiating mobile device 802.

[0121] Following the listening window 812, the ranging round 808 includes an inactive period 814. The inactive period 814 provides a time delay between ranging rounds 808 to conserve power on the initiating device 802 and the responding devices 804, 806. If the inactive delay was not present, ranging rounds could occur too frequently, resulting in increased power consumption of the devices. The inactive period can also be divided into multiple time slots, e.g., time slot-M+1 826 and time slot-N 828. In various embodiments, there may be only one time slot during the inactive period 814.

[0122] A. Slot selection In computer networking, multicast is a group communication in which a data transmission is simultaneously addressed to a group of destination computers. Multicast can be one-to-many or many-to-many delivery. In multicast technology, time slots are assigned. In contrast, in a broadcast scenario, time slots are not assigned. In a broadcast situation, the initiating mobile device 802 does not know how many responding devices (e.g., device 804 and device 806) are present or what the identities of the responding devices are.

[0123] The devices 804, 806 may receive the broadcast message 810 transmission. Upon receiving and processing the broadcast message 810, the mobile devices 804, 806 may select one of the time slots (e.g., 818-824) listed in the broadcast message 810 to transmit a response message 830 to perform ranging between the devices. The devices 804, 806 are not assigned to a particular time slot 818, 820, 822, 824. Instead, the devices 804, 806 may select one of the time slots 818, 820, 822, 824 for transmission of the response message 830. The selection may be made randomly or pseudo-randomly. The random or pseudo-random selection reduces the amount of missed messages due to message collisions on the channel.

[0124] As shown, the device 804 selects a timeslot 820. The device 804 receives the broadcast message 810 during timeslot-0 816 and then waits until the start of timeslot-n (1) 820. Ranging with other devices may occur during timeslot-1 818. During the selected timeslot 820, the device 804 transmits a response message 830. The response message 830 may include an identifier for the device 804 (e.g., an International Mobile Equipment Identity (IMEI) number).

[0125] The period between the receipt of the broadcast message 810 at the device 804 and the time of transmission of the response message 830 may be known as the response time (D1) 832. The response time (D1) 832 may include the processing time at the device 804 to receive and process the content of the broadcast message 810, generate the response message 830, and transmit the response message 830. The response time (D1) 832 also includes the waiting time until the selected time slot begins. The response time (D1) 832 may also be referred to as the time from receive (RX) to transmit (TX).

[0126] During the selected time slot, the initiator mobile device 802 may receive the response message 830. The initiator mobile device 802 may calculate a round trip time (R1) as the time difference between the broadcast message 810 transmission time (at time slot 0) and the response message 830 reception time. In response to receiving the response message 830, the initiator mobile device 802 may generate an acknowledgement message 834. The initiator mobile device 802 may also calculate a response time 836 (D2) between receiving the response message 830 and sending the acknowledgement message 834. The initiator mobile device 802 may calculate a first distance between the initiator mobile device 802 and the device 804 by multiplying the round trip time (R1) by the speed of light (c).

[0127] The acknowledgement message 834 may include information such as an identifier of the initiating mobile device 802, an identifier of the device 804, a round trip time R1, a first distance, and a response time 836. The initiating mobile device 802 can use the round trip time (R1) and the response time (D2) 832 to calculate a rough distance estimate between the initiating mobile device 802 and device A 804. By responding within a specified period of time, the initiating mobile device 802 can determine which time slot (818, 820, 822, 824) was selected by the responding device. The response time (D2) 836 should be less than the response time (D1) 832 because there is no specific waiting period by the initiating mobile device 802 to send the acknowledgement message 834. The response time (D2) 836 only includes the time it takes the initiating mobile device 802 to receive and process the response message 830 and the time it takes the initiating mobile device 802 to generate and send the acknowledgement message 834.

[0128] Similarly, device 806 may receive the broadcast message 810 in time slot -0 816. Device B 806 may respond by transmitting a response message 830 in time slot n(2) 822. The initiating mobile device 802 may receive the response message 835 from device 806 and generate and transmit an acknowledgment message in time slot n(2) 822. The information included in the response message 835 may be similar to the type of information response message 830 described above. The information included in the acknowledgment message 837 may be similar to the type of information included in the acknowledgment message 834 described above. Other time slots of the total M time slots may also be used.

[0129] If the device 804 or device 806 fails to receive the acknowledgement message 834 or the acknowledgement message 837, it can be assumed that there was a collision between the transmitted messages. When a packet collision occurs, the packets are discarded or sent back to their origination station and then retransmitted in a time-constrained sequence to avoid further collisions. Packet collisions can result in loss of packet integrity or can hinder the performance of the network. Packet collisions can result in the initiating mobile device 802 or device 804, 806 failing to calculate distance. The devices perform ranging on a single channel that can use a single discrete frequency. If the initiating mobile device 802 or device 804, 806 are communicating on the same channel at the same time, interference between other devices will result in undesirable data collisions during the exchange. If any of the devices 804, 806 does not receive the acknowledgement message 834 or the acknowledgement message 837, the device 804, 806 can be programmed to transmit a second response message 838. If there is sufficient time remaining in the selected time slot, the second response message may be transmitted in the originally selected time slot. In some embodiments, the devices 804, 806 may select a different time slot (e.g., time slot-M 824) to transmit the second response message 835. In this case, the initiating mobile device 802 may transmit a second acknowledgement message 840. The second acknowledgement message 838 may include the same type of information as described above for the first acknowledgement message 834. In case of further collisions, this process may be repeated until the second acknowledgement message 840 is received by the device.

[0130] B. Distance calculation 9 shows a simplified timeline 900 for a ranging exchange between an initiating device 902 and a computing device 904. At time t0 906, the initiating device 902 may transmit a broadcast message. The broadcast message may be received by the computing device 904 at time t1 908. Some time later, at t2 910, the device 904 may transmit a response message to the initiating device 902. A response time (D1) 912 may be the elapsed time between t1 908 and t2 910. The response time (D1) 912 may include any delay in processing the broadcast message and generating and transmitting the response message. The response time (D1) 912 may also include a delay waiting for a selected time slot to begin.

[0131] The reply message may be received by the initiating device 902 at time t3 914. A round trip time (R1) 916 may be calculated as the elapsed time between t0 906 and t3 914. In some embodiments, the device 904 may transmit a response time (D1) 912 as part of the information included in a data packet transmitted to the initiating device 902. The initiating device 902 may calculate a time of flight (TOF) by subtracting the response time (D1) 912 from the round trip time (R1) 916. The initiating device 902 may calculate a coarse distance between the initiating device 902 and the device 904, which may be calculated by multiplying the TOF by the speed of light c or a fixed speed of 299,794,458 meters per second.

[0132] Upon receiving the response message, the initiating device 902 generates and sends an acknowledgement message at time t5 918. The response time (D2) may include the elapsed time between t5 918 and t3 914. The response time (D2) may include the processing time for receiving the response message and generating and sending the acknowledgement message. In some embodiments, the acknowledgement message may include information such as a round trip time (R1) 916 and a response time (D2) 920.

[0133] The acknowledgement message may be received by device 904 at time t4 922. Device 904 may receive the acknowledgement message. In some embodiments, device 904 may receive the acknowledgement message including round trip time (R1) 916, response time (D1) 912, and response time (D2) 920 to calculate an accurate range between the initiating device 902 and device 904. Device 904 may calculate the time of flight (TOF) or time difference by subtracting response time (D2) 920 from round trip time (R2) 924. When the calculation signal travels at the speed of light c, the accurate distance between device 904 and the initiating device 902 may be determined by multiplying the speed of light by the TOF.

[0134] In some embodiments, the device 904 may send a ranging message from the device 904 at time t6 926. The ranging message may include a round trip time (R2) 924 and a response time (D1) 912. The initiating device 902 may receive the ranging message to calculate an accurate distance between the initiating device 902 and the device 904.

[0135] Acknowledgement messages received by the device 904 may be checked to determine the identifier of the device that sent the reply message. The device 904 ignores acknowledgement messages with a different identifier.

[0136] In some embodiments, the third transmission can be transmitted from the device 904 to the initiating device 902. In some embodiments, the third transmission can include a time-of-flight (TOF) calculation.

[0137] Each of the multiple devices can similarly determine the distance of the device 904 from the initiating device 902. The multiple devices do not communicate their selected time slots to each other. As a result, one or more devices may select the same time slot. Because the devices transmit information packets at the same frequency, collisions may occur between data packages and data may be lost. The greater the number of participating devices, the greater the likelihood that the devices will select the same time slot, which may increase the number of collisions between data packages. Conversely, the smaller the number of participating devices, the less likely there will be collisions and lost data.

[0138] In some embodiments, the number of time slots in a ranging round may vary. The number of time slots may be increased based on the number of collisions. As previously explained, the number of computing devices in the vicinity of the initiating mobile device may affect the number of collisions. As more collisions are detected, the number of slots may be increased to accommodate the number of devices. As fewer collisions are detected, the number of slots may be decreased to reduce power requirements for the initiating mobile device.

[0139] C. Schedule sequence diagram FIG. 10 illustrates a portion of an exemplary sequence diagram 1000. In the exemplary sequence diagram 1000, the maximum number of devices (K) is 10 and the number of channels (N) is 4. In the exemplary sequence diagram 1000, a four-packet exchange can provide accurate range information at both the initiator and responder devices. For example, for the first time slot 1004, device 1 is the initiator of the ranging exchange and device 2 is the responder device. The exemplary sequence diagram 1000 can have a total of 12 rows 1002. The exemplary sequence diagram 1000 can have a total of 48 time slots, each time slot having a duration of approximately 2.5 milliseconds each. During each time slot, up to four packets of ranging operations (1006, 1008, 1010, and 1012) can occur. The entire ranging sequence 1014 can last 120 milliseconds, resulting in a measurement rate of 8.3 Hz.

[0140] As shown in FIG. 10, device 2 is the responder device in the device 1 to device 2 exchange (1,2), but then in the pair (2,3) exchange, device 2 becomes the initiator device. Device 2 can propagate timing information from device 1. It transmits its poll packet in the (2,3) exchange by forward projecting the time it received device 1's poll packet in the (1,2) exchange. Each device, except device 1, when acting as an initiator in pair (x,J), must transmit its poll packet at a time that is a forward projection of when it last received a poll packet in pair (l,x), with device l being the most recent device that it has distanced as a responder device. Device 1 (the coordinator) is always the initiator in this configuration and therefore establishes the timing of all pair-wise exchanges in the ranging schedule.

[0141] D. Many-to-Many Ranging Techniques 11 shows an example flowchart for a ranging technique performed by one or more mobile devices. The method 1100 may be used to determine the spatial relationship of three or more mobile devices to each of the other mobile devices. One or more instructions for performing the foregoing operations may be stored in a non-transitory computer-readable medium that may be executed by one or more processors.

[0142] At 1102, the technique can include storing a schedule. The schedule can specify transmission times for transmitting ranging packets. The schedule can be stored in a memory of one or more mobile devices. The schedule can include multiple time delays from a timing signal to define multiple response time slots.

[0143] In various embodiments, the schedule may define a ranging round that may include an initial time slot and multiple response slots for discovering and performing ranging with any mobile devices in the vicinity of the initiating device.

[0144] At 1104, the technique may include designating a number of response time slots for receiving responses from two or more participating mobile devices during the number of response time slots. Each of the response slots does not overlap in time with others of the plurality of response slots. The initiating device may determine the number of response slots, the total ranging time, the duration of each of the time slots, the number of time slots for inactive periods, and the total time for the inactive periods. In some embodiments, defining the ranging round includes modifying the response slots.

[0145] At 1106, the technique can include transmitting an advertising packet comprising device information for the first mobile device over a first wireless protocol at an interval. The interval can be random or pseudo-random. In various embodiments, the first wireless protocol can be a low power wireless protocol (e.g., a Bluetooth® Low Energy advertising signal). The transmission of the advertising packet can be a request to establish a pair-wise ranging session that can be received by one or more mobile devices within range of the first wireless protocol signal. The transmission schedule for the advertising packet can be transmitted randomly or pseudo-randomly. One or more receiving devices can receive the advertising packet. The advertising packet can include information regarding an identity of the transmitting device. In some embodiments, the advertising packet can include a schedule for transmission of the ranging packet. The one or more receiving devices can use the advertising packet as a timing signal to calculate a transmission time of the ranging packet.

[0146] At 1108, the technique may include transmitting a ranging packet over a second wireless protocol according to a schedule. The ranging packet may correspond to ranging messages 602a-j shown in FIG. 6. The ranging packet may be transmitted in any number of response slots and is not limited to slot 1. The ranging request may use an ultra-wideband protocol (UWB). The ranging request may be associated with a ranging round having multiple response slots. Each of the multiple response slots does not overlap in time with the others of the multiple response slots. The response slots may be set at a predefined time interval after the transmission of the request to establish an outgoing pair-wise ranging session. The ranging request may be associated with an initiating device identifier of the initiating device. In this way, the device may limit responses to the ranging request originating only from the initiating device. The ranging request may include information regarding the number of available slots. In some embodiments, the ranging request may include information regarding the length or duration of the time slot for the ranging round. The initiating device may be a computing device (e.g., a smartphone).

[0147] The ranging packet may include a schedule for responding to one or more mobile devices. The schedule may include one or more time delays following receipt of the ranging message. The responding device may randomly select one of the response time slots to respond to the mobile device. The response message may include a time of receipt of the ranging message. The response message may include an identifier of the response message. The response message may include a rough ranging calculation between the first mobile device and the second mobile device. The responding mobile device may use the time in the ranging message to calculate an approximate distance between the initiating mobile device and the responding mobile device.

[0148] In various embodiments, the request may include information about the transmitting mobile device (e.g., a device identifier). The request may include a time delay (Δt) following receipt of the request to initiate the pairwise ranging session. This allows the receiving mobile device to determine a listening window for receiving ranging messages from the initiating mobile device. The pairwise ranging session may be conducted using a second wireless protocol. The second wireless protocol may be an ultra-wideband transmission.

[0149] At 1110, the technique may include receiving two or more responses from two or more participating mobile devices during the response time slot via the second wireless protocol. The two or more responses may include information from the two or more participating mobile devices from the responding mobile devices. In various embodiments, the second wireless protocol is an ultra-wideband protocol. In various embodiments, each response of the two or more responses includes an identifier of each of the responding mobile devices. The first response slot may include time slot-n(1) 820 as shown in FIG. 8. The first response message may correspond to the response message 830 shown in FIG. 8. The first response message may be a packet information including an identifier of the first device that sent the response message. The identifier may be an IMEI number. The first response message may also include a response time (D1) or an elapsed time from receiving the broadcast message to sending the first response message. The response time (D1) may include any delay waiting for the start of the selected time slot. The response time (D1) may also include any processing time for receiving and processing the broadcast message and for processing and sending the first response message. The first response message may also include an approximate estimate of the distance to the initiating mobile device calculated by one or more processors of the device. The first response message may also include an identifier of the initiating device.

[0150] At 1112, the technique may include determining a number of responding mobile devices based at least in part on a number of responses received from the two or more responding mobile devices. The two or more responding devices may be configured to perform similar communication steps as the first mobile device. The number of responding devices may be stored in memory. In various embodiments, an identifier of each of the responding mobile devices may be stored in memory.

[0151] At 1114, the technique can include receiving two or more advertising packets transmitted from a responding mobile device over a first wireless protocol. The two or more advertising packets can include information about the initiating device. The two or more advertising packets can include a schedule for the ranging session. The responding mobile device can use the advertising packets to determine one or more response time slots.

[0152] At 1116, the technique can include transmitting a response to the responding mobile device via a second wireless protocol. The second wireless protocol can be an ultra-wideband wireless protocol. The response message can include an identifier of the responding device. In various embodiments, the response message can include an identifier of the initiating device. The distance between the initiating mobile device and the responding mobile device can be determined by calculating the round trip time between sending the ranging message and receiving the acknowledgment message and subtracting any processing delays. In some embodiments, the ranging operation can have two or more exchanges of messages between the initiating mobile device and the responding mobile device. Multiple message exchanges allow for distance determination even if one of the messages is missed.

[0153] At 1118, the techniques can include determining a number of symmetric communication links established between the responding mobile devices via the second wireless protocol. The symmetric communication link can be between the first mobile device and one of the responding mobile devices.

[0154] Each ranging session can include multiple pair-wise message exchanges between the devices. For each ranging session, one mobile device is an initiating device. The initiating device transmits a ranging message. The second mobile device in the ranging session is a responding device. The responding mobile device receives the ranging message and transmits a response message. The response message can include an identifier of the responding device. In some embodiments, the response message can include a time of the response. The initiating mobile device can receive the response message and calculate the distance between the devices. In various embodiments, multiple pair-wise message exchanges can occur during a ranging session.

[0155] In various embodiments, a first mobile device can act as both an initiating device and a responding device in a pairwise message exchange with a second mobile device. These ranging sessions can be considered as symmetric links. One of the two ranging sessions can be considered redundant because the first pairwise message exchange can be sufficient to determine the distance between the first device and the second device. A redundant link is inefficient because it results in additional power required from each of the devices and the additional ranging messages can increase the number of data packet collisions in the same frequency bandwidth.

[0156] At 1120, the technique can include determining a redundant communication link for one or more of the established symmetric communication links between the responding mobile devices, the redundant communication link comprising a second symmetric communication link between the first mobile device and one of the responding mobile devices.

[0157] In some embodiments, the techniques can preserve the inefficiency of redundant links. In various embodiments, one mobile device can communicate to other mobile devices using in-band or out-of-band protocols to communicate load to reduce one or more redundant ranging sessions. In various embodiments, signal strength can be used to determine which of the redundant ranging sessions to prune. The device can randomly select which of the redundant ranging sessions to prune. Characteristics of the mobile device (e.g., Media Access Control (MAC) address) can be used to determine which ranging sessions to prune. In various embodiments, the common criteria can include an identifier of the mobile device (e.g., IMEI). The common criteria can include a portion of the identifier of the mobile device.

[0158] At 1122, the techniques can include terminating one of the one or more redundant communication links established between the first mobile device and one of the responding mobile devices in coordination with the one of the responding mobile devices. The terminating can include providing an instruction to the initiator mobile device to stop transmitting ranging packets.

[0159] It will be appreciated that the specific steps illustrated in FIG. 11 provide a particular technique for a many-to-many communication technique according to various embodiments of the present disclosure. Also, other sequences of steps may be performed according to alternative embodiments. For example, the steps described above may be performed in different orders in alternative embodiments of the present invention. Moreover, each step described in FIG. 11 may include multiple sub-steps that may be performed in various orders as appropriate for that individual step. Furthermore, steps may be added or deleted depending on the particular application. Those skilled in the art will recognize many variations, modifications, and alternatives.

[0160] V. Mobile Devices for Carrying Out Communications 12 is a block diagram of components of a mobile device 1200 operable to perform ranging, according to an embodiment of the present disclosure. The mobile device 1200 includes antennas for at least two different wireless protocols, as described above. A first wireless protocol (e.g., Bluetooth) may be used for authentication and exchange of ranging settings. A second wireless protocol (e.g., UWB) may be used to perform ranging with another mobile device.

[0161] As shown, the mobile device 1200 includes a UWB antenna 1210 for performing ranging. The UWB antenna 1210 is connected to a UWB circuit 1215 for analyzing signals detected from the UWB antenna 1210. In some embodiments, the mobile device 1200 includes three or more UWB antennas, for example, for performing triangulation. Different UWB antennas can have different orientations, for example, two in one direction and a third in another direction. The orientations of the UWB antennas can define a field of view for ranging. As an example, the field of view can span 120 degrees. Such restrictions can enable a determination of which direction a user is pointing the device relative to one or more other nearby devices. The field of view may include any one or more of a pitch angle, a yaw angle, or a roll angle.

[0162] The UWB circuitry 1215 can communicate with an always-on processor (AOP) 1230, which can perform further processing using information from the UWB messages. For example, the AOP 1230 can perform ranging calculations using timing data provided by the UWB circuitry 1215. The AOP 1230 and other circuitry of the device can include dedicated circuitry and / or configurable circuitry, for example via firmware or other software.

[0163] As shown, the mobile device 1200 also includes a Bluetooth (BT) / Wi-Fi antenna 1220 for communicating data with other devices. The Bluetooth (BT) / Wi-Fi antenna 1220 is connected to a BT / Wi-Fi circuitry 1225 for analyzing detection signals from the BT / Wi-Fi antenna 1220. For example, the BT / Wi-Fi circuitry 1225 can analyze messages to obtain data (e.g., authentication tags), which can be transmitted to the AOP 1230. In some embodiments, the AOP 1230 can perform authentication using the authentication tags. Thus, the AOP 1230 can store or retrieve a list of authentication tags to compare received tags as part of the authentication process. In some implementations, such functionality can be accomplished by the BT / Wi-Fi circuitry 1225.

[0164] In other embodiments, the UWB circuitry 1215 and the BT / Wi-Fi circuitry 1225 may alternatively or additionally be connected to an application processor 1240 that may perform functions similar to the AOP 1230. The application processor 1240 typically requires more power than the AOP 1230, and therefore may conserve power by having the AOP 1230 handle certain functions so that the application processor 1240 can remain in a sleep state, e.g., an off state. As an example, the application processor 1240 may be used to communicate audio or video using BT / Wi-Fi, and the AOP 1230 may coordinate the transmission of such content and the communication between the UWB circuitry 1215 and the BT / Wi-Fi circuitry 1225. For example, the AOP 1230 may coordinate the timing of UWB messages relative to BT advertisements.

[0165] Coordination by the AOP 1230 can have various advantages. For example, a first user of a transmitting device may want to share content with another user, and thus ranging with this other user's receiving device may be desired. However, if many people are in the same room, the transmitting device may need to distinguish a particular device among multiple devices in the room and potentially determine which device the transmitting device is referring to. Such functionality can be provided by the AOP 1230. Furthermore, it is not desirable to wake up the application processors of all other devices in the room, and therefore the AOPs of the other devices can perform some processing of the message and determine that the destination address is for a different device.

[0166] To perform ranging, the BT / Wi-Fi circuitry 1225 can analyze an advertisement signal from another device to determine that the other device wants to perform ranging, for example, as part of a process for sharing content. The BT / Wi-Fi circuitry 1225 can communicate this notification to the AOP 1230, which can schedule the UWB circuitry 1215 to be ready to detect UWB messages from the other device.

[0167] For a device that initiates ranging, its AOP can perform the ranging calculations. Additionally, the AOP can monitor changes in distance between other devices. For example, the AOP 1230 can compare the distance to a threshold and provide an alert when the distance exceeds the threshold, or potentially provide a reminder when the two devices are close enough. An example of the former might be when a parent wants to be alerted when a child (and possibly the child's device) is too far away. An example of the latter might be when a person wants to be prompted to present something when speaking to a user of the other device. Such monitoring by the AOP can reduce power consumption by the application processor.

[0168] VI. Exemplary Devices 13 is a block diagram of an exemplary electronic device 1300. The device 1300 generally comprises a computer-readable medium 1302, a processing system 1304, an input / output (I / O) subsystem 1306, a radio circuit 1308, and an audio circuit 1310 including a speaker 1350 and a microphone 1352. These components may be coupled by one or more communication buses or signal lines 1303. The device 1300 may be any portable electronic device, including a handheld computer, a tablet computer, a mobile phone, a laptop computer, a tablet device, a media player, a personal digital assistant (PDA), a key fob, a car key, an access card, a multifunction device, a mobile phone, a portable gaming device, a headset, or the like (including combinations of two or more of these items).

[0169] It will be apparent that the architecture shown in Figure 13 is only one example architecture for device 1300, and that device 1300 may have more or fewer components or components in a different arrangement than those shown. The various components shown in Figure 13 may be implemented as hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.

[0170] The radio circuitry 1308 is used to transmit and receive information over a wireless link or network with conventional circuitry of one or more other devices, such as an antenna system, a radio frequency (RF) transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a codec chipset, memory, etc. The radio circuitry 1308 may use a variety of protocols, such as those described herein, for example. In various embodiments, the radio circuitry 1308 may establish and maintain communications with other devices using one or more communications protocols including time division multiple access (TDMA), code division multiple access (CDMA), Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (W-CDMA), Long Term Evolution (LTE), Long Term Evolution (LTE) Advanced, Wi-Fi (such as Institute of Electrical and Electronics Engineers (IEEE) 802.11a, IEEE 802.11b, IEEE 802.11g, and / or IEEE 802.11n), Bluetooth, Wi-MAX, Voice over Internet Protocol (VoIP), Near Field Communication protocol (NFC), protocols for email, instant messaging, and / or short message service (SMS), or any other suitable communications protocol, including communications protocols not yet developed as of the filing date of this document.

[0171] The wireless circuitry 1308 is coupled to the processing system 1304 via a peripherals interface 1316. The peripherals interface 1316 may include conventional components for establishing and maintaining communications between peripherals and the processing system 1304. Voice and data information received by the wireless circuitry 1308 (e.g., in a speech recognition application or a voice command application) is transmitted via the peripherals interface 1316 to one or more processors 1318. The one or more processors 1318 may be configured to process a variety of data formats for one or more application programs 1334 stored on the medium 1302.

[0172] The peripheral interface 1316 couples input / output peripherals of the device 1300 to the one or more processors 1318 and the computer readable medium 1302. The one or more processors 1318 communicate with the computer readable medium 1302 via a controller 1320. The computer readable medium 1302 may be any device or medium capable of storing code and / or data for use by the one or more processors 1318. The computer readable medium 1302 may include a memory hierarchy including cache, main memory, and secondary memory. This memory hierarchy may be implemented using any combination of RAM (e.g., standard random access memory (SRAM), dynamic random access memory (DRAM), double data random access memory (DDRAM)), read only memory (ROM), FLASH, magnetic and / or optical storage devices such as disk drives, magnetic tape, CDs (compact discs), and DVDs (digital video discs). In some embodiments, the peripherals interface 1316, the one or more processors 1318, and the controller 1320 may be implemented on a single chip, such as the processing system 1304. In some other embodiments, they may be implemented on separate chips.

[0173] The processor 1318 may include hardware and / or software elements that perform one or more processing functions, such as mathematical operations, logical operations, data manipulation operations, data transfer operations, controlling the receipt of user input, controlling the output of information to a user, etc. The processor 1318 may be embodied as one or more hardware processors, microprocessors, microcontrollers, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.

[0174] The device 1300 also includes a power system 1342 that provides power to the various hardware components. The power system 1342 may include a power management system, one or more power sources (e.g., batteries, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components typically associated with the generation, management, and distribution of power within a mobile device.

[0175] In some embodiments, device 1300 includes a camera 1344. In some embodiments, device 1300 includes sensors 1346. The sensors may include an accelerometer, a compass, a gyrometer, a pressure sensor, an audio sensor, a light sensor, a barometer, etc. The sensors 1346 may be used to sense aspects of a location, such as an audio or light signature of the location.

[0176] In some embodiments, the device 1300 may include a GPS receiver, sometimes referred to as a GPS unit 1348. A mobile device may use a satellite navigation system, such as a Global Positioning System (GPS), to obtain location, timing, altitude, or other navigation information. During operation, the GPS unit may receive signals from GPS satellites that orbit the Earth. The GPS unit analyzes the signals to provide travel time and distance estimates. The GPS unit may determine a current location (current location) of the mobile device. Based on these estimates, the mobile device may determine a location fix, altitude, and / or current speed. The location fix may be example geographic coordinates, such as latitude and longitude information.

[0177] The initiating mobile device can transmit the timing signal via a wireless protocol (e.g., Bluetooth Low Energy (BLE) advertising). One advantage of BLE is its low power consumption compared to other low-power technologies. BLE achieves optimized low power by keeping the radio off as much as possible and sending small amounts of data at low transfer rates. Another advantage of BLE is that it is available on most smartphones on the market.

[0178] The one or more processors 1318 execute various software components stored on the medium 1302 to perform various functions for the device 1300. In some embodiments, the software components include an operating system 1322, a communication module (or instruction set) 1324, a location determination module (or instruction set) 1326, a ranging module 1328 used as part of the ranging operations described herein, and other application programs (or instruction sets) 1334.

[0179] Operating system 1322 may be any suitable operating system, including embedded operating systems such as iOS, MacOS, Darwin, Real Time Operating System (RTXC), LINUX, UNIX, OSX, WINDOWS, or VxWorks, etc. An operating system may include procedures, instruction sets, software components, and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitating communication between various hardware and software components.

[0180] The communications module 1324 includes various software components for facilitating communication with other devices via one or more external ports 1336 or via the wireless circuitry 1308, and for handling data received from the wireless circuitry 1308 and / or the external port 1336. The external port 1336 (e.g., Universal Serial Bus (USB), FireWire, Lightning connector, 60-pin connector, etc.) is adapted to couple directly to other devices or indirectly via a network (e.g., the Internet, wireless LAN, etc.).

[0181] The location / motion module 1326 can assist in determining the current location (e.g., coordinates or other geographic location identifier) ​​and movement of the device 1300. Modern location determination systems include satellite-based location determination systems such as the Global Positioning System (GPS), cellular network location based on "cell IDs," and Wi-Fi location determination technology based on Wi-Fi networks. GPS also determines a location estimate based on the visibility of multiple satellites. Satellites may not be visible (or have weak signals) indoors or in "building canyons." In some embodiments, the location / motion module 1326 receives data from the GPS unit 1348 and analyzes the signal to determine the current location of the mobile device. In some embodiments, the location / motion module 1326 can determine the current location using Wi-Fi or cellular location techniques. For example, the location of the mobile device can be estimated using knowledge of nearby cell sites and / or Wi-Fi access points and using knowledge of their locations. Information identifying a Wi-Fi or cellular transmitter is received at the radio circuitry 1308 and communicated to the location / motion module 1326. In some embodiments, the location module receives one or more transmitter IDs. In some embodiments, a set of transmitter IDs may be compared to a reference database (e.g., a cell ID database, a Wi-Fi reference database). The reference database maps or correlates the transmitter IDs to location coordinates of the corresponding transmitters and calculates estimated location coordinates for the device 1300 based on the location coordinates of the corresponding transmitters. Regardless of the particular location technique used, the location / motion module 1326 may receive information from which a location fix can be derived and interpret the information to return location information such as geographic coordinates, latitude / longitude, or other location fix data.

[0182] The ranging module 1328 can transmit / receive ranging messages, for example, to / from an antenna connected to the radio circuitry 1308. The messages can be used for various purposes, for example, to identify the transmitting antenna of the device, to determine a timestamp of the message to determine the distance of the mobile device 1300 from another device. The ranging module 1328 can reside on various processors of the device, for example, an always-on processor (AOP), a UWB chip, and / or an application processor. For example, one part of the ranging module 1328 can determine the distance on the AOP, and another part of the ranging module can interact with a sharing module, for example, to display the location of other devices on a screen for the user to select other devices with which to share a data item. The ranging module 1328 can also interact with a reminder module, which can provide an alert based on the distance from another mobile device.

[0183] The one or more applications 1334 on the device 1300 may include any application installed on the apparatus 1300, including, without limitation, a browser, an address book, a contact list, email, instant messaging, social networking, word processing, keyboard emulation, widgets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice duplication, a music player (which plays music recorded in one or more files, such as MP3 or advanced audio codec (AAC) files), and the like.

[0184] There may be other modules or instruction sets (not shown), such as a graphics module, a time module, etc. For example, the graphics module may include various conventional software components for rendering, animating, and displaying graphical objects (including, without limitation, text, web pages, icons, digital images, animations, etc.) on a display surface. In another example, the timer module may be a software timer. The timer module may also be implemented in hardware. The time module may maintain various timers for any number of events.

[0185] The I / O subsystem 1306 may be coupled to a display system (not shown). The display system may be a touch-sensitive display. The display displays visual output to a user in a GUI. This visual output may include text, graphics, video, and any combination thereof. Some or all of the visual output may correspond to user interface objects. The display may use LED (light emitting diode), LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, although other display technologies may be used in other embodiments.

[0186] In some embodiments, the I / O subsystem 1306 may include a display and user input devices such as a keyboard, a mouse, and / or a trackpad. In some embodiments, the I / O subsystem 1306 may include a touch-sensitive display. The touch-sensitive display may also accept input from a user based at least in part on tactile and / or haptic contact. In some embodiments, the touch-sensitive display forms a touch-sensitive surface that accepts user input. The touch-sensitive display / surface (along with any associated modules and / or sets of instructions in the computer-readable medium 1302) detects contact (and any movement or release of contact) on the touch-sensitive display and translates the detected contact into an interaction with a user interface object (e.g., one or more soft keys) that is displayed on the touch screen when the contact occurs. In some embodiments, the contact points between the touch-sensitive display and the user correspond to one or more fingers of the user. The user may contact the touch-sensitive display using any suitable object or appendage, such as a stylus, pen, finger, etc. The touch-sensitive display surface may detect the contact and any movement or release thereof using any suitable touch sensitivity technology. Touch sensitivity technologies include capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements that determine one or more points of contact with a touch-sensitive display.

[0187] Additionally, I / O subsystem 1306 may be coupled to one or more other physical control devices (not shown), such as push buttons, keys, switches, rocker buttons, dials, slider switches, sticks, LEDs, etc., to control or perform various functions, such as power control, speaker volume control, ring volume, keyboard input, scrolling, hold, menu, screen lock, clearing and terminating communications, etc. In some embodiments, in addition to a touch screen, device 1300 may include a touch pad (not shown) for activating or deactivating certain functions. In some embodiments, a touch pad is a touch-sensitive area of ​​a device that, unlike a touch screen, does not display visual output. A touch pad may be a touch-sensitive surface separate from a touch-sensitive display or an extension of a touch-sensitive surface formed by a touch-sensitive display.

[0188] In some embodiments, some or all of the operations described herein may be performed using an application running on a user's device. Circuits, logic modules, processors, and / or other components may be configured to perform various operations described herein. Those skilled in the art will appreciate that such configuration may be achieved through the design, setup, interconnection, and / or programming of specific components depending on the implementation, and that configured components may or may not be reconfigurable for different operations depending on the implementation. For example, a programmable processor may be configured by providing suitable executable code, and dedicated logic circuits may be configured by suitable connections of logic gates and other circuit elements.

[0189] Any of the software components or functions described in this application may be implemented as software code to be executed by a processor, for example using conventional or object-oriented techniques, using any suitable computer language, such as, for example, Java, C, C++, C#, Objective-C, Swift, or a scripting language such as Perl or Python. The software code may be stored as a series of instructions or commands on a computer-readable medium for storage and / or transmission. Suitable non-transitory computer-readable media may include random access memory (RAM), read-only memory (ROM), magnetic media such as a hard drive or a floppy disk, or optical media such as a compact disk (CD) or a digital versatile disk (DVD), flash memory, etc. The computer-readable medium may be any combination of such storage or transmission devices.

[0190] A computer program incorporating various features of the present disclosure may be encoded on a variety of computer-readable storage media, with suitable media including magnetic disks or tapes, optical storage media such as compact disks (CDs) or digital versatile disks (DVDs), flash memory, and the like. A computer-readable storage medium encoded with program code may be packaged with a compatible device or provided separately from other devices. In addition, the program code may be encoded and transmitted over wired and / or wireless networks conforming to various protocols, including the Internet, thus enabling distribution, for example, via Internet download. Any such computer-readable medium may be on or within a single computer product (e.g., a solid-state drive, hard drive, CD, or an entire computer system), or may be present on or within different computer products within a system or network. A computer system may include a monitor, printer, or other suitable display that provides a user with any of the results described herein.

[0191] As mentioned above, one aspect of the present technology is the collection, sharing, and use of data, including authentication tags and the data from which the tags are derived. This disclosure contemplates that in some cases, this collected data may include personal information data that uniquely identifies a particular person or that can be used to contact or locate a particular person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, Twitter IDs, home addresses, data or records regarding the user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), birth date, or any other identifying or personal information.

[0192] This disclosure recognizes that the use of such personal information data in the present technology may be used to the benefit of the user. For example, personal information data may be used to authenticate another device, or conversely, to control which device ranging operations may be performed. Additionally, other uses of personal information data that benefit the user are contemplated by this disclosure. For example, health and fitness data may be shared to provide insight into the user's overall wellness, or may be used as proactive feedback to individuals using the technology in pursuit of wellness goals.

[0193] This disclosure contemplates that entities involved in the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will adhere to robust privacy policies and / or practices. Specifically, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or government requirements for keeping personal information data confidential and secure. Such policies should be easily accessible by users and should be updated as data collection and / or use changes. Personal information from users should be collected for the entity's lawful and legitimate use and should not be shared or sold except for those lawful uses. Furthermore, such collection / sharing should be carried out after informing and obtaining consent from the user. Moreover, such entities should consider taking all necessary measures to protect and secure access to such personal information data and ensure that others who have access to the personal information data adhere to their privacy policies and procedures. Furthermore, such entities may subject themselves to third-party assessments to attest to their adherence to widely accepted privacy policies and practices. Moreover, policies and practices should be adapted to the specific types of personal information data collected and / or accessed, and should conform to applicable laws and standards, including jurisdiction-specific considerations. For example, in the United States, collection of or access to certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA), while health data in other countries may be subject to other regulations and policies and should be addressed accordingly. Therefore, different privacy practices should be maintained with respect to different types of personal data in each country.

[0194] Notwithstanding the foregoing, the present disclosure also contemplates embodiments in which a user selectively blocks use of or access to personal information data. That is, the present disclosure contemplates that hardware and / or software elements may be provided to prevent or block access to such personal information data. For example, in the case of sharing content to perform ranging, the present disclosure may be configured to allow a user to select to "opt-in" or "opt-out" of participating in the collection of personal information data during registration for the service or at any time thereafter. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notice regarding access or use of personal information. For example, the user may be notified upon download of an app that will access the user's personal information data, and then again immediately before the personal information data is accessed by the app.

[0195] Moreover, it is the intent of this disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Risks can be minimized by limiting the collection of data and deleting it when it is no longer needed. Additionally, and where applicable in certain health-related applications, anonymization of data can be used to protect user privacy. De-identification can be facilitated by removing certain identifiers (e.g., date of birth, etc.) where appropriate, controlling the amount or specificity of data stored (e.g., collecting location data at a city level rather than an address level), controlling how data is stored (e.g., aggregating data across users), and / or other methods.

[0196] Thus, while this disclosure broadly covers the use of personal information data to practice one or more of the various disclosed embodiments, this disclosure also contemplates that the various embodiments may be practiced without requiring access to such personal information data, i.e., various embodiments of the technology are not rendered inoperable by the absence of all or a portion of such personal information data.

[0197] Although the present disclosure has been described with reference to specific embodiments, it should be understood that the present disclosure is intended to cover all modifications and equivalents that fall within the scope of the following claims.

[0198] All patents, patent applications, publications, and descriptions mentioned herein are incorporated by reference in their entirety for all purposes. None are admitted to be prior art.

[0199] Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense, although it will be apparent that various modifications and changes may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the appended claims.

[0200] Other variations are within the spirit and scope of the present disclosure. Thus, while the disclosed technology is susceptible to various modifications and alternative constructions, specific example embodiments of the disclosed technology have been shown in the drawings and have been described in detail above. It is to be understood, however, that there is no intention to limit the disclosure to the particular form or forms disclosed, but on the contrary, the intention is to embrace all modifications, alternative constructions, and equivalents included within the spirit and scope of the present disclosure as defined in the appended claims.

[0201] In the context of describing the disclosed embodiments (particularly in the context of the claims that follow), use of the terms "a," "an," and "the" and similar designations should be construed to encompass both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms "comprising," "having," "including," and "containing" should be construed as open-ended (i.e., meaning "including, but not limited to"), unless otherwise noted. The term "connected" should be construed as partially or fully contained in, attached to, or joined together, even if there is something intervening. The phrase "based on" should be understood to be open-ended and in no way limiting, and is intended to be construed as "based at least in part on" or otherwise read, where appropriate. The recitation of ranges of values ​​herein, unless otherwise indicated herein, is merely intended to serve as a shorthand way of referring individually to each individual value falling within the range, and each individual value is included herein as if it were individually described herein. All methods described herein may be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of all examples provided herein, or the use of exemplary language (e.g., "etc."), is merely intended to better illuminate the embodiments of the disclosure, and does not impose limitations on the scope of the disclosure unless specifically claimed. No language in this specification should be construed as indicating any element not claimed as essential to the practice of the disclosure. When "or" is used, it is intended to mean "inclusive or" rather than "exclusive or" unless specifically stated to the contrary. Reference to a "first" element does not necessarily mean that a second element is provided.Additionally, references to a "first" element or a "second" element do not limit the referenced elements to a particular location unless expressly stated. The term "based on" is intended to mean "based at least in part on."

[0202] Disjunctive language, such as the phrase "at least one of X, Y, or Z," is understood within the context as it is generally used to indicate that an item, term, etc. may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z), unless specifically stated otherwise. Thus, such disjunctive language is generally not intended to, and should not, imply that a particular embodiment requires that at least one of X, at least one of Y, or at least one of Z, respectively, be present. Additionally, conjunctions such as the phrase "at least one of X, Y, and Z" should also be understood to mean X, Y, Z, or any combination thereof, including "X, Y, and / or Z," unless specifically stated otherwise.

[0203] Preferred embodiments of the present disclosure are described herein, including the best way known to the inventors for carrying out the disclosure. Variations of these preferred embodiments may become apparent to those skilled in the art upon reading the foregoing description. The inventors anticipate that those skilled in the art will use such variations as necessary, and the inventors intend for the present disclosure to be practiced otherwise than as specifically described herein. Accordingly, this disclosure includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the foregoing elements in all possible variations of the present disclosure is encompassed by the present disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.

[0204] All references cited in this specification, including publications, patent applications, and patents, are herein incorporated by reference to the same extent as if each reference was individually and specifically indicated to be incorporated by reference and to the same extent as if each reference was set forth herein as a whole.

Claims

1. 1. A method for coordinating communications of a group of mobile devices including a first mobile device, the group of mobile devices including three or more mobile devices, the method comprising: sending a request to establish a ranging session with another mobile device of the group of the mobile device; receiving, from each of one or more of the other mobile devices in the group of mobile devices, a request to establish a ranging session with the other mobile device; Detecting one or more redundant ranging sessions; identifying whether to maintain or terminate at least one of the one or more redundant ranging sessions based on a criterion; performing ranging using a remaining ranging session with the other mobile device; and performing

2. The method of claim 1 , wherein the criteria are common criteria shared among the group of mobile devices.

3. The method of claim 2 , wherein the common criteria includes at least a portion of an identifier for each of the group of mobile devices.

4. The method of claim 1 , wherein the request to establish the ranging session is used to synchronize a response time slot for the ranging session.

5. The method of claim 4 , wherein the response time slot is set at a predetermined time interval after sending the request to establish the ranging session.

6. The method of claim 1 , wherein the one or more redundant ranging sessions include two or more symmetric links between two mobile devices and the group of mobile devices.

7. 1. A method of many-to-many communication technology performed by a first mobile device, the method comprising: storing a schedule specifying transmission times for transmitting ranging packets; designating a response time slot for receiving a plurality of responses from two or more participating mobile devices; transmitting ranging packets according to the schedule; receiving two or more responses from the two or more participating mobile devices during the response time slot; transmitting a response to at least one of the two or more participating mobile devices; determining a number of symmetric communication links established between the participating mobile devices, where the symmetric communication link is between the first mobile device and one of the participating mobile devices; determining one or more redundant communication links among the symmetric communication links established between the participating mobile devices, the redundant communication links including a second symmetric communication link between the first mobile device and the one of the participating mobile devices; and terminating one of the one or more redundant communication links established between the first mobile device and one of the participating mobile devices.

8. The method of claim 7 , wherein the response time slot is set at a predetermined time interval after transmission of the ranging packet.

9. The method of claim 7 , wherein the ranging packets include timing information used to determine distances between the participating mobile devices.

10. The method of claim 7 , wherein the reception times of the ranging packets are used to calculate angles of arrival from one or more responding mobile devices.

11. 8. The method of claim 7, wherein the symmetric communication link comprises one or more bidirectional data packet exchanges.

12. 1. A computer program comprising a plurality of instructions, which when executed by one or more processors of a group of N mobile devices including other mobile devices, N being an integer greater than or equal to three, cause the one or more processors to: A computer program adapted to carry out a method according to any one of claims 1 to 11.

13. A computing device comprising: one or more memories; one or more processors in communication with the one or more memories and configured to execute instructions stored in the one or more memories to perform the operations of the method of any one of claims 1 to 11; A computing device comprising:

Citation Information

Patent Citations

  • SYSTEM, APPARATUS, AND METHOD FOR AUTOMATICALLY ADJUSTING BROADCAST SETTINGS OF NODES IN A WIRELESS NODE NETWORK - Patent application

    JP2019509693A

  • Method and system for bidirectional communications via a bluetooth low energy advertise link

    US20150358759A1

  • Ranging between mobile devices

    US20200106877A1