PROXIMITY ALERT DEVICE AND METHOD
A proximity alert device may include a processor, non-volatile memory, a user input device, a radio transceiver, and primary memory that stores program instructions. When executed by the processor, the program instructions may perform a method that includes loading a configuration value from the non-volatile memory and setting a transmission power level of the radio transceiver to a configuration power level; pairing with a protected device that has a corresponding radio transceiver; receiving input from the user input device to adjust the transmission power level up or down; in response to receiving the input, and based upon that input, adjusting the transmission power level up or down, and saving to the non-volatile memory the adjusted transmission power level as a calibrated power level; detecting a loss of connection with the paired protected device; and, in response to detecting the loss of connection, triggering an alarm.
Latest Tereo Corporation, Inc. Patents:
This application claims the benefit of U.S. Patent Application 62/907,069, filed on Sep. 27, 2019, the entire contents of which are incorporated by reference.
SUMMARYA device and methods are described herein for alerting a user when more than a threshold distance exists between a proximity alert device and a corresponding protected device. The two devices may be coupled by a Bluetooth® connection, and a determination of proximity may be inferred by adjusting a transmission power level associated with the Bluetooth® interface of either of the proximity alert device and the protected device and detecting a loss of connection between previously paired devices. A calibration process or manual adjustment process may be provided to enable a user to tailor a physical distance at which the loss of connection may occur, based on the specific type of protected device and relative arrangement of the protected device and the proximity alert device. The alert provided to the user may prevent loss or theft of the corresponding protected device.
In some implementations, a proximity alert device includes a processor, non-volatile memory, a user input device, and a Bluetooth® transceiver. The processor may execute instructions to perform a method of alerting a user when more than a threshold distance is inferred to exist between the proximity alert device and a protected device. The method may include loading a first configuration value from the non-volatile memory and setting a transmission power level of the Bluetooth® transceiver (in some implementations, a Bluetooth® Low Energy (BLE) transceiver), based on the loaded first configuration value, to a first power level. The first power level may be selected from among a plurality of possible power levels. In some implementations, the possible power levels may include +4 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm, and −20 dBm.
The method may further include advertising for a pairing and subsequently pairing and/or bonding with a protected device that also has a Bluetooth® transceiver. The pairing and/or bonding may occur via a Human Interface Device Profile (HID) over Generic Attributes Profile (GATT) profile (HOGP).
Upon pairing and/or bonding with the protected device, the method may include loading a second configuration value from the non-volatile memory and setting the transmission power level to a second power level that is less than the first power level. In some implementations, the second power level is greater than the first power level.
The method may further include receiving input from the user input device to calibrate the threshold distance. In some implementations, in response to receiving the input, the method may include retrieving at least one value for a received signal strength indicator (RSSI) associated with the paired protected device, and based on a comparison of the at least one value to a stored reference value, increasing the transmission power level by a predetermined increment if the at least one value is less than the stored reference value by more than a first threshold, and decreasing the transmission power level by at predetermined increment if the at least one value is greater than the stored reference value by more than a second threshold. In some implementations, the predetermined increment is 1 dBm, 2 dBm or 4 dBm. The increased or decreased transmission power level may be saved to non-volatile memory as a calibrated power level.
The method may further include detecting a loss of connection with the paired protected device. In some implementations, in response to detecting the loss of connection, the method may further include triggering an alarm and decreasing the transmission power level relative to the calibrated power level. In some implementations, upon restoration of a connection with the paired protected device, the method may include restoring the transmission power level to the calibrated power level.
In some implementations, a proximity alert device includes a processor, non-volatile memory, a user input device, and a Bluetooth® transceiver. The processor may execute program instructions that perform a method of alerting a user when more than a threshold distance is inferred to exist between the proximity alert device and a protected device. The method may include loading a first configuration value from the non-volatile memory and setting a transmission power level of the Bluetooth® transceiver, based on the loaded first configuration value, to a first power level from among a plurality of possible power levels.
The method may further include advertising for, via a Bluetooth® protocol, a pairing, and subsequently pairing with a protected device that also has a Bluetooth® transceiver. In some implementations, the pairing may be via a Human Interface Device Profile (HID) over Generic Attributes Profile (GATT) profile (HOGP). The pairing may include bonding, wherein an identifier associated with the protected device or the proximity alert device is stored in a whitelist.
The method may further include receiving input from the user input device to calibrate the threshold distance. In some implementations, in response to receiving the input, the method may include retrieving at least one value for a received signal strength indicator (RSSI) associated with the paired protected device, and based on a comparison of the at least one value to a stored reference value, adjusting the transmission power level of the Bluetooth® transceiver up or down. The method may further include saving to the non-volatile memory the adjusted transmission power level as a calibrated power level.
The method may further include detecting a loss of connection with the paired protected device. In some implementations, in response to detecting the loss of connection, the method may include triggering an alarm. Triggering an alarm may include providing a visual indication, providing an audible tone or providing haptic feedback.
Setting a transmission power level may include configuring the gain of a power amplifier in the Bluetooth® transceiver. In some implementations, the plurality of possible power levels includes +4 dBm, +3 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm and −20 dBm. In other implementations, the plurality of possible power levels includes +4 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm, −20 dBm and −40 dBm. In some implementations, the first power level may be selected from among 0 dBM, −4 dBm, −8 dBm and −12 dBm.
In some implementations, the method may further include, upon pairing with the protected device, loading a second configuration value from the non-volatile memory and setting a transmission power level of the Bluetooth® transceiver, based on the loaded second configuration value, to a second power level. The second power level may be lower or higher than the first power level. In some implementations, the first power level may be selected from among −8 dBm, −12 dBm and −16 dBm; and the second power level may be selected from among −12 dBm, −16 dBm and −20 dBm.
Adjusting the transmission power level may include increasing the transmission power level if the at least one value is less than the stored reference value by more than a first threshold, and decreasing the transmission power level if the at least one value is greater than the stored reference value by more than a second threshold.
The method may further include periodically sending data, via the Bluetooth® protocol, to the paired protected device. Detecting a loss of connection may include determining that a response from the pair protected device has not been received in response to the periodically sent data.
The method may further include decreasing the transmission power level of the Bluetooth® transceiver relative to the calibrated power level when triggering the alarm. Upon restoration of a connection with the paired protected device, the method may further include restoring the transmission power level to the calibrated power level.
In some implementations, a proximity alert device includes a processor, non-volatile memory, a user input device, a radio transceiver, and primary memory that stores program instructions to be executed by the processor. The program instructions may include instructions that, when executed, perform a method that includes loading a configuration value from the non-volatile memory and setting a transmission power level of the radio transceiver, based on the loaded first configuration value, to a configuration power level from among a plurality of possible power levels.
The method may further include advertising for a pairing and subsequently pairing with a protected device that has a corresponding radio transceiver. In some implementations, pairing may include pairing via a Human Interface Device Profile (HID) over Generic Attributes Profile (GATT) profile (HOGP) Bluetooth® protocol.
In some implementations, the method may further include, upon pairing with the protected device, loading a second configuration value from the non-volatile memory and setting the transmission power level, based on the loaded second configuration value, to a second power level that is lower than the first power level. In some implementations, the second power level is greater than the first power level.
The method may further include receiving input from the user input device to adjust the transmission power level up or down by a predetermined increment. In some implementations, receiving input from the user device may include receiving a first command to adjust the transmission power up or receiving a second command that is different than the first command to adjust the transmission power down. In some implementations, in response to receiving the input, the method may include adjusting the transmission power level of the radio transceiver up or down by the predetermined increment, based on the received input. The method may further include saving to the non-volatile memory the adjusted transmission power level as a calibrated power level.
The method may further include detecting a loss of connection with the paired protected device. The method may further include, in response to detecting the loss of connection, triggering an alarm.
As is described herein, the proximity alert device 100 can alert the user 106 if more than a threshold distance is detected or inferred between the proximity alert device 100 and the protected device 103. Thus, the proximity alert device 100 can assist the user 106 in preventing the loss of the protected device 103. For example, if the user 106 walks away from the protected device 103, the proximity alert device 103 can alert the user 106 before he or she gets too far away to retrieve the protected device 103.
In this description and in the corresponding figures, the protected device 103 is depicted as a mobile communication device. The reader will appreciate that the protected device 103 could be any other device with a radio transceiver (e.g., a Bluetooth® transceiver) as described herein, such as, for example, a laptop or notebook computer or tablet, a fitness accessory, an appliance, electronic equipment, etc. Similarly, in some figures, the proximity alert device 100 is depicted as a portable fob that could, for example, be affixed to a key ring or carried in a pocket. In other figures, the proximity alert device is depicted as a thin, application-less device in the form factor of an ID badge or credit card. The reader will appreciate that the proximity alert device 100 could be included in another mobile communication device, a laptop or notebook computer or tablet, a fitness accessory, an appliance, electronic equipment, etc.; and its form factor could be a fob, a card, a bracelet, a watch, a clothing or personal accessory, etc.
In some implementations, the specific manner in which the proximity alert device 100 alerts the user 106 may include flashing an indicator, such as indicator 104, or generating a tone and/or haptic feedback (depicted by 107).
In
The memory 204 may include both non-volatile memory 207 (memory that does not lose its data when power is not applied) and volatile memory 210 (memory that requires power to store and retain data). Non-volatile memory 207 and volatile memory 210 may take various forms. For example, non-volatile memory 207 may include one-time programmable (OTP) memory, non-volatile read-only memory (NVROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or other similar memory. Volatile memory may include one or more forms of dynamic random-access memory (DRAM) or cache memory. In some implementations, volatile memory is faster than non-volatile memory; and in such implementations, program code that is executed by the system's CPU 201 may be loaded from a non-volatile memory 207 to a volatile memory 210 upon power-up of the system.
The user interface 216 may include various functional components that facilitate receiving user input (e.g., a pushbutton, such as pushbutton 105) or providing output in a user-discernable form, such as visual indications in the form of flashing lights (e.g., via light emitting diodes (LEDs) or other indicators, such as the indicators 102 and 104), or haptic or tonal feedback (e.g., feedback 107). The reader will appreciate that the user interface 216 may include other devices, such as displays, touch sensors, vibration sensors, accelerometers, sensors that detect gestures, heads-up displays, etc.
In some implementations, the radio transceiver 213 implements a communication protocol for forming ad hoc networks between devices. As an example, the transceiver 213 may be configured to form a Bluetooth® piconet between the proximity alert device 100 and a protected device 103. Additional details of an exemplary radio transceiver 213 are provided with reference to
The antenna 310 may also receive radio signals; amplify them with a low-noise amplifier 313; and filter them with filter 319, mixer 316 and a reference signal provided by the frequency synthesizer 301, to generate an information signal 322. This signal 322 may be further processed, such as with an analog-to-digital decoder (ADC) 325.
In some implementations, the information signal 322 includes meta-information about a received signal, such as, for example, a signal strength associated with the received signal. Such meta-information may be extracted by an RSSI (received signal strength indicator) block 328 and relayed via the modem 304 to the bus 219 in digital form for processing by the overall system described with reference to
In preferred implementations, RSSI information is not directly used to generate alerts that flag a greater-than-threshold distance between a proximity alert device 100 and a protected device 103; rather, transmission power levels are modulated by the power amplifier 307 to configure a distance over which a connection can be maintained between a proximity alert device 100 and a protected device 103. An exemplary method of modulating transmission power level is now described with reference to
In some implementations, there may be three different power levels, and the proximity alert device 100 may be configured to employ the middle power level. In other implementations, there may be many more different power levels, such as, for example, four, eight, sixteen, eighteen, thirty-two, etc.; and the proximity alert device 100 may be configured to employ an intermediate power level, such as, for example, power level 9 in a system that has 18 power levels between 0 and 17.
Although the selector 400 is depicted as a mechanical switch, the reader will appreciate that this selector 400 may be implemented electronically, such as, for example, by a control bit in a configuration register that is written by computer code executed by the CPU 201. This bit may be written, or the power level configured, in an initial power-up sequence.
Regardless of how the power levels are specified in various implementations, different power levels correspond to different distances over which a reliable connection can be made. For example, a TX Power Level 0 (401) may correspond to a distance do over which a proximity alert device 100 and a protected device 103 can be reliably connected; a TX Power Level 1 (404) may correspond to a distance d1; a TX Power Level 2 (407) may correspond to a distance d2; a TX Power Level 3 (410) may correspond to a distance d3; a TX Power Level n (413) may correspond to a distance dn; and so on. Thus, through selection by the selector 400 of the power level of the power amplifier 307, a distance can be configured over which a connection can be maintained between a proximity alert device 100 and a protected device 103.
In the implementation depicted, in order to facilitate a persistent connection (e.g., through disconnects and power interruptions), the protected device 103 sends (537) a token 540, such as a passkey, cipher or cryptographic authentication file. The proximity alert device 100 receives (543) the token 540 and sends (546) its own responsive token 549, which the protected device 103 receives (552). With the devices 100 and 103 having now exchanged tokens, a trusted communication channel is established, and this channel may be reestablished in the event of a disconnect or power cycle. In some implementations, the successful exchange of tokens may be recorded by an entry on a whitelist (e.g., an entry of an identifier associated with either the proximity alert device 100 or the protected device 103).
In some implementations, and with reference to the steps depicted in
In some implementations, including the one depicted, user selection of the indication 601 causes a security protocol to be executed (531). More particularly, a user interface window 604 may appear on the protected device 103, soliciting user confirmation of a desired pairing between the protected device 103 and the proximity alert device 100. A user may provide this input by selecting the “pair” confirmation 607.
Internal to the protected device 103 and the proximity alert device 100, selection of the “pair” confirmation 607 may cause the connection request to be accepted (534) and for a token 540 to be sent (537) by the protected device 103; and for the proximity alert device 100 to receive (543) the token 540 and send (546) a responsive token 549. Upon receipt (552) of the responsive token 549, a connection may be established between the devices 100 and 103, and this connection may be confirmed through display of the message 610, showing the name of the proximity alert device 103 (“Blu-Card26FD17”) and the fact that this device is “Connected.”
Described with reference to
In this manner, the proximity alert device 100 can periodically confirm persistence of the connection with the protected device 103, without consuming substantial power to do so. In some implementations, steps 701, 716 and 719 may be repeated every 7.5 mS; in other implementations, steps 701, 716 and 719 may be repeated every 20 mS; in other implementations, steps 701, 716 and 719 may be repeated every 4-10.24 seconds; in other implementations, the steps 701, 716 and 719 may be repeated within ranges between or outside of the aforementioned points.
In preferred implementations, the period at which persistence of the connection is confirmed is set to balance power consumption against a time that is short enough to detect the loss of a connection, such that a user can take action after being alerted of the loss of connection (and the greater-than-threshold distance between the proximity alert device 100 and protected device 103 that that loss of connection indicates).
Power may be substantially conserved when the proximity alert device 100 is in a low-power sleep mode represented by step 719. For example, most power consumed by the proximity alert device 100 may be consumed by the process of the device 100 waking up (the transition from step 719 to step 701), and the steps of sending (701) data 704 and receiving (716) responsive data 713.
The distance dALARM may have been established by, with reference to
In some implementations, the method 720 is configured such that the proximity alert device 100 detects (722) the absence of return data with a threshold period of time. The proximity alert device 100 may be programmed, for example, to start a timer upon sending (710B) the data 704. If the timer reaches a threshold period of time (e.g., a period by which responsive data would be expected if a connection were established with the protected device 103, including any retries that would be issued by a low-level physical layer of the corresponding communication protocol), an alarm can be generated (725). The alarm could be in the form of an audible tone, haptic feedback, a visual indicator, some combination of these, or some other action that would provide an alert to a corresponding user.
When the method 800 starts (801), transmission power is configured (803). With reference to
Next, a determination is made (806) as to whether the proximity alert device 100 is already paired to a protected device 103; if not, an attempt can be made (809) to pair. In some implementations, with reference to
If a pairing has been previously made, some implementations determine (812) whether a connection is active. This may involve, with reference to
In some implementations, the determination (821) of whether a response was received may involve, with reference to
When the proximity alert device 100 enters a lower-power sleep mode (827), a wake-up timer may be started. When it is determined (830) that such a wake-up timer has expired, the method can include sending (818) another heartbeat ping, to confirm a persistent connection between the proximity alarm device 100 and the protected device 103.
As shown in the implementation in
Upon power-up, code may be transferred from this non-volatile OPT memory 907A to another memory that is used by the CPU 201. In addition to the program code, configuration parameters, such as parameters for the RF/Modem 304 may be included—specifically, for example, configuration parameters that set the transmission power levels described with reference to
A power management block 919 may implement the sleep timer and low-power mode(s) described with reference to
The device 901 can include additional blocks for user interface, such as, for example, an analog I/O interface 916A, which may be used, for example, to drive an audible or haptic alarm (e.g., feedback 107 depicted in
Externally, the device 1001 can include a user input device 1007, such as, for example, a slide or pushbutton switch. The user input device 1007 may control power to the proximity alert device 1001, and it may also be employed for receiving user input to control aspects of the proximity alert device 1001, such as calibration of a threshold distance associated with an alert feature or manually adjusting the threshold distance associated with an alert.
Internally, the device 1001 can include similar components as in other implementations, including, for example, a processor 1010; primary memory 1013 to store program instructions that can be executed by the processor 1010 to perform various functions; non-volatile memory 1016, for example, to store parameter settings and program code when power is not available for the primary memory; a transceiver 1019, such as a Bluetooth® transceiver configured to communicate with other devices via a Bluetooth® protocol; and an alarm device 1022. In some implementations, the alarm device 1022 is a piezo transducer capable of producing an audio and/or haptic alert; in other implementations, the alarm device 1022 includes a visible indicator, such as an LED.
In some implementations, the transducer 1019 is a Bluetooth® transceiver that is configured to communicate via a “HOGP” protocol (Human Interface Device Profile (HID) over Generic Attributes Profile (GATT) profile, or HOGP) with a protected device 1025 (e.g., a smart phone, as shown; or a laptop or other piece of equipment that is configured with a Bluetooth® transceiver). In such implementations, the proximity alert device 1001 can emulate a Human Interface Device, such as a mouse or keyboard. By emulating such a device, the proximity alert device 1001 may—after pairing with and bonding to the protected device 1025—store an identifier associated with the protected device 1025 in a whitelist that facilitates an automatic reconnection between the proximity alert device 1001 and protected device 1025 if an initial connection is lost.
Similarly, a paired protected device 1125 may be disposed on various positions on or around the user. For example, as depicted by configuration 1108, the protected device 1125 may be retained by an inside pocket of a jacket; as another example, as depicted by configuration 1111, the protected device 1125 may be retained by a front pants pocket; as another example, as depicted by configuration 1114, the protected device 1125 may be retained by a lower leg pocket (e.g., a knee- or calf-level pocket in a pair of cargo pants); as another example, as depicted by configuration, 1117, the protected device 1125 may be retained by a rear pants pocket; as another example, as depicted by configuration 1120, the user may typically carry the protected device 1125 in his or her hand; as another example, as depicted by configuration 1123, the protected device 1125 may typically rest on a nearby surface (e.g., a desk or work station associated with the user). Numerous other configurations are possible.
In each of the foregoing configurations, signals may propagate differently between the proximity alert device 1101 and the protected device 1125—for example, based on whether the devices 1101 and 1125 are within an uninterrupted line of sight; based on how much distance separates the devices 1101 and 1125; and based on whether a portion of the user's body is often between the devices 1101 and 1125; and based on the distance from the user's body to the alert device.
Path 1143 depicts an arrangement where there is not a direct line of sight between the proximity alert device 1101 and the protected device 1125, and where signals therebetween may have to travel through the user or on the user via surface waves, or reflect off surfaces adjacent the user (e.g., where the proximity alert device 1101 is around the neck of the user and where the protected device 1125 is in a rear pants pocket of the user).
Path 1146 depicts an arrangement where there is some distance between the proximity alert device 1101 and the protected device 1125, and where there may or may not be a direct line of sight therebetween, depending on the position of the user (e.g., where the proximity alert device 1101 is around the neck of the user and where the protected device 1125 is, for example, in a lower pocket of a user's cargo pants).
Path 1149 depicts an arrangement where there is little distance between the proximity alert device 1101 and the protected device 1125, and where there is also a direct line of sight therebetween (e.g., where the proximity alert device 1101 anchored to the users belt, such as by a retractable badge lanyard, and where the protected device 1125 is in an immediately adjacent pants pocket).
In each of these arrangements, a received signal strength indicator (RSSI) value associated with the protected device 1125 (e.g., a value transmitted with data sent from the protected device 1125 to the proximity alert device 1101, or calculated or determined by the proximity alert device 1101 based on signals received from the protected device 1125) may differ, based on the distance between the proximity alert device 1101 and the protected device 1125, and based further on whether there is a direct line of sight therebetween and/or whether the signals must penetrate, follow the surface of or reflect around objects or the user himself or herself.
In some implementations, an RSSI value may range from −100 and 0, with zero representing a stronger signal and −100 representing a very weak signal. By way of example, in some implementations, given a particular transmission power level of the proximity alert device 1101, an RSSI associated with the protected device 1125 may be −75 for path 1143, −56 for path 1146, −43 for path 1140 and −28 for path 1149.
These numbers are merely exemplary to illustrate the principles described herein; each device is different (e.g., with respect to its physical orientation and the orientation and nature of its antenna and transceiver), and there may not be a precise correlation between RSSI values and signal power or between RSSI values of different devices. Thus, for example, one protected device in a given arrangement relative to a proximity alert device may provide one RSSI value, and a different protected device in the same arrangement relative to the same proximity alert device may provide a different RSSI. It is for this reason that some implementations described herein do not rely on RSSI values directly to infer distance between the proximity alert device and the protected device. This point notwithstanding, it may still be advantageous to employ (e.g., during a user-initiated calibration process of threshold distances for alerts) RSSI values to set transmission power levels, as will now be described.
In some implementations, it may be possible to establish a reference RSSI value, against which configuration-specific RSSI values can be compared, in order to adjust transmission power levels of the proximity alert device 1101. For example, in some implementations, an RSSI value of between about (e.g., within 1%, 2%, 5%, 10%, 20%, 25% or 50% of a nominal value) −50 and about −75 may typically (e.g., across multiple protected devices) correspond to an alert threshold that is within about 10-20 feet of the user (e.g., a distance that may not result in many false alerts, but that may also provide a user with a timely notification before the user is too far from his or her protected device, such that quick retrieval is possible). In such implementations, if, during a user-initiated calibration process for a given arrangement of proximity alert device and protected device, an instant RSSI value is higher than this ideal range (or than a stored reference RSSI value in that range), the transmission power may be lowered; on the other hand, if the instant RSSI value is lower than this ideal range (or a stored reference RSSI value in that range), the transmission power may be increased.
In some implementations, a comparison may be made between an instant RSSI value and a stored reference RSSI value, and if the instant RSSI value is greater than the stored reference RSSI value by more than a first threshold (e.g., 10 RSSI units (sometimes specified in dB or dBm by specific manufacturers of transceiver devices)), the transmission power may be lowered. Similarly, if the instant RSSI value is less than the stored reference RSSI value by more than a second threshold (e.g., 7 RSSI units), the transmission power may be increased. In some implementations, the first threshold and the second threshold may be different; in other implementations, the first threshold and the second threshold may be the same.
In some implementations, then, it may be advantageous to adjust a threshold at which the proximity alert device 1101 provides an indication or alert when more than a threshold distance is detected or inferred to exist between the proximity alert device 1101 and a protected device 1125.
In some implementations, the specific transmission power level may be selected from a plurality of possible transmission power levels. For example, a particular transceiver 1019 may have factory-defined power levels specified in dBm and at specific levels, such as +4 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm, and −20 dBm. Another transceiver may have factory-defined power levels at +4 dBm, +3 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm, −20 dBm and −40 dBm. Another transceiver may have factory-defined power levels spanning a broader or narrower range or having fewer or a greater number of steps. Yet another transceiver may facilitate user programming of specific power levels, rather than limiting users to specific, pre-defined power levels. Whatever the details of the specific transceiver, in some implementations, an initial power level may be set at a level that reliably facilitates pairing between a proximity alert device and a wide variety of protected devices, in a large number of common arrangements. For example, in some implementations, the first transmission power level may be set to 0 dBm, −4 dBm, −8 dBm or −12 dBm.
The method 1200 further includes advertising for a pairing and subsequently pairing with a protected device. For example, with reference to
In some implementations, the advertising and pairing occurs automatically, without user action. In other implementations, some user action is required to initially pair the devices (e.g., the user may need to actuate the user input device 1007 (a slide, push-button or touch switch, in some implementations), for a particular period of time, to initiate the pairing).
In some implementations, the advertising and pairing occurs over a specific protocol, such as a Bluetooth® HOGP protocol. In such implementations, this HOGP protocol may have the advantage of facilitating automatic reconnection between the devices after an initial pairing, as occurs with HIDs such as a mice, keyboards, earbuds, hands-free systems, and other systems that rely on the HOGP protocol. That is, the proximity alert device 1001 may emulate an HID in the context of a HOGP protocol.
In some implementations, automatic reconnection process is facilitated by storage of unique identifiers for one or both of the devices. For example, the protected device 1025 may, upon connection with the proximity alert device 1001, store an identifier associated with either the proximity alert device 1001 or the protected device 1025 in a whitelist; and subsequent reconnections may be possible only because such an identifier is stored in the whitelist. More particularly, in some implementations, the protected device 1025 stores an identifier associated with the proximity alert device 1001 in a whitelist.
The method 1200 may include loading (1212) a second configuration value and setting (1215) a transmission power level to a second power level, based on the second configuration value. For example, with reference to
In some implementations, the second transmission power level may be lower than the first transmission power level, and it may be selected to facilitate disconnection between the proximity alert device 1001 and the protected device 1025 at distances that minimize false alerts generated from common activities (e.g., a user walking to a nearby printer while leaving a protected device on a primary work surface), while still providing alerts soon enough to be actionable by the user (e.g., alerting the user on a bus, if the user inadvertently leaves the protected device 1025 on a seat and starts to exit the bus). For example, in implementations in which the first transmission power level is −12 dBm, the second transmission power level may be set to −20 dBm; as another example, in implementations in which the first transmission power level is −8 dBm, the second transmission power level may be set to −12 dBm or −16 dBm.
In some implementations, the second transmission power level may be greater than the first transmission power level to accommodate a greater distance between the proximity alert device 1001 and the protected device 1025 (e.g., in an office environment in which the protected device 1025 is typically left on a work surface, where the user may routinely leave the immediate vicinity of the work surface in order to, for example, access office equipment elsewhere in the office environment).
The reader will appreciate that many first and second transmission power levels are possible. The reader will further appreciate that given the various permutations of protected device 1025 and physical arrangements of the protected device 1025 and the proximity alert device 1001, benefit to the user may be realized by additional calibration or adjustment.
Such additional calibration or adjustment may be user-initiated. For example, the exemplary method 1200 includes receiving (1218) input from the user input device to calibrate the threshold distance. For example, with reference to
Other variations for receiving user input are possible. For example, slide or pushbutton switches may be employed, touch sensors, proximity sensors, light sensors, motion sensors; a mechanical switching action may be required, taps may be required, a sensor may be covered and uncovered for a specific period of time, the entire proximity alert 1001 device may be shaken to provide a gesture or motion-based input; in some implementations, a user interface on a corresponding application (e.g., on the protected device 1025) may be employed, etc.
In some implementations, user-initiated input to calibrate a threshold distance may be received from the user when the proximity alert device and protected device are in a customary arrangement for that user. For example, users who routinely wear proximity alert devices around their necks and carry their protected devices (e.g., smart phones) in their back pockets may want to calibrate the threshold distance (e.g., increase the transmission power level) to avoid false alerts. Similarly, users who customarily carry their protected devices very close to their proximity alert devices (e.g., proximity alert device on a retractable ID badge reel anchored at waist level, with the protected device in an adjacent pocket) may want to calibrate the threshold distance (e.g., decrease the transmission power level) to avoid allowing too much separation between the proximity alert device and the protected device before an alert is issued.
In some implementations, the method 1200 includes, in response to receiving (1218) the input, retrieving (1221) at least one value for a received signal strength indicator (RSSI) associated with the paired protected device, and adjusting the transmission power level to a calibrated power level based on a comparison of the at least one value to a stored reference value.
For example, with reference to
As another example, again with reference to
In some implementations, the adjusted transmission power level is stored in non-volatile memory as a calibrated power level, such that it can be loaded and used to reset the transmission power level after power to the proximity alert device is lost, or after a connection between the proximity alert device and protected device is lost, then restored.
As shown, the method 1200 further includes detecting (1224) a loss of connection with the protected device. For example, with reference to
In some implementations, at the same time an alarm is triggered (1227), the transmission power level may be decreased (1227) relative to the calibrated power level. For example, if the calibrated transmission power level was at −12 dBm, it may be reduced to −16 dBm upon triggering (1227) of the alarm. In some implementations, reducing the transmission power level upon triggering (1227) of the alarm may provide hysteresis between a disconnection threshold and reconnection threshold, thereby eliminating or reducing false alerts at or near the distance at which the connection is lost.
As shown, the method 1200 may further include, upon restoration of a connection with the paired protected device, restoring (1230) the transmission power level to the calibrated power level. For example, if the calibrated power level is −12 dBm and (with reference to
Various steps in the method 1200 have been described. In some implementations, additional steps may be added, steps may be removed, or steps may be reordered. For example, in some implementations, steps 1212 and 1215 may be omitted. In some implementations, the transmission power level may not be reduced when an alarm is triggered at step 1227. In some implementations, transmission power levels may be calibrated without reference to RSSI signals.
In some implementations the user may manually reduce the transmission power levels via the user input device. For example, in some implementations, step 1221 may be replaced with a manual, user-initiated adjustment, in response to receiving input (1218) to make the adjustment. More particularly, upon receipt of such input, the transmission power may be adjusted up or down by a specific increment. A user wanting to extend the alert range may initiate manual adjustment upward of the transmission power level with one type of input (e.g., with long press, followed by one short press of a pushbutton switch). Such input may cause an implementation to reduce the transmission power level by 4 dBm, or some other pre-defined increment (e.g., 2 dBm, 1 dBm, 8 dBm, etc.). Another user wanting to reduce the alert range may initiate adjustment downward of the transmission power level (e.g., with a long press, followed by two short presses of a pushbutton switch). Such input may cause an implementation to increase the transmission power level by 4 dBm, or some other pre-defined increment.
In general, various implementations have been described herein, but the reader will appreciate that other implementations are within the scope of this description. For example, many of the actions described herein are described within the context of the proximity alert device; but these methods may be implemented in the protected device, or in a combination of the proximity alert device and the protected device, or in combination of the proximity alert device and another proximity alert device, each device functioning as both a proximity alert device and a protected device. Either protected device or proximity alert device could take various forms, other than the mobile communication device and key fob or ID badge that are depicted and described herein. Some methods may be implemented with steps in different orders, and the functions described may be implemented in ways other than as described. Certain functions may be implemented in software, hardware, firmware or a combination of all or some of these forms. Various user interfaces could substitute those described herein. Bluetooth® interfaces and protocols are described, but other radio frequency-based interfaces and communications protocols could be employed. Different thresholds or timeout periods may be employed. Therefore, it is intended that the scope not be limited to the particular aspects or implementations disclosed but include all aspects falling within the scope of the appended claims.
Claims
1. A method of alerting a user comprising:
- loading, in a proximity alert device having a processor, non-volatile memory, a user input device, and a Bluetooth transceiver, a first configuration value from the non-volatile memory and setting a transmission power level of the Bluetooth transceiver, based on the loaded first configuration value, to a first power level selected from a plurality of power levels comprising +4 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm, and −20 dBm;
- advertising for a pairing and subsequently pairing and bonding with a protected device that also has a Bluetooth transceiver, via a Human Interface Device Profile (HID) over Generic Attributes Profile (GATT) profile (HOGP);
- upon pairing and bonding with the protected device, loading a second configuration value from the non-volatile memory and setting the transmission power level to a second power level that is less than the first power level;
- receiving input from the user input device to calibrate a threshold distance that is inferred to exist between the proximity alert device and the protected device;
- in response to receiving the input, retrieving at least one value for a received signal strength indicator (RSSI) associated with the paired protected device, and based on a comparison of the at least one value to a stored reference value, increasing the transmission power level by at least 4 dBm if the at least one value is less than the stored reference value by more than a first threshold, and decreasing the transmission power level by at least 4 dBm if the at least one value is greater than the stored reference value by more than a second threshold, and saving to non-volatile memory the increased or decreased transmission power level as a calibrated power level;
- detecting a loss of connection with the paired protected device;
- in response to detecting the loss of connection, triggering an alarm and decreasing the transmission power level relative to the calibrated power level; and
- upon restoration of a connection with the paired protected device, restoring the transmission power level to the calibrated power level.
2. A method of alerting a user, the method comprising:
- loading, in a proximity device comprising a processor, non-volatile memory, a user input device, and a Bluetooth transceiver, a first configuration value from the non-volatile memory and setting a transmission power level of the Bluetooth transceiver, based on the loaded first configuration value, to a first power level from among a plurality of power levels;
- advertising for, via a Bluetooth protocol, a pairing, and subsequently pairing with a protected device that also has a Bluetooth transceiver;
- receiving input from the user input device to calibrate a threshold distance that is inferred to exist between the proximity alert device and the protected device;
- in response to receiving the input, retrieving at least one value for a received signal strength indicator (RSSI) associated with the paired protected device, and based on a comparison of the at least one value to a stored reference value, adjusting the transmission power level of the Bluetooth transceiver up or down, and saving to the non-volatile memory the adjusted transmission power level as a calibrated power level;
- detecting a loss of connection with the paired protected device;
- in response to detecting the loss of connection, triggering an alarm.
3. The method of claim 2, wherein pairing comprises pairing via a Human Interface Device Profile (HID) over Generic Attributes Profile (GATT) profile (HOGP).
4. The method of claim 3, wherein pairing comprises bonding, wherein an identifier associated with the protected device or the proximity alert device is stored in a whitelist.
5. The method of claim 2, wherein triggering an alarm comprises providing a visual indication, providing an audible tone and providing haptic feedback.
6. The method of claim 2, wherein setting a transmission power level comprises configuring the gain of a power amplifier in the Bluetooth transceiver.
7. The method of claim 2, wherein the plurality of power levels comprises +4 dBm, +3 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm and −20 dBm.
8. The method of claim 2, wherein the plurality of power levels comprises +4 dBm, 0 dBm, −4 dBm, −8 dBm, −12 dBm, −16 dBm, −20 dBm and −40 dBm.
9. The method of claim 2, wherein the first power level is selected from among 0 dBm, −4 dBm, −8 dBm and −12 dBm.
10. The method of claim 2, further comprising, upon pairing with the protected device, loading a second configuration value from the non-volatile memory and setting a transmission power level of the Bluetooth transceiver, based on the loaded second configuration value, to a second power level that is lower than the first power level.
11. The method of claim 10, wherein the first power level is selected from among −8 dBm, −12 dBm and −16 dBm; and the second power level is selected from among −12 dBm, −16 dBm and −20 dBm.
12. The method of claim 2, wherein adjusting the transmission power level comprises increasing the transmission power level if the at least one value is less than the stored reference value by more than a first threshold, and decreasing the transmission power level if the at least one value is greater than the stored reference value by more than a second threshold.
13. The method of claim 2, further comprising periodically sending data, via the Bluetooth protocol, to the paired protected device.
14. The method of claim 13, wherein detecting a loss of connection comprises determining that a response from the paired protected device has not been received in response to the periodically sent data.
15. The method of claim 2, further comprising decreasing the transmission power level of the Bluetooth transceiver relative to the calibrated power level when triggering the alarm.
16. The method of claim 15, further comprising, upon restoration of a connection with the paired protected device, restoring the transmission power level to the calibrated power level.
17. A proximity alert device comprising
- a processor,
- non-volatile memory;
- a user input device;
- a radio transceiver; and
- primary memory that stores program instructions to be executed by the processor, the program instructions comprising instructions that, when executed, perform a method comprising: loading a configuration value from the non-volatile memory and setting a transmission power level of the radio transceiver, based on the loaded first configuration value, to a configuration power level from among a plurality of power levels; advertising for a pairing and subsequently pairing, via a Human Interface Device Profile (HID) over Generic Attributes Profile (GATT) profile (HOGP) Bluetooth protocol, with a protected device that has a corresponding radio transceiver; receiving input from the user input device to adjust the transmission power level up or down by a predetermined increment; in response to receiving the input, and based upon that input, adjusting the transmission power level of the radio transceiver up or down by the predetermined increment, and saving to the non-volatile memory the adjusted transmission power level as a calibrated power level; detecting a loss of connection with the paired protected device; in response to detecting the loss of connection, triggering an alarm.
18. (canceled)
19. The proximity alert device of claim 17, wherein the method further comprises, upon pairing with the protected device, loading a second configuration value from the non-volatile memory and setting the transmission power level, based on the loaded second configuration value, to a second power level that is lower than the first power level.
20. The proximity alert device of claim 17, wherein receiving input from the user device comprises receiving a first command to adjust the transmission power up or receiving a second command that is different than the first command to adjust the transmission power down.
Type: Application
Filed: Sep 24, 2020
Publication Date: Apr 1, 2021
Applicant: Tereo Corporation, Inc. (San Jose, CA)
Inventors: Raymond Quibelan (San Jose, CA), Michael Mark McCrary (San Mateo, CA)
Application Number: 17/031,489