System and method for programming trainable transmitters

By leveraging the first security protocol communication between the previously learned remote control and the controllable device, the controllable device is converted into the second security protocol learning mode, and through the coordinated operation of the remote control and the trainable transmitter, the problem that the trainable transmitter that cannot communicate using the first communication protocol cannot be compatible with the newer garage door opener is solved, and effective programming and learning of these transmitters are achieved.

CN119998853APending Publication Date: 2025-05-13THE CHAMBERLAIN GRP INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202380057463.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-07-28
Filing Date
2023-07-28
Publication Date
2025-05-13

AI Technical Summary

Technical Problem

In the prior art, trainable transmitters that cannot communicate using the first communication protocol cannot be compatible with newer garage door openers, resulting in users being unable to use these transmitters to operate garage door openers.

Method used

By providing a system and method, the controllable device is gradually converted into the second safety protocol learning mode by utilizing the first security protocol communication between the previously learned remote control and the controllable device, and the programming of the trainable transmitter and the learning of the movable barrier operator is completed through the collaborative operation of the remote control and the trainable transmitter.

Benefits of technology

The trainable transmitter that cannot communicate using the first communication protocol can be trained and operated by newer garage door openers, solves compatibility issues and expands the scope of application of the equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119998853A_ABST
    Figure CN119998853A_ABST
Patent Text Reader

Abstract

In one aspect, a method of using a remote controller to train a trainable transmitter is provided. The method includes receiving a user input at a user interface of the remote controller, and in response to receiving the user input at the user interface, broadcasting a first radio frequency communication to the controllable device via a first security protocol, the first communication including a first fixed code and a first change code. The method further includes measuring a duration of the user input, and in response to the measured duration of the user input satisfying a user input duration condition, broadcasting a second radio frequency communication to the controllable device and the trainable transmitter via a second security protocol different from the first security protocol, the second radio frequency communication includes a first fixed code and a first variable code.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 393,085, filed on July 28, 2022, the entire contents of which are incorporated herein by reference. Technical Field

[0002] The present disclosure relates generally to radio frequency transmitters, and more particularly to programming a trainable transmitter to operate a controllable device. Background Art

[0003] The movable barrier operator system generally includes a movable barrier operator (e.g., a garage door operator) and a remote control (e.g., a transmitter). The transmitter transmits a radio frequency (RF) signal, the RF signal including an access code that is received by the movable barrier operator. If the movable barrier operator verifies the access code, the movable barrier operator performs the requested action, such as changing the state of the movable barrier (e.g., open / closed).

[0004] The access code may include a varying code that changes with each operation of the transmitter, such as a rolling code. Both the transmitter and the movable barrier operator use similar algorithms to calculate the next access code to be transmitted and received.

[0005] One type of access code includes four codes, such as a fixed (i.e., unchanging) transmitter number identification or code, a rolling code, a fixed transmitter type identification code, and a fixed switch identification code. A fixed transmitter identification code is a transmitter's essentially unique transmitter identification number, such as a universally unique identifier (UUID) or a globally unique identifier (GUID). A rolling code is a code that changes with each transmission, which increases security by preventing the transmission from being intercepted, recorded, and replayed. The type identification code of the access code is used to inform the movable barrier operator of the type and characteristics of the transmitter. The switch identification code is used to identify which switch on the transmitter (e.g., if the transmitter is configured with multiple switches / buttons) is pressed.

[0006] In the context of garage door operators, a user typically receives at least one remote control, such as a trained transmitter, when purchasing and / or installing a garage door opener. The trained transmitter has been previously learned by the garage door opener so that the user can press a button on the transmitter, causing the transmitter to transmit an RF signal including an access code to the garage door opener and open the garage door.

[0007] A "trainable" transmitter, also referred to as a "universal" transmitter, is configured to be learned by the garage door opener as an alternative to or in addition to a trained transmitter. Trainable transmitters include vehicle-mounted trainable transmitters, such as those integrated into the dashboard, visor, or rearview mirror of a vehicle. A device or system is such a trainable transmitter.

[0008] Various methods are currently used to train garage door operators to respond to RF signals from a vehicle's trainable transmitter. In one method, a user places the vehicle's trainable transmitter in a mode to listen for RF signals from a trained transmitter. The user presses a button on the trained transmitter while within range of the vehicle's trainable transmitter and the garage door operator. The garage door operator receives the RF signal from the trained transmitter, decrypts and interprets the access code from the RF signal, and then opens the garage door. After receiving the RF signal from the trained transmitter, the garage door opener initiates a time window to start the training process.

[0009] The vehicle trainable transmitter also decrypts and parses the RF signal from the trained transmitter. The vehicle trainable transmitter adapts or derives a unique transmitter identifier, rolling code, and payload based on the transmitter identifier, rolling code, and payload of the RF signal from the trained transmitter. For example, the vehicle trainable transmitter may prepend or add a value to the transmitter identifier of the trained transmitter.

[0010] Next, the user presses a button of the vehicle trainable transmitter within a time window set by the garage door operator, and the vehicle trainable transmitter transmits an RF signal that includes a derived transmitter identifier, a derived rolling code (e.g., a next or subsequent rolling code to the rolling code transmitted by the trained transmitter), and a derived payload.

[0011] When the garage door operator receives the RF signal from the vehicle trainable transmitter within the time window, the garage door operator determines whether the derived transmitter identifier, rolling code, and payload correspond to a trained transmitter that last caused the garage door opener to move the garage door.

[0012] Some existing safety systems for movable barrier operators utilize one-way communication of an access code from a trained or learned transmitter to the movable barrier operator. The movable barrier operator verifies the access code received from the transmitter and changes the state of the movable barrier if the movable barrier operator has learned the access code.

[0013] Some newer security systems utilize a two-way security protocol, such as that disclosed in U.S. Pat. No. 10,652,743. In one approach, the two-way security protocol generally involves a transmitter transmitting a first signal to a movable barrier operator, the movable barrier operator sending a second signal to the transmitter in response to the first signal, and the transmitter sending a third signal to the movable barrier operator in response to the second signal. The predetermined pattern or back and forth of the communication signal between the transmitter and the movable barrier and the changing code of the signal provide an additional layer of security to prevent "man-in-the middle" attacks.

[0014] A customer may purchase a newer garage door opener that includes a different communication protocol (e.g., a two-way safety protocol) but already owns a vehicle with a trainable transmitter. The customer's vehicle trainable transmitter may not be compatible with the two-way communication safety protocol. In this case, the user may not be able to operate the newer garage door opener using the trainable transmitter in the customer's vehicle. Summary of the invention

[0015] This summary is intended to introduce a series of concepts in a simplified form, which are further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0016] The present disclosure provides a system and method for training a trainable transmitter. The method includes sending a first radio frequency communication via a first security protocol from a remote control previously learned using a first security protocol learning mode, the first radio frequency communication including a first fixed code and a first changing code; verifying the remote control by a controllable device at least in part based on the first fixed code, the first changing code, and the changing code from the previous radio frequency communication of the remote control; entering a second security protocol learning mode by the controllable device in response to verifying the remote control; when the controllable device is in the second security protocol learning mode: sending a second radio frequency communication from the remote control via a second security protocol different from the first security protocol, the second radio frequency communication including a first fixed code and a first changing code; receiving the second radio frequency communication by the trainable transmitter; determining at least one of the second fixed code and the second changing code by the trainable transmitter at least in part based on the first fixed code and the first changing code; sending a third radio frequency communication from the trainable transmitter via a second security protocol, the third radio frequency communication including at least one of the second fixed code and the second changing code; and, in response to the second fixed code corresponding to the first fixed code and the second changing code corresponding to the first changing code, learning the trainable transmitter by the controllable device. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] Figure 1 is a stereogram of a vehicle's movable barrier operator, previously learned transmitters, and trainable transmitters;

[0018] Figure 2 yes Figure 1 A block diagram of a trainable transmitter;

[0019] Figure 3 yes Figure 1 Block diagram of the remote control;

[0020] Figure 4 yes Figure 1 A block diagram of a movable barrier operator;

[0021] Figure 5is a flow chart illustrating a method of operating a controllable device using a second communication protocol;

[0022] Figure 6 is a flow chart illustrating a method of operating a controllable device using a first communication protocol;

[0023] Fig. 7A and Figure 7B A flow chart showing a method of pairing a remote control with a movable barrier operator using a second communication protocol;

[0024] Fig. 8A and Figure 8B A flow chart showing a method of operating a controllable device using a remote controller using a first communication protocol;

[0025] Fig.9A , 9B , 9C, 9D, 9E and 9F show flow charts of methods for pairing a trainable transmitter with a movable barrier operator using a remote control as an intermediary device;

[0026] Fig.10 Is to show that follow 9A to 9F a flowchart of an alternative method of pairing a trainable transmitter with a movable barrier operator;

[0027] Fig.11 is a flow chart illustrating a method of operating a movable barrier operator to train a trainable transmitter;

[0028] Fig.12 is a flow chart illustrating a method of operating a training transmitter during training of a trainable transmitter; and

[0029] Fig.13 is a block diagram of an example computing device for implementing embodiments of the present disclosure. DETAILED DESCRIPTION

[0030] Various embodiments and examples will be described in detail with reference to the accompanying drawings. Where possible, the same reference numerals will be used in the drawings to refer to the same or similar parts. References to specific embodiments and implementations in this disclosure are for illustrative purposes only, but are not intended to limit all examples unless otherwise specified.

[0031] In one aspect of the present disclosure, a system is provided that includes a controllable device (e.g., a movable barrier operator), a previously learned remote control for the controllable device, and a trainable transmitter. The controllable device and the previously learned remote control are configured to communicate using a first communication protocol. The first communication protocol may include using a first radio frequency and a first security protocol. The security protocol may include, for example, encryption / decryption techniques and / or a predetermined message exchange pattern for authenticating communications between devices. The first communication protocol may include, for example, utilizing a security protocol. Low power consumption ( LowEnergy) protocol, the security protocol includes a two-way exchange of fixed codes and rolling codes, as referenced below Fig. 8A and Figure 8B described.

[0032] The trainable transmitter may include a trainable transmitter integrated within the vehicle, such as within a dashboard, sun visor, or rearview mirror of the vehicle. The trainable transmitter may be operable to communicate via a second communication protocol, the second communication protocol may include a second radio frequency and a second safety protocol. The second safety protocol may be different from the first safety protocol, and the second radio frequency may be the same as or different from the first radio frequency. The trainable transmitter may be A trainable transmitter is a universal transmitter that can learn RF signals transmitted by transmitters made by different manufacturers and having different code formats, frequencies, transmitter IDs, bit patterns, etc. Although the trainable transmitter can be programmed with transmitters using various communication protocols, the trainable transmitter cannot communicate via the first communication protocol inherent to the remote control and the controllable device.

[0033] To program the trainable transmitter to operate the controllable device, the remote control is configured to operate as a facilitator or intermediary by broadcasting an access code to the controllable device via a first communication protocol and broadcasting an access code to the trainable transmitter via a second communication protocol. For example, a user causes the trainable transmitter to enter a learning mode by pressing and holding a button of the trainable transmitter that the user wants to program to operate the controllable device. As the user continues to hold the button of the trainable transmitter, the user presses and holds a button of the remote control, which causes the remote control to send an access code to the controllable device via the first communication protocol.

[0034] A controllable device receives communications from a remote control via a first communication protocol. The controllable device verifies the communications from the remote control and automatically enters a second communication protocol learning mode, which is a specific mode of the controllable device, different from the operating mode, for learning devices that are configured (or otherwise restricted) to use a second communication protocol rather than the first communication protocol. In the second communication protocol learning mode, the controllable device calculates a derived access code based on the access code. The derived access code has a mathematical relationship to the access code received via the first communication protocol. For example, the derived access code may include an access code with a pre-pended or appended value, an incremental version of the access code, and / or a version of the access code modified according to a mathematical formula. The controllable device may remain in the second communication protocol learning mode for a predetermined period of time, such as 45 seconds. As part of entering the second communication protocol learning mode, the controllable device derives an access code based on the access code transmitted by the remote control.

[0035] When the controllable device is in the second communication protocol learning mode, the controllable device will learn a transmitter that transmits a derived access code via the second communication protocol, the derived access code also being derived by the controllable device from the access code broadcast by the remote control. The controllable device and the trainable transmitter use similar algorithms to determine the derived access code.

[0036] The remote control can transmit a signal using the second communication protocol in response to the user input condition being satisfied. For example, the remote control monitors how long the user holds down a remote control button. Once the user holds down the button for a predetermined duration or time period (e.g., fifteen seconds), the remote control broadcasts a signal with an access code to the trainable transmitter using the second communication protocol.

[0037] Since the access code is transmitted using the second communication protocol, the trainable transmitter is able to receive the access code from the remote control. The trainable transmitter determines a derived access code based on the access code of the remote control. For example, the trainable transmitter can derive a second fixed code based on a first fixed code of the access code, and can derive a second variable code based on a first variable code of the access code.

[0038] The trainable transmitter stores the derived access code in a memory of the trainable transmitter, and the trainable transmitter flashes an LED or otherwise indicates to the user that the trainable transmitter has been programmed by the remote control. Since the trainable transmitter has been programmed, the user releases the buttons of the remote control and the trainable transmitter.

[0039] To cause the movable barrier operator to learn the trainable transmitter, the user presses a now-trained button of the trainable transmitter to cause the trainable transmitter to transmit a radio frequency communication including a derived access code to the controllable device via a second communication protocol. The movable barrier operator receives the radio frequency communication, determines that the derived access code of the trainable transmitter corresponds to an access code from the remote control, and learns the trainable transmitter, such as by storing fixed codes and variable codes of the trainable transmitter in a transmitter whitelist of the movable barrier operator. For example, in response to the movable barrier operator determining that the access code of the trainable transmitter has the same (or similar) mathematical relationship to the access code of the remote control as the derived access code calculated by the movable barrier operator based on the access code of the remote control, the movable barrier operator may determine that the access code of the trainable transmitter corresponds to the access code of the remote control.

[0040] In one embodiment, the controllable device may limit the number of trainable transmitters that can operate the controllable device using the second communication protocol. For example, the controllable device may include a movable barrier operator that will learn two trainable transmitters that will utilize the second communication protocol. If a user attempts to program a third trainable transmitter to operate the movable barrier operator, the movable barrier operator will remove the first trainable transmitter from the movable barrier operator's transmitter whitelist and add the third trainable transmitter in a first-in, first-out manner.

[0041] The present disclosure provides an architecture that enables a transmitter that is unable to communicate using a first communication protocol to be trained and then operate a movable barrier operator that communicates using the first communication protocol and a second communication protocol. The architecture provided herein solves the inherent technical problems caused by devices that are unable to communicate using the first communication protocol, and enables these devices to be learned and operated by other devices that have historically been controlled / operated using the first communication protocol. First, in order for a movable barrier operator that is currently communicating using the first communication protocol to be able to switch to a second communication protocol learning mode, a triggering event from a remote control that is currently controlling the movable barrier operator using the first communication protocol is required. Therefore, the trainable transmitter cannot simply request to be learned by the movable barrier operator on its own. Instead, the movable barrier operator needs to be placed in a second safety protocol learning mode before the movable barrier operator has the ability to learn the trainable transmitter; however, the movable barrier operator cannot enter the second communication protocol learning mode without communicating with a remote control (e.g., a remote control that is currently controlling the movable barrier operator using the first communication protocol).

[0042] The system / architecture described herein provides a technical solution to these inherent technical problems by enabling a user to initiate learning of a trainable transmitter by a movable barrier operator by providing input to a remote control and a trainable transmitter. The input provided to each of the remote control and the trainable transmitter initiates the process by causing the trainable transmitter to operate in a learning mode and causing the remote control to provide a set of communications to the movable barrier operator that causes the movable barrier operator to enter a second communication protocol learning mode, thereby enabling the movable barrier operator to communicate with the trainable transmitter using the second communication protocol and ultimately learn the trainable transmitter based on these communications that would not otherwise be possible.

[0043] refer to Figure 1 , a controllable device system 10 is provided that includes a controllable device, such as a movable barrier operator 300 installed in a garage 14. The movable barrier operator 300 is mounted to a ceiling 16 of the garage 14 and includes a track 18 along which a trolley 20 is movable. The trolley 20 has an arm 22 connected to a movable barrier, such as a garage door 24, which is positioned to move along a pair of door tracks 26 and 28. The movable barrier operator 300 is shown as a trolley-type garage door operator, but other types of movable barrier operators, such as door operators, commercial door operators, and jackshaft operators, may also be used.

[0044] The controllable device system 10 includes a remote control 200 that has been previously learned by the movable barrier operator 300. For example, the remote control 200 may be sold together with the movable barrier operator 300, or may be pre-programmed to control the movable barrier operator 300. The remote control 200 includes a user interface 201, such as one or more buttons, a touch screen, and / or a microphone. When the user interface 201 receives a user input (e.g., a button press), the remote control 200 transmits one or more signals to the movable barrier operator 300. The controllable device system 10 also includes a trainable transmitter 100 that has not yet been learned by the movable barrier operator 300. The trainable transmitter 100 includes a user interface 101, such as one or more buttons, a touch screen, and / or a microphone.

[0045] According to one embodiment, trainable transmitter 100 is integrated into interior portion 97 of vehicle 99 (e.g., a car). Interior portion 97 may include, for example, an instrument panel, a rearview mirror, a center console, a sun visor, or a roof lining, as some examples. One example of trainable transmitter 100 is a transmitter that is integrated or integral with a vehicle. In other embodiments, trainable transmitter 100 may be a handheld transmitter, such as handheld trainable transmitter 95 having user interface 96. Handheld transmitter 95 may be clipped to the visor of vehicle 99, may be attachable / detachable (e.g., ARQ TM universal transmitter), or could be a key fob (as some examples).

[0046] In addition to the remote control 200, the controllable device system 10 may also include one or more remote controls, such as an external keypad 34, a wall controller 39, and / or a user device, such as a smartphone, smart watch, or tablet. The keypad 34 is positioned on the exterior of the garage 14, has one or more buttons thereon, and is operable to control the movable barrier operator 300. The wall controller 39 is mounted on a wall inside the garage 14 and may be coupled to the movable barrier operator 300 via a wired connection 39A or wirelessly. The wall controller 39 includes a light switch 39B, a lock switch 39C, and a command switch 39D. The system 10 includes a security system, such as an optical emitter 42 and a detector 46 connected to the movable barrier operator 300 via wires 44, 48.

[0047] Reference now Figure 2 , a block diagram of trainable transmitter 100 is provided. Trainable transmitter 100 includes communication circuitry 103 having a transmitter 106 and a receiver 107 in operative communication with antennas 120 and 121, respectively. Transmitter 106 and receiver 107 are shown as distinct components, although they may be provided as a single transceiver.

[0048] The transmitter 106 and the receiver 107 are configured to wirelessly send (e.g., transmit or broadcast) radio frequency communications to the remote controller 200 and the movable barrier operator 300 using a second communication protocol, and to receive radio frequency communications from the remote controller 200 and the movable barrier operator 300. The second communication protocol may include, for example, using a specific radio frequency, frequency, or frequency band for communication, and using a specific security protocol or code format for encoding and decoding the communication. An example of the second communication protocol includes the Security+2.0 security protocol, and utilizes radio frequency communications at a frequency of 315 MHz.

[0049] The radio frequency communication transmitted by transmitter 106 includes a first fixed code (e.g., a transmitter identifier ("ID")) and a first changing code (e.g., a rolling code). In some embodiments, trainable transmitter 100 may also include other data in the radio frequency communication transmitted by transmitter 106, such as transmitter type information and button ID information. The second communication protocol may be a conventional one-way communication protocol commonly used by garage door operator manufacturers. For example, the second communication protocol may include the Security Plus and Security+2.0 security protocols used by various movable barrier operators sold by Chamberlain Group.

[0050] Trainable transmitter 100 may be operable to be programmed to operate controllable devices sold by different manufacturers using radio frequency signals of different frequencies. For example, transmitter 106 and receiver 107 may be operable to communicate at multiple frequencies, such as frequencies less than 1 GHz, including 300 MHz-400 MHz and 900 MHz radio frequency transmissions.

[0051] In some embodiments, transmitter 106 and receiver 107 may each communicate using a single antenna or multiple antennas. In one embodiment, trainable transmitter 100 has a transceiver with one or more antennas.

[0052] Trainable transmitter 100 also includes a controller 102 operatively connected to transmitter 106 and receiver 107. As some examples, controller 102 may include, for example, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic array (PLA), or a state machine. Controller 102 is configured to operate trainable transmitter 100, such as encrypting messages to be transmitted via transmitter 106 and decrypting messages received via receiver 107. Controller 102 may be configured to derive an access code, such as a fixed code and / or a varying code, from a radio frequency transmission received by receiver 107 during the training of trainable transmitter 100. For example, trainable transmitter 100 may include transmitter, and the controller 102 is operable to use The associated algorithm derives a fixed transmitter ID and a rolling code for trainable transmitter 100. Trainable transmitter 100 also includes a memory 104 for storing data, such as encryption algorithms, access codes, and transmitter identification information. Memory 104 may include, but is not limited to, RAM, ROM, EEPROM, or magnetic / optical memory.

[0053] Trainable transmitter 100 includes power source 105, such as a battery and / or an onboard power source (e.g., a vehicle accessory power bus). In one embodiment, user interface 101 includes a button that operates switch 131. Pressing the button closes switch 131 and allows power source 105 to provide power to controller 102. Controller 102 causes transmitter 106 to transmit a radio frequency transmission in response to controller 102 receiving power. In another embodiment, controller 102 continuously receives power from power source 105 during operation of vehicle 99 and monitors the signal provided by switch 131.

[0054] User interface 101 of trainable transmitter 100 may include two buttons and associated switches 131. In response to a user pressing and holding the two buttons for a predetermined period of time, controller 102 enters a training mode. Controller 102 may flash an LED of user interface 101 to indicate that trainable transmitter 100 has entered the training mode. Next, the user presses the button that the user wants to program and activates the transmitter used to train trainable transmitter 100 (i.e., the transmitter previously learned by movable barrier operator 300 that is desired to be controlled by trainable transmitter 100). Controller 102 operates receiver 107 to listen for RF communications from the previously learned transmitter. Controller 102 decodes the received RF communications, determines the previously learned transmitter information (e.g., fixed code and variable code) from the communications, and derives transmitter information (e.g., a second fixed code and a second variable code) for use by trainable transmitter 100. Trainable transmitter 100 exits the training mode and associates the derived information with the button pressed by the user after trainable transmitter 100 entered the training mode. When the user presses the now programmed button, controller 102 controls transmitter 106 to transmit a radio frequency communication including the derived fixed code and the derived changing code. Trainable transmitter 100 receives the radio frequency communication from the previously learned transmitter and broadcasts a control signal to movable barrier operator 300 using the first communication protocol. Further details regarding the programming of trainable transmitter 100 are discussed in more detail below.

[0055] Trainable transmitter 100 includes a timer 130 in communication with or as a component of controller 102. Controller 102 may utilize timer 130 to exit training mode after a predetermined period of time. Various embodiments of trainable transmitter 100 may be utilized. For example, trainable transmitter 100 may be operated in response to vehicle 99 entering / leaving a geo-fenced area. As another example, user interface 101 may include a touch screen of vehicle 99, and trainable transmitter 100 transmits a control signal in response to a user pressing a virtual button displayed on the touch screen.

[0056] Reference now Figure 3 , a block diagram of a remote control 200 is provided. The remote control 200 includes a communication circuit 203 having a first transmitter 206 and a first receiver 207 in operative communication with antennas 220 and 221, respectively. The first transmitter 206 and the first receiver 207 are shown as distinct components, although they may be provided as transceivers.

[0057] The first transmitter 206 and the first receiver 207 are configured to wirelessly broadcast transmissions to and receive transmissions from the movable barrier operator 300 using a first communication protocol. The first communication protocol may utilize one or more security protocols disclosed in US Pat. No. 10,652,743.

[0058] The first communication protocol may be a two-way protocol, while the second communication protocol used by trainable transmitter 100 may be a conventional one-way protocol. For example, the second communication protocol may utilize the security protocol disclosed in U.S. Pat. No. 7,071,850, the entire contents of which are incorporated herein by reference. Trainable transmitter 100 may not be able to communicate using the first communication protocol with remote control 200 and movable barrier operator 300. Therefore, trainable transmitter 100 may not be able to derive fixed codes (e.g., transmitter ID) and changing codes (e.g., rolling codes) from radio frequency communications transmitted using the first communication protocol.

[0059] The second communication protocol may include communicating using one or more frequencies, channels, frequency bands and / or radio physical layers or protocols, including but not limited to, for example, 300 MHz-400 MHz, 900 MHz, 2.4 GHz, Bluetooth and / or Bluetooth Low Energy (BLE).

[0060] The communication circuit 203 of the remote control 200 includes a second transmitter 208 operatively connected to the antenna 222. The second transmitter 208 is configured to transmit radio frequency signals to the movable barrier operator 300 and the trainable transmitter 100 using a second communication protocol. The remote control 200 may include a second receiver 209 operatively connected to the antenna 223 and configured to receive signals via the second communication protocol. The second transmitter 208 and the second receiver 209 are shown as different components, although they may be provided as transceivers. In another embodiment, the remote control 200 may have a single transmitter operable to transmit using the first communication protocol and the second communication protocol and a single receiver operable to receive using the first communication protocol and the second communication protocol. In yet another embodiment, the transmitter and receiver of the remote control 200 may be provided as a single transceiver operable to transmit and receive communications via the first communication protocol and the second communication protocol.

[0061] In one embodiment, the remote controller 200 (more specifically, the controller 202) has multiple modes of operation. For example, the controller 202 may have a learning mode in which the controller 202 operates the first transmitter 206 and the first receiver 207 to communicate with the movable barrier operator 300 and facilitate the movable barrier operator 300 to learn the remote controller 200 (e.g., at a factory). The controller 202 may enter the learning mode in response to the remote controller 200 broadcasting a message to the movable barrier operator 300 and the remote controller 200 receiving a message from the movable barrier operator 300 indicating that the movable barrier operator 300 is ready to learn the remote controller 200.

[0062] The controller 202 also has a normal operating mode for communicating with the movable barrier operator 300 after the movable barrier operator 300 has learned the remote controller 200. In the normal operating mode, the controller 202 operates the first transmitter 206 to transmit radio frequency communications via the first communication protocol in response to user input at the user interface 201. The controller 202 may remain in the normal operating mode unless a predetermined user input is received at the user interface 201 causing the controller 202 to be temporarily reconfigured to a second operating mode (e.g., a conventional training mode).

[0063] In the conventional training mode, the controller 202 responds to the user interface 201 ( Figure 1 ) at a specific user input, operates the first transmitter 206 and the first receiver 207 to transmit and receive radio frequency communications via a first communication protocol, and additionally operates the second transmitter 208 and the second receiver 209 to transmit and receive radio frequency communications via a second communication protocol.

[0064] In one example, the specific user input is that the user presses and holds a button of the user interface 201 for a duration greater than or equal to a threshold duration. In this example, the controller 202 measures the duration that the button is pressed / held, and if the controller 202 determines that the button is pressed / held for a duration less than the threshold duration, the controller 202 defaults to a normal operating mode. In some examples, when the user initially presses the button of the user interface 201, the controller 202 is in the normal operating mode. In the normal operating mode, the controller 202 causes the first transmitter 206 and the first receiver 207 to transmit and receive radio frequency communications via a first communication protocol. However, once the controller 202 determines that the user presses / holds the button for a duration equal to or greater than the threshold duration, the controller 202 reconfigures / changes to a conventional training mode and causes the second transmitter 208 to send (e.g., transmit or broadcast) radio frequency communications via a second communication protocol.

[0065] Remote control 200 includes a power source 205 (e.g., a battery), a memory 204, a clock or timer 230, and a switch 231, which are similar in many respects to corresponding components of trainable transmitter 100. For example, memory 204 may store transmitter information including a fixed code that identifies remote control 200. The fixed code may be a globally unique identifier (GUID) of remote control 200. The memory may also store information about transmitter type, button IDs, and change code information and algorithms. In embodiments where the first communication protocol is a two-way communication protocol, timer 230 may include a clock for measuring time windows for receiving and broadcasting communications.

[0066] Reference now Figure 4 In one example, the movable barrier operator 300 includes a controller 302 in communication with a memory 304 and configured to store data to and retrieve data from the memory 304 and to process data and execute commands. A power source 305 (e.g., an AC power circuit or outlet and / or a battery) provides power to the controller 302 to allow operation.

[0067] The movable barrier operator 300 also includes a communication circuit 303 having a first transmitter 306 and a first receiver 307 in operative communication with the controller 302. The first transmitter 306 and the first receiver 307 may be provided as a transceiver. The first transmitter 306 and the first receiver 307 are capable of communicating radio frequency signals with the remote control 200 via a first communication protocol. As shown, the first transmitter 306 communicates with the first antenna 320, and the first receiver 307 communicates with the second antenna 321, but both the first transmitter 306 and the first receiver 307 may communicate with a single antenna or multiple antennas.

[0068] Movable barrier operator 300 also includes a second receiver 309 in communication with antenna 323. Second receiver 309 and antenna 323 are configured to receive radio frequency communications from trainable transmitter 100 and remote control 200 via a second communication protocol. In one embodiment, the second communication protocol is a conventional one-way communication protocol. Communication circuit 303 may include a second transmitter 308 in communication with antenna 322. In one embodiment, second receiver 309 and antenna 323 receive control commands from trainable transmitter 100 via the second communication protocol, and second transmitter 308 and antenna 322 transmit door status information to trainable transmitter 100 via the second communication protocol.

[0069] The movable barrier operator 300 also includes a third transmitter 310 and a third receiver 311 in operative communication with the controller 302. The third transmitter 310 and the third receiver 311 are capable of transmitting and receiving communications, respectively, using a third communication protocol. As shown, the third transmitter 310 communicates with the fifth antenna 324, and the third receiver 311 communicates with the sixth antenna 325, but the third transmitter 310 and the third receiver 311 can both communicate with a single antenna or multiple antennas. The third transmitter 310 and the third receiver 311 can be provided as transceivers. For example, the third transmitter 310 and the third receiver 311 can be provided as Wi-Fi transceivers or other wide area communication interfaces (e.g., cellular radios). The communication circuit 303 may include an I / O interface for wired communication, such as signals from the wall controller 39, the optical transmitter 42, and the optical detector 46. The movable barrier operator 300 may also include a timer 330 in communication with the controller 302 or as a component of the controller 302. In one example, timer 330 includes a clock for measuring a time window for receiving and broadcasting communications.

[0070] The controller 302 of the movable barrier operator 300 is connected to the motor 340 and can operate the motor 340 to perform operations such as opening or closing a garage door; sliding, swinging, or rotating a door; or otherwise moving or repositioning the movable barrier. Figure 1 ) may include one or more buttons operatively connected to one or more switches 331. The buttons may be used, for example, to reconfigure the controller 302 to a first communication protocol learning mode, wherein the controller 302 may learn a remote control 200 that communicates using the first communication protocol.

[0071] In one embodiment, controller 302 has a second communication protocol learning mode in which controller 302 can learn a trainable transmitter 100 that communicates using a second communication protocol. However, the second communication protocol learning mode is not initiated by a user via the user interface. Instead, controller 302 enters the second communication protocol learning mode in response to a previously learned remote control 200 broadcasting a radio frequency communication via the first communication protocol, as discussed in more detail below. In this embodiment, the user will not be able to cause controller 302 to enter the second communication protocol learning mode by pressing a learning mode button of user interface 301.

[0072] refer to Figure 5 , a method 400 of operating a movable barrier operator 300 using a trainable transmitter 100 via a second communication protocol is provided. The trainable transmitter 100 has been previously used by the movable barrier operator 300 as described below with respect to 9A to 9F Discussion method to learn. Figure 5 In an embodiment, the second communication protocol includes the Security+2.0 code format (abbreviated as "SP2.0").

[0073] Method 400 includes, at 402, user 50 providing a user input (e.g., a button press) to user interface 101 of trainable transmitter 100. Optionally, at 404, trainable transmitter 100 indicates to user 50 that trainable transmitter 100 is sending a signal (e.g., transmitting or broadcasting), such as by illuminating an LED of trainable transmitter 100.

[0074] Method 400 also includes trainable transmitter 100 sending (e.g., transmitting or broadcasting) a signal using a second communication protocol, such as a radio frequency communication, at 406. The radio frequency communication includes a message including a command configured to cause movable barrier operator 300 to perform an operation, such as moving a movable barrier (e.g., garage door 24) between an open position and a closed position.

[0075] The command transmitted by trainable transmitter 100 using the second communication protocol at operation 406 is received by movable barrier operator 300. Method 400 optionally includes, at 408, movable barrier operator 300 providing an indication to user 50 that a message / command has been received from trainable transmitter 100. In one embodiment, providing the indication at 408 includes movable barrier operator 300 flashing an LED of movable barrier operator 300.

[0076] At 410, movable barrier operator 300 executes a command (eg, a command in a message received from trainable transmitter 100), such as by operating motor 340 (see Figure 4 ) Position the garage door 24 (see Figure 1) changes from a first position to a second position (e.g., from an open position to a closed position or from a closed position to an open position).

[0077] At 412, user 50 deactivates trainable transmitter 100 by, for example, removing the user input provided at 402 (e.g., user 50 releases the button on trainable transmitter 100 from operation 402). For example, the user no longer provides user input, causing trainable transmitter 100 to stop sending messages using the second communication protocol. That is, the user may press a button of trainable transmitter 100 (i.e., provide user input) at 402 and release the button at 412. Optionally, at 414, trainable transmitter 100, in response to the deactivation at 412, indicates that trainable transmitter 100 is no longer sending messages (e.g., no longer transmitting or broadcasting radio frequency communications using the second communication protocol).

[0078] refer to Figure 6 , a method 500 of operating a movable barrier operator 300 with a remote controller 200 via a first communication protocol is provided (e.g., when the remote controller 200 is in a normal operating mode). As described above, the remote controller 200 has a normal operating mode for communicating with the movable barrier operator 300 after the movable barrier operator 300 has learned the remote controller 200. When the remote controller 200 is in the normal operating mode, the controller 202 of the remote controller 200 operates the first transmitter 206 to transmit radio frequency communications via the first communication protocol in response to user input at the user interface 201. The remote controller 200 may remain in the normal operating mode unless a predetermined user input is received at the user interface 201, causing the controller 202 to be temporarily reconfigured to operate in a second operating mode (e.g., a conventional training mode).

[0079] The method 500 includes, at 502, the user 50 providing a user input to the user interface 201 of the remote control 200. In one example, the user input at 502 is the user pressing a button of the remote control 200. In one example, at operation 504, the remote control 200 indicates that the remote control 200 is connecting to the movable barrier operator 300.

[0080] At 506, the remote control 200 sends (e.g., transmits or broadcasts) a communication, e.g. Low Energy (“BLE”) notification, and the movable barrier operator 300 responds to the receipt of the communication by sending (e.g., transmitting or broadcasting) information to establish a BLE connection at 508. In this example, operations 506 and 508 are performed according to a first communication protocol. In one example, at operation 510, the remote control 200 provides an indication (e.g., a notification) that the remote control 200 is connected to the movable barrier operator 300.

[0081] Thus, at 506, the movable barrier operator 300 detects the announcement sent from the remote control 200, and at 508, the movable barrier operator connects to the remote control 200 using the first communication protocol. In one embodiment, the operations at 506 and 508 are performed using a long-term key previously established as part of a public / private key exchange. In another example, at 510, the remote control 200 provides an indication to the user 50 that the remote control 200 has connected to the movable barrier operator 300.

[0082] At 512, the remote control 200 and the movable barrier operator 300 exchange information to establish a BLE operation mode at 513. At 514, the remote control 200 and the movable barrier operator 300 transmit a message including a fixed code and a variable code to authenticate the remote control 200 and the movable barrier operator 300, as described below with respect to Fig. 8A and Figure 8B After successfully exchanging messages, at 516, the movable barrier operator 300 performs the requested action, such as closing the garage door 24 (eg, Figure 1 as shown) moves from an open position to a closed position or from a closed position to an open position.

[0083] In some examples, the method 500 includes additional operations performed according to the configuration of the remote control 200. In one example, the remote control 200 supports transmitter statistics. In this example, the method 500 includes, at 518, transmitting BLE statistics, and at 520, the movable barrier operator 300 transmits the statistics to a remote device (e.g., the server computer 75). In another example, the remote control 200 supports BLE confirmation. In this example, at 522, the movable barrier operator 300 transmits a BLE confirmation to the remote control 200. In yet another example, the remote control 200 supports a bidirectional exchange of broadcast parameters. In this example, the method 500 includes, at 524, transmitting broadcast parameters between the remote control 200 and the movable barrier operator 300.

[0084] At 516, after the movable barrier operator 300 performs the requested action, at operation 526, the movable barrier operator 300 is disconnected from the remote control 200. In one example, at 528, the remote control 200 provides an indication that the movable barrier operator 300 has been disconnected from the remote control 200, and thus, at 530, the remote control 200 begins re-advertising.

[0085] refer to Fig. 7A and Figure 7B, a method 700 of pairing a remote control 200 with a movable barrier operator 300 using a first communication protocol is provided. At 702, the user 50 places the movable barrier operator 300 in a first communication protocol learning mode, for example, by pressing a button of a user interface 301 of the movable barrier operator 300. In one example, at 704, the movable barrier operator 300 transmits a message to the server computer 75. In this example, the message indicates that the movable barrier operator 300 has been placed in the first communication protocol learning mode. In one example, at 706, the movable barrier operator 300 provides an indication to the user 50 that the movable barrier operator 300 has entered the first communication protocol learning mode, for example, by flashing an LED of the user interface 301.

[0086] At 708, the user 50 activates the remote control 200 by providing a user input to the user interface 201 of the remote control 200. At 710, when the movable barrier operator 300 is in the first communication protocol learning mode, the remote control 200 sends (e.g., transmits or broadcasts) a notification using the first communication protocol to the movable barrier operator 300. In one example, at 712, the remote control 200 provides an indication to the user 50 that the remote control 200 is connecting to the movable barrier operator 300.

[0087] At 714, the movable barrier operator 300 connects to the remote control 200 using the first communication protocol. In one example, at 716, the remote control 200 provides an indication to the user 50 that the remote control 200 has connected to the movable barrier operator 300, such as by flashing an LED or displaying a message via a touch screen display of the user interface 201 of the remote control 200.

[0088] At 718, the remote control 200 and the movable barrier operator 300 transmit BLE receiver information, and then at 719, a first communication protocol (e.g., SP3.0 BLE learning mode) is initiated. For example, the first communication protocol learning mode is a two-way exchange of Sec+3 messages (see operation 728 "4x" messages) that are wireless agnostic. In some examples, communication is performed via Directed to Sec+3. In some examples, operation 719 is used for traditional Pairing process to establish a secure BT channel before Sec+3 message exchange.

[0089] The remote control 200 and the movable barrier operator 300 perform a public / private key exchange at 720, perform a credential verification at 722, perform a challenge at 726, and then exchange messages containing fixed codes and changing codes at 728. In one example, at 722, the credential verification includes the movable barrier operator 300 verifying the certificate of the remote control 200. In one embodiment, the credential verification at 722 includes initiating communication between the movable barrier operator 300 and the server computer 75 at 724 regarding whether the certificate of the remote control 200 has been revoked.

[0090] Upon successful completion of operations 720 to 728, the movable barrier operator 300 transmits a long-term key "LTK" to the remote control 200, which the movable barrier operator 300 and the remote control 200 use to encrypt and decrypt subsequent communications. The movable barrier operator 300 learns the remote control 200 by storing a fixed code (e.g., a fixed identifier) ​​and a changing code (e.g., a rolling / variable code) of the remote control 200 in the memory 304 of the movable barrier operator 300. For example, the controller 302 of the movable barrier operator 300 adds the fixed code and the changing code of the remote control 200 to a white list maintained by the controller 302 of the movable barrier operator 300. At 732, the movable barrier operator 300 transmits the fixed code of the remote control 200 to the server computer 75 to indicate to the server computer 75 that the movable barrier operator 300 has learned the remote control 200. At 734, the BLE learning mode is completed, and the movable barrier operator 300 is disconnected from the remote control 200.

[0091] In some examples, at 730, the movable barrier operator 300 transmits an indication to the user 50 that the remote control 200 has been learned by the movable barrier operator 300, such as by flashing a light of the movable barrier operator 300. In some examples, at 736, the indication is transmitted once the remote control 200 is disconnected from the movable barrier operator 300. In some examples, at 738, the remote control 200 re-announces, at 740 the movable barrier operator 300 transmits a message to the server computer 75 that the movable barrier operator 300 has completed learning of the remote control 200, and at 742, the movable barrier operator 300 transmits to the user 50 that the first communication protocol learning mode has ended.

[0092] Fig. 8A and Figure 8B 1 is an interrelated flow chart illustrating steps of an example of a process for exchanging signals between a first device (eg, remote control 200 ) and a second device (eg, movable barrier operator 300 ) to verify authorization and perform an activity. Fig. 8A and Figure 8BThe steps on the left side of the center dashed line 1020 in FIG. 1 are related to the remote controller 200, while the steps on the right side of the center dashed line 1020 are related to the movable barrier operator 300. In this example, a previous operation (e.g., a learning process or an operation procedure) has been previously performed so that each of the remote controller 200 and the movable barrier operator 300 stores information received from each other.

[0093] More specifically, the remote controller 200 has stored in the memory 204 a first fixed code of the remote controller 200, a change code of a first version (e.g., current version) of the remote controller 200, a second fixed code of the movable barrier operator 300, and a change code of the movable barrier operator 300 when the movable barrier operator 300 was most recently operated by the remote controller 200. Similarly, the movable barrier operator 300 has stored in the memory 304 a second fixed code of the movable barrier operator 300, a change code of a second version (e.g., current version) of the movable barrier operator 300, the first fixed code of the remote controller 200, and a change code of the remote controller 200 when the movable barrier operator 300 was most recently operated by the remote controller 200.

[0094] At 1001, the remote control 200 evaluates whether the remote control 200 has been activated. For example, the remote control 200 determines that the user has pressed a button on the user interface 201 of the remote control 200, thereby completing a circuit or implementing a measurable change in at least one component of the remote control 200. When the remote control 200 has not been activated, it continues to wait for activation.

[0095] Once activated, the remote control 200 sends (e.g., transmits or broadcasts) a first message at 1003, the first message including at least a first fixed code and a first version of a change code. In some examples, the first version of the change code represents a modification of a change code in an immediately previous operation. In some examples, sending (e.g., transmitting or broadcasting) the first message at 1003 includes encrypting the first fixed code and / or the first version of the change code. In some embodiments, the encryption includes using a predetermined number of bits of the first version of the change code as a basis for selecting a specific data bit sequence pattern and a specific data inversion pattern. At 1005, the remote control 200 specifies or determines an offset code position of an expected response (in this example, a position in a second message to be sent from the movable barrier operator 300, wherein the position is offset from the preamble or header of the second message and is where the fixed code and the change code from the movable barrier operator 300 are located). In some examples, the determination at 1005 occurs before or after the remote control 200 sends (e.g., transmits or broadcasts) the first message at 1003. In some embodiments, the remote control 200 determines the offset code position before generating the first message sent (eg, transmitted or broadcast) at 1003 , and information about the offset code position is used to generate the first message.

[0096] In some examples, the remote control 200 generates a first message (or a portion thereof) and then determines the offset position based on features of the first message. In some embodiments, the offset code position is determined randomly (e.g., using a random or pseudo-random number generator) or based on at least a portion of the first encrypted message or at least a portion of the unencrypted changing code, or both. In some examples, the offset code position is determined based on a fixed code or other portion of an encrypted or unencrypted version of the first message.

[0097] At 1002, the movable barrier operator 300 is in an operational mode and waits for a signal to affect an action, and upon receiving a first message from the remote control 200 at 1004, the movable barrier operator 300 decrypts the first message to obtain a first fixed code and a first version of a variable code. The movable barrier operator 300 stores the first fixed code and the first version of the variable code in the memory 304, and verifies the first fixed code and the first version of the variable code at 1006 by comparing the first fixed code and the first version of the variable code with the stored code values. For example, at 1006, the first fixed code and the first version of the variable code from the encrypted first message are compared with the stored first fixed code and the stored variable code from a previous operation (e.g., stored in the memory 304). If the first fixed code matches the stored first fixed code from the previous operation, and the first version of the variable code from the encrypted first message matches the stored variable code modified according to a set of established rules for variable codes / variable codes (e.g., matches a subsequent value from a predetermined sequence or algorithm), the encrypted first message is deemed to be verified.

[0098] If the first fixed code and the first version of the change code from the encrypted first message do not match the stored first fixed code and the stored change code from a previous operation, the movable barrier operator 300 ignores the first message and waits for further signals at 1002. On the other hand, if the first fixed code and the first version of the change code from the encrypted first message match the stored first fixed code and the stored change code from a previous operation and are therefore deemed valid at 1007, the movable barrier operator 300 determines at 1008 an offset code position based on the encrypted first message in which to include at 1010 the second fixed code and the second version of the change code in a response to be sent (e.g., transmitted or broadcast) by the movable barrier operator 300.

[0099] In response to verifying the encrypted first message, and after determining the offset code position, the movable barrier operator 300 sends (e.g., transmits or broadcasts) a response in the form of a second message at 1010. The second message includes an encrypted second message that includes a second fixed code and a second version of a change code (e.g., that is, in the illustrated embodiment, independent of the first change code and representing a modified version of the change code from the immediately previous operation). The second fixed code and the second version of the change code are located at the offset code position determined within the second message so that a device (e.g., remote control 200) receiving the second message can correctly locate the offset code position and accurately determine the second fixed code and the second version of the change code. In one example, at this stage, the memory 304 of the movable barrier operator 300 contains a previous first fixed code and a previous first change code from a previous operation, a previous second fixed code and a previous second change code from a previous operation, a version of the first fixed code and the change code from the encrypted first message transmitted by the remote control 200 at operation 1003, and a second fixed code and a second version of the change code from the response transmitted by the movable barrier operator 300 at operation 1010.

[0100] At 1011, the remote controller 200 receives and decrypts the encrypted second message, which includes the second fixed code and the second version of the change code. The remote controller 200 determines where to locate the second fixed code and the second version of the change code by identifying the location of the second fixed code and the second version of the change code on the encrypted version of the second message, and then decrypting all or part of the second message to display the second fixed code and the second version of the change code, or by first decrypting the second message and then identifying the location of the second fixed code and the second version of the change code.

[0101] If the remote controller 200 has not determined the same offset code position as the movable barrier operator 300 determined when creating the encrypted second message, the remote controller 200 cannot locate the beginning of the offset portion and therefore cannot correctly read the second fixed code and the second version of the change code from the encrypted second message.

[0102] However, if the remote control 200 has determined or otherwise knows, retrieves, or uses the appropriate offset code position of the encrypted second message, the remote control 200 can successfully identify the second fixed code and the second version of the change code and store the second fixed code and the second version of the change code, the previous second fixed code and the previous second change code from the previous operation, and the first fixed code and the first version of the change code from the encrypted first message in the memory 204 of the remote control 200. In one example, for example, after the second fixed code and the second version of the change code are stored in the memory 204 of the remote control 200, the first fixed code and the first version of the change code from the first message are no longer needed and are deleted from the memory 204 of the remote control 200.

[0103] At 1012, the remote control 200 compares the second fixed code and the second version of the change code with the previous fixed code and the previous change code of the previous operation (e.g., the most recent operation) stored in the memory 204 of the remote control 200. If the second fixed code matches the previous fixed code from the previous operation, and the second version of the change code matches the previous change code from the previous operation modified according to a set of established rules for change codes / variable codes, then the encrypted second message is verified. If it is determined at 1013 that the second fixed code and the second version of the change code are valid, then at 1014, the remote control 200 sends (e.g., transmits or broadcasts) an encrypted third message that includes at least the first fixed code and a modified version of the second version of the change code. If the remote control 200 cannot verify the encrypted second message from the movable barrier operator 300, then the process ends and the remote control 200 returns to waiting for subsequent activation 1001.

[0104] In some examples, the positions of the modified versions of the first fixed code and the second version of the change code are offset within the encrypted third message based on information from the first message or the second message, in a manner similar to offsetting information within the second message based on information from the first message as described above, and the offsets of the modified versions of the first fixed code and the second version of the change code in the encrypted third message are the same as or different from the offsets of the second fixed code and the second version of the change code in the second message.

[0105] At 1015, when the movable barrier operator 300 receives the encrypted third message, the movable barrier operator 300 decrypts the encrypted third message to determine the modified version of the first fixed code and the second version of the change code. If the first fixed code and the modified version of the second version of the change code are offset within the encrypted third message, the movable barrier operator 300 also determines the location of the modified version of the first fixed code and the second version of the change code. The values ​​of the modified version of the first fixed code and the second version of the change code are stored in the memory 304 of the movable barrier operator 300, which now contains the previous first fixed code and the previous first change code from the previous operation, the first fixed code and the first version of the change code from the first encrypted transmission, the previous second fixed code and the previous second change code from the previous operation, the second fixed code and the second version of the change code from the encrypted second message (response), and the modified version of the first fixed code and the second version of the change code from the encrypted third message. The movable barrier operator 300 then compares the modified version of the first fixed code and the second version of the changed code with a stored code value including the first fixed code and the unmodified second changed code at 1016 to verify the encrypted third message at 1017 .

[0106] In some examples, the verification step at 1017 has a look-ahead window of acceptable values ​​(verification occurs when the received version of the change code / variable code is any of the next several (e.g., twelve) values ​​expected in the sequence), and security is further improved by reducing the size of the look-ahead window or eliminating it entirely. Thus, in some embodiments, the encrypted third message passes verification only if it contains the next variable code value in the sequence. If the encrypted third message passes verification, the movable barrier operator 300 performs the requested action associated with the activation of the remote control 200 (at 1001) at 1018. If the movable barrier operator 300 cannot verify the encrypted third message, the movable barrier operator 300 ends the process without performing the requested action and returns to waiting for a signal from the remote control 200 at 1002. In some examples, the requested action is to open or close the movable barrier.

[0107] refer to 9A to 9F , a method 800 is provided for causing a movable barrier operator 300 to learn a trainable transmitter 100 using a remote control 200 as an auxiliary device. In this example, before the method 800 begins, the remote control 200 has been pre-learned by the movable barrier operator 300, such as by being programmed by a manufacturer or a user 50 performing the method 700. In reference to 9A to 9F In the described example, trainable transmitter 100 communicates using the second communication protocol, while remote controller 200 communicates using both the first communication protocol and the second communication protocol. 9A to 9F In the embodiment of FIG. 1 , trainable transmitter 100 is a transmitter integrated into a vehicle (eg, vehicle 99 ), such as as a component of a dashboard or rearview mirror.

[0108] In one example, if user 50 is training trainable transmitter 100 for the first time, user 50 provides user input to user interface 101 of trainable transmitter 100 at 802. In some examples, the user input causes any information stored in memory 104 of trainable transmitter 100 to be erased. In one example, the user input is pressing a predetermined pattern of buttons or locations on user interface 101, which causes all configuration information stored in memory 104 to be erased. In another example, the user presses a button for a predetermined duration, which causes all configuration information stored in memory 104 to be erased.

[0109] At 804, trainable transmitter 100 provides an indication to user 50, such as by flashing an LED, that any configuration saved in trainable transmitter 100 has been erased from memory 104 of trainable transmitter 100. In some examples, at 806, after trainable transmitter 100 has indicated to user 50 that any configuration stored in memory 104 of trainable transmitter 100 has been erased (e.g., a predetermined time period has been reached), the user releases the button held on user interface 101 to erase the configuration information from memory 104.

[0110] In some examples, a previously learned remote control 200 is positioned proximate to trainable transmitter 100, such as one to three inches from an outer surface of remote control 200, to facilitate training of trainable transmitter 100. At 808, user 50 provides user input to trainable transmitter 100 via user interface 101 to initiate a training mode of trainable transmitter 100, such as by pressing and holding a button on user interface 101 of trainable transmitter 100, so that trainable transmitter 100 can be trained to properly communicate with and operate movable barrier operator 300. At 809, controller 102 of trainable transmitter 100 causes receiver 107 to listen for radio frequency communications transmitted using a second communication protocol. In some examples, at 810, trainable transmitter 100 provides an indication to user 50 that trainable transmitter 100 is ready for programming, such as by flashing an LED.

[0111] Concurrently with providing user input to trainable transmitter 100 at 808, user 50 provides a second user input to remote control 200 at 812, such as pressing and holding a button on user interface 201 of remote control 200. In some examples, the button pressed at 812 is the same button that was previously programmed to operate movable barrier operator 300.

[0112] In response to user 50 providing the second user input at 812, remote control 200 initially communicates with movable barrier operator 300 via radio frequency communications utilizing the first communication protocol at 814. For example, although receiver 107 of trainable transmitter 100 is listening, trainable transmitter 100 is unable to decipher radio frequency communications utilizing the first communication protocol because receiver 107 of trainable transmitter 100 is listening for radio frequency communications utilizing the second communication protocol. For example, antenna 121 of trainable transmitter 100 is not tuned to receive signals at the frequency of the first communication protocol, and receiver 107 is not programmed to understand signals transmitted via the first communication protocol.

[0113] In one embodiment, Fig.9D The communication at 814 is above Fig. 8A and Figure 8B A series of two-way communications of method 1000 discussed in.

[0114] Steering Fig.9D At 814, the remote controller 200 transmits (eg, using a first communication protocol) an access code including a fixed code and a variable code to the movable barrier operator 300, as described above with reference to Fig. 8A and Figure 8B The movable barrier operator 300 stores the fixed code and the changing code received from the remote control 200 during the two-way operation in the memory 304. Once the message is authenticated, the movable barrier operator 300 decrypts the message transmitted by the remote control 200 using the first communication protocol and performs 816 the action requested by the message, such as but not limited to moving the movable barrier (e.g., garage door 24) from the first position to the second position.

[0115] As described above, when remote control 200 transmits the access code at 814, trainable transmitter 100 does not respond to the communication because the communication is conducted using the first communication protocol and receiver 107 of trainable transmitter 100 is listening for communications conducted using the second communication protocol.

[0116] In addition to performing the requested action at 816, at 818, the movable barrier operator 300 initiates a second communication protocol learning mode (i.e., communicating with the Fig. 7A and Figure 7BIn some examples, the second communication protocol learning mode is initiated when the movable barrier operator receives an access code from the remote control 200, when the movable barrier operator verifies a request to perform an action, or when the movable barrier operator 300 performs a requested action. In another example, the second communication protocol learning mode is initiated in response to the movable barrier operator 300 receiving an authorization communication via the first communication protocol (e.g., from the remote control 200) and receiving a communication via the second communication protocol (e.g., from the remote control 200).

[0117] In the second communication protocol learning mode, the movable barrier operator 300 derives a second access code from the access code (e.g., the fixed code and the most recently changed code) received from the remote controller 200 according to the communication at 814. The movable barrier operator 300 may derive the second access code by decrypting the communication from the operation at 814, parsing / identifying the fixed code and the most recently changed code from the communication from the operation at 814, and using a derived version of the fixed code and / or a derived version of the most recently changed code using a predetermined mathematical relationship, such as appending or prepending a value to the fixed code and calculating a modified version of the changed code based on the changed code from the remote controller 200, thereby deriving the second access code. The predetermined mathematical relationship in this process is programmed / stored in the memory 304 of trainable transmitter 100 and the memory 304 of movable barrier operator 300, so that trainable transmitter 100 can calculate the derived second access code based on the communication at 820 (which uses the second communication protocol), and movable barrier operator 300 can calculate the derived second access code based on the communication at 814 (which uses the first communication protocol). Therefore, if / when movable barrier operator 300 subsequently receives a radio frequency communication transmitted by trainable transmitter 100 via the second communication protocol, and the communication includes the derived second access code, movable barrier operator 300 will learn trainable transmitter 100.

[0118] In some examples, deriving the second access code at 818 includes controller 302 of movable barrier operator 300 deriving the expected fixed code from the fixed code in the communication at 814, such as by appending or prepending a value to the fixed code from the communication at 814. In some examples, the deriving also includes controller 302 of movable barrier operator 300 deriving the expected changing code from the changing code in the communication at 814. For example, if the changing code received by movable barrier operator 300 from the communication at 814 is a rolling code value, the derived changing code is the next rolling code incremented by an algorithm known by trainable transmitter 100 and movable barrier operator 300.

[0119] In some examples, while communications at 814 are sent and received according to the first communication protocol, the movable barrier operator 300 begins listening for radio frequency communications using the second communication protocol at operation 818. In this manner, receiving an authorization command via one communication protocol (e.g., the first communication protocol) at 814 triggers a learning mode of the movable barrier operator 300 for a different communication protocol (the second communication protocol) at 818.

[0120] refer to Fig. 9C and Fig.9D , the controller 202 of the remote controller 200 (see Figure 3 ) measures the duration of the user 50 providing the user input at 812, such as by measuring the duration of a button press on the user interface 201. At 821, once the controller 202 determines that the user 50 has provided the user input for a predetermined period of time, such as but not limited to greater than ten seconds, at 820, the controller 202 of the remote control 200 controls the second transmitter 208 to send (e.g., transmit or broadcast) a radio frequency communication via a second communication protocol. The radio frequency communication at 820 includes an access code, such as a fixed code 820A, a variable code 820B, and an optional payload 820C, such as a set of parameters. The payload 820C may include, for example, a portion of a Wiegand credential, a switch value, an on-pattern value, an off-pattern value, and / or a toggle-pattern value.

[0121] refer to Fig.9D , before the movable barrier operator 300 receives the communication from the remote controller 200 at 820, or in some examples, as a result of the movable barrier operator 300 receiving the communication from the remote controller 200 at 820, the movable barrier operator 300 is in the second communication protocol learning mode. Although the movable barrier operator 300 is in the second communication protocol learning mode, the movable barrier operator 300 has already learned the remote controller 200 as a first communication protocol device, considering that the communication at 820 contains the same access code or substantially the same access code as that contained in the communication at 814, and the access code is not a derived second access code, and therefore the movable barrier operator 300 does not learn the remote controller 200 as a second communication protocol device. For example, the communication at 820 contains an access code, and in some examples, the access code includes a fixed code of the remote controller 200 and a recently changed code from the communication at 814. Therefore, when the movable barrier operator 300 is in the learning mode of the second communication protocol, the communication at 820 from the remote control 200 lacks the derived second access code expected by the movable barrier operator 300. Therefore, at 823, the movable barrier operator 300 ignores the communication at 820 from the remote control 200.

[0122] refer to Fig. 9C, since trainable transmitter 100 is in training mode, trainable transmitter 100 is listening for radio frequency communications sent (e.g., transmitted or broadcast) via the second communication protocol. Thus, while movable barrier operator 300 ignores communications at 820 from remote control 200, trainable transmitter 100 is listening for such communications and thus receives communications from operation at 820 sent (e.g., transmitted or broadcast) from remote control 200 using the second communication protocol and decodes the communications from operation at 820 at 825. In one example, decoding at 825 includes identifying a frequency, a code format, a fixed code 825A (e.g., a transmitter ID), a variable code 825B, a payload 825C, and / or a switch ID.

[0123] In some examples, decoding at 825 includes performing operations involved in setting up trainable transmitter 100 to be able to control movable barrier operator 300 based on information received from remote control 200 (e.g., communications from operation at 820). Decoding at 825 includes deriving, by trainable transmitter 100, a second access code derived from the access code communicated at 820. The derivation of the second access code includes the same derivation operations as those performed by movable barrier operator 300 at operation 818. For example, trainable transmitter 100 derives the second fixed code and the second varying code based on fixed code 820A and varying code 820B of the communication at 820.

[0124] Once trainable transmitter 100 is programmed using the information sent from remote control 200 at 820, trainable transmitter 100 provides an indication to user 50 that trainable transmitter 100 has been programmed, such as by flashing an LED, at 822. In some examples, user 50 removes the user input at user interface 101 of trainable transmitter 100 (e.g., stops providing the user input) at 824, such as by releasing a button that user 50 was holding on user interface 101 of trainable transmitter 100. In some examples, user 50 also removes the user input at user interface 201 of remote control 200 (e.g., stops providing the user input) at 826.

[0125] At 828 (e.g., after trainable transmitter 100 has been learned / trained), user 50 provides user input to trainable transmitter 100 to send a command signal to movable barrier operator 300, such as by pressing a button on user interface 101 that has now been trained to operate movable barrier operator 300. At 830, trainable transmitter 100 sends (e.g., transmits or broadcasts) a communication via a second communication protocol. The communication at 830 includes a second access code adapted or derived from the access code of the communication at 820. For example, the communication at 830 includes fixed code 830A, varying code 830B, and payload 830C, which correspond to fixed code 820A, varying code 820B, and payload 820C, respectively.

[0126] At 831, movable barrier operator 300 receives a communication from trainable transmitter 100. In one example, if movable barrier operator 300 is still in the second communication protocol learning mode initiated at operation 818, movable barrier operator 300 learns 832 trainable transmitter 100 because communication 830 includes a derived second access code (e.g., a derived fixed code and a derived changing code) expected by movable barrier operator 300. In one example, the derived second access code includes a transmitter ID (e.g., 00011) including a value (1) appended to the transmitter ID (0001) of remote controller 200, and a changing code calculated from the changing code of remote controller 200 of the communication at 814. Movable barrier operator 300 adds the transmitter ID (00011) of trainable transmitter 100 to a whitelist of authorized second communication protocol transmitters maintained by movable barrier operator 300.

[0127] At 834, movable barrier operator 300 indicates that trainable transmitter 100 has been learned, such as by flashing an LED or flashing an operator light. At 836, movable barrier operator 300 exits the second communication protocol learning mode.

[0128] about Fig.10, when the movable barrier operator 300 utilizes Frequency Hopping Spread Spectrum (FHSS), the method 900 may be performed as part of the method 800. Specifically, after the movable barrier operator 300 exits the second communication protocol learning mode at 836, the method 900 begins. At 902 and 904, the trainable transmitter 100 and the movable barrier operator 300 initiate the FHSS learning mode. At 906, the movable barrier operator 300 and the trainable transmitter 100 transmit information regarding the FHSS learning protocol. At 908 and 914, the trainable transmitter 100 and the movable barrier operator 300 save the FHSS configuration data and exit the FHSS learning mode at 912 and 916. At 910, the trainable transmitter provides an indication that the FHSS configuration has been learned.

[0129] Regardless of whether method 800 includes method 900, at 918, user 50 removes user input from user interface 101 of trainable transmitter 100 (e.g., stops providing user input). Once movable barrier operator 300 has learned trainable transmitter 100, trainable transmitter 200 is used to perform the following operations as described above with respect to Figure 5 A method 400 for controlling the movable barrier operator 300 is discussed.

[0130] Fig.11 is an example flow chart illustrating a method 1100 of operating a movable barrier operator 300 to train a trainable transmitter 100 that is unable to communicate with the movable barrier operator 300 using a first safety protocol. Fig.11 The computer-implemented method 1100 is for illustration only and should not be construed as limiting. Other examples of the computer-implemented method 1100 may be used without departing from the scope of the present disclosure. In some examples, the computer-implemented method 1100 is implemented by the movable barrier operator 300.

[0131] The method 1100 begins at 1102 when the movable barrier operator 300 receives a first radio frequency communication using a first security protocol from a remote control 200 (e.g., after learning the remote control 200 using a first security protocol learning mode). In some examples, the first radio frequency communication includes an access code. At 1104, in response to receiving the first radio frequency communication from the remote control 200, the movable barrier operator 300 automatically enters a second security protocol learning mode. In some examples, the movable barrier operator 300 does not enter the second security protocol learning mode until the movable barrier operator 300 receives a communication from the remote control 200 using a second security protocol. In some examples, the first security protocol is a two-way wireless security protocol and the second security protocol is a one-way security protocol. At 1106, while the movable barrier operator 300 is in the second security protocol learning mode, a broadcast of a second radio frequency communication using a second security protocol is received from the learned remote control 200. In one example, the second radio frequency communication includes an access code. In one example, the movable barrier operator 300 derives an expected derived access code from the access code. In some examples, the access code includes a fixed code and a varying code, and the expected derived access includes a derivation of the fixed code and a derivation of the varying code. At 1108, when the movable barrier operator 300 is in the second security protocol learning mode, the movable barrier operator 300 ignores the second radio frequency communication based on determining that the access code does not match the expected derived access code.

[0132] At 1110, while movable barrier operator 300 is in the second security protocol learning mode, movable barrier operator 300 receives a third radio frequency communication using the second communication protocol from trainable transmitter 100. In some examples, the third radio frequency communication includes a derived access code based on the access code broadcast by the second radio frequency communication from remote control 200. That is, in some examples, the expected derived access code and the derived access code from trainable transmitter 100 are generated from the access code based on the same set of rules stored in memory by trainable transmitter 100 and movable barrier operator 300, respectively. At 1112, while movable barrier operator 300 is in the second security protocol learning mode, movable barrier operator 300 determines whether the derived access code matches the expected derived access code. At 1114, while movable barrier operator 300 is in the second security protocol learning mode, movable barrier operator 300 learns trainable transmitter 100 in response to the derived access code matching the expected derived access code. In some examples, after movable barrier operator 300 learns trainable transmitter 100, movable barrier operator 300 receives a fourth radio frequency communication using the second communication protocol from trainable transmitter 100. In some examples, the fourth radio frequency communication includes a request for movable barrier operator 300 to move a movable barrier (e.g., garage 24), and in response to receiving the request, movable barrier operator 300 moves the movable barrier.

[0133] Fig.12 is an example flow chart illustrating a method 1200 of operating trainable transmitter 100 during a training / learning process of trainable transmitter 100, wherein trainable transmitter 100 is unable to communicate using a first security protocol. Fig.12 The computer-implemented method 1200 is for illustration only and should not be construed as limiting. Other examples of the computer-implemented method 1200 may be used without departing from the scope of the present disclosure. In some examples, the computer-implemented method 1200 is implemented by the trainable transmitter 100.

[0134] Method 1200 begins at 1202 when a training mode of trainable transmitter 100 is initiated. In one example, initiation of the training mode is the result of user 50 providing user input (e.g., pressing a button on the trainable transmitter) within a defined time period. Operations 1204 to 1212 are performed while trainable transmitter 100 is in training mode. At 1204, trainable transmitter 100 monitors (e.g., listens to) first radio frequency communications transmitted using a second communication protocol. For example, while other devices may send other communications using the first communication protocol, trainable transmitter 100 is configured to communicate using the second communication protocol rather than the first communication protocol, and therefore, trainable transmitter 100 does not receive (e.g., does not understand) any communications sent using the first communication protocol. At 1206, trainable transmitter 100 receives a first radio frequency communication using a second security protocol from remote control 200 (pre-learned by movable barrier operator 300 using the first security protocol learning mode). In one example, the second radio frequency communication includes an access code. At 1208, trainable transmitter 100 generates a derived access code from the access code using a predetermined mathematical formula. In one example, movable barrier operator 300 also knows the predetermined mathematical formula. At 1210, trainable transmitter 100 sends a second radio frequency communication to movable barrier operator 300 using a second communication protocol. In one example, the second radio frequency communication includes the derived access code. At 1212, trainable transmitter 100 receives confirmation from movable barrier operator 300 that trainable transmitter 100 has been learned by movable barrier operator 300. At 1214, after the trainable transmitter has exited the learning mode and is now in the operating mode, trainable transmitter 100 receives a request (e.g., from user 50) to perform an action on the movable barrier. At 1216, based on the received request, trainable transmitter 100 causes movable barrier operator 300 to perform an action on the movable barrier, for example, by sending a communication to movable barrier operator 300 (using a second communication protocol) that includes an instruction or request to cause movable barrier operator 300 to perform an action (which is one of opening or closing the movable barrier). Example operating environment

[0135] The present disclosure may be used in accordance with Fig.131328. The computing device 1328 may be configured to operate in conjunction with the example computing device of the functional block diagram 1300 in the specification. In one example, the components of the computing device 1328 may be implemented as part of an electronic device according to one or more examples described in this specification. For example, the computing device 1328 may be (or included in) the trainable transmitter 100, the remote control 200, or the movable barrier operator 300. The computing device 1328 includes one or more processors 1319, which may be a microprocessor, a controller, or any other suitable type of processor for processing computer executable instructions to control the operation of the computing device 1328. Alternatively or additionally, the processor 1319 is any technology capable of executing logic or instructions, such as a hard-coded machine. Platform software including an operating system 1320, firmware, or any other suitable platform software may be provided on the computing device 1328 to enable application software 1321 to be executed on the computing device 1328.

[0136] Computer executable instructions may be provided using any computer readable medium accessible to the computing device 1328. Computer readable media may include, for example, non-transitory computer storage media (e.g., memory 1322) and communication media. Computer storage media, such as memory 1322, include volatile and non-volatile, removable and non-removable media devices implemented in any method or technology for storing information, such as computer readable instructions, data structures, program modules, etc. Computer storage media include, but are not limited to, RAM, ROM, EPROM, EEPROM, persistent memory, phase change memory, flash memory or other memory technology, CD-ROM, digital versatile disks (digital versatile disks, DVD) or other optical storage, cassettes, magnetic tapes, magnetic disk storage, shingled disk storage or other magnetic storage devices, quantum (state) memory, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media may embody computer readable instructions, data structures, program modules, etc. in a modulated data signal (e.g., carrier wave) or other transmission mechanism. As defined herein, computer storage media do not include communication media. Therefore, computer storage media itself should not be interpreted as a propagation signal. A propagation signal itself is not an example of a computer storage medium. Although computer storage media (memory 1322) is shown within computing device 1328, those skilled in the art will appreciate that storage may be distributed or located at a remote location and accessed via a network or other communications link (eg, using communications interface 1323).

[0137] In some examples, the computer readable medium includes instructions that, when executed by the processor 1319, perform the Figures 5 to 12 Instructions corresponding to each operation in .

[0138] The computing device 1328 may include an input / output controller 1324, which is configured to output information to one or more output devices 1325, such as a display or a speaker, which may be separated or integrated with the electronic device. For example, the output device 1325 may be a user interface. The input / output controller 1324 may also be configured to receive and process input from one or more input devices 1326 (e.g., a keyboard, a microphone, or a touchpad). In some examples, one or more input devices 1326 are input receiving modules. In one example, the output device 1325 may also be used as an input device, and vice versa. An example of such a combined device constituting one or more of the output device 1325, the input device 1326, and the input / output controller 1324 may be a touch-sensitive display. In some examples, a user may provide input to the input device 1326 and / or receive output from the output device 1325.

[0139] The functions described herein may be performed at least in part by one or more hardware logic components. According to one example, the computing device 1328 is configured by program code, when executed by the processor 1319, to perform the examples of the operations and functions described. Alternatively or additionally, the functions described herein may be performed at least in part by one or more hardware logic components. For example, but not limited to, illustrative types of hardware logic components that can be used include field programmable gate arrays (Field-programmable Gate Array, FPGA), application-specific integrated circuits (Application-specific Integrated Circuit, ASIC), application-specific standard products (Program-specific Standard Product, ASSP), system-on-a-chip system (System-on-a-chip system, SOC), complex programmable logic devices (Complex Programmable Logic Device, CPLD), graphics processing units (Graphics Processing Unit, GPU).

[0140] At least a portion of the functionality of the various elements in the figures may be performed by other elements in the figures or entities not shown in the figures (eg, processors, web services, servers, applications, computing devices, etc.).

[0141] Although described in conjunction with an example computing device, the examples of the present disclosure can be implemented by many other general or special computing system environments, configurations or devices. Examples of known computing systems, environments and / or configurations that may be applicable to various aspects of the present disclosure include, but are not limited to, smartphones, mobile tablets, mobile computing devices, personal computers, server computers, handheld or laptop devices, multiprocessor systems, game consoles, microprocessor-based systems, set-top boxes, programmable consumer electronics, mobile phones, wearable or accessory mobile computing and / or communication devices (e.g., watches, glasses, headphones or earphones), network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, virtual reality (VR) devices, augmented reality (AR) devices, mixed reality (MR) devices, holographic devices, etc. Such systems or devices may accept input from a user in any manner, including from an input device (e.g., a keyboard or a pointing device), via gesture input, close range input (e.g., by hovering) and / or via voice input.

[0142] Examples of the present disclosure can be described in the general context of computer executable instructions (e.g., program modules) executed by one or more computers or other devices in software, firmware, hardware, or a combination thereof. Computer executable instructions can be organized into one or more computer executable components or modules. Typically, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform specific tasks or implement specific abstract data types. Aspects of the present disclosure can be implemented by such components or modules of any number and organization. For example, aspects of the present disclosure are not limited to specific computer executable instructions or specific components or modules shown in the figures and described herein. Other examples of the present disclosure may include different computer executable instructions or components with more or less functions than those shown and described herein. In examples involving general-purpose computers, when configured to execute instructions described herein, aspects of the present disclosure convert general-purpose computers into special-purpose computing devices.

[0143] At least part of the functionality of the various elements in the figures may be performed by other elements in the figures or entities not shown in the figures (eg, processors, network services, servers, applications, computing devices, etc.).

[0144] Although described in connection with an exemplary computing system environment, examples of the disclosure are implementable with numerous other general purpose or special purpose computing system environments, configurations, or devices.

[0145] In examples involving a general-purpose computer, aspects of the disclosure convert the general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.

[0146] An example computer-implemented method of operating a remote control to train a trainable transmitter includes: receiving an input by the remote control; in response to receiving the input, sending a first radio frequency communication to a controllable device via a first security protocol, the first radio frequency communication including a first fixed code and a first varying code; measuring, by the remote control, a duration of the input; and in response to the measured duration of the input satisfying a duration threshold, sending a second radio frequency communication to the controllable device and the trainable transmitter via a second security protocol different from the first security protocol, the second radio frequency communication including the first fixed code and the first varying code.

[0147] An example method for implementing communication between a trainable transmitter and a movable barrier operator includes, at the movable barrier operator: receiving a first radio frequency communication from a previously learned remote control via a first security protocol, the first radio frequency communication including a first fixed code and a first changing code; automatically entering a second security protocol learning mode in response to receiving the first radio frequency communication, wherein the movable barrier operator in the second security protocol learning mode is configured to receive a second radio frequency communication via a second security protocol different from the first security protocol; while the movable barrier operator is in the second security protocol learning mode, receiving a second radio frequency communication from the trainable transmitter, the second radio frequency communication including a second fixed code and a second changing code; determining whether the second fixed code is derived from the first fixed code, and whether the second changing code is derived from the first changing code; and in response to determining that the second fixed code and the second changing code are derived from the first fixed code and the first changing code, learning the trainable transmitter.

[0148] A method for enabling communication between a trainable transmitter and a movable barrier operator, comprising: at the movable barrier operator: receiving a first radio frequency communication using a first security protocol from a remote control learned using a first security protocol learning mode, the first radio frequency communication including an access code; in response to receiving the first radio frequency communication, automatically entering a second security protocol learning mode; when the movable barrier operator is in the second security protocol learning mode: receiving a broadcast of a second radio frequency communication using a second security protocol from the learned remote control, the second radio frequency communication including an access code; ignoring the second radio frequency communication based on determining that the access code does not match an expected derived access code; receiving a third radio frequency communication using a second communication protocol from the trainable transmitter, the third radio frequency communication including a derived access code based on the access code broadcast from the second radio frequency communication from the learned remote control; determining whether the derived access code matches the expected derived access code; and in response to the derived access code matching the expected derived access code, learning the trainable transmitter.

[0149] A method for training a trainable transmitter, comprising: initiating a training mode of the trainable transmitter; when the trainable transmitter is in the training mode, the trainable transmitter: monitoring a first radio frequency communication transmitted using a second communication protocol; receiving a first radio frequency communication using a second security protocol from a remote control that has been previously learned by a movable barrier operator using a first security protocol learning mode, the second radio frequency communication including an access code; generating a derived access code from the access code using a predetermined mathematical formula; sending a second radio frequency communication to the movable barrier operator using the second communication protocol, the second radio frequency communication including the derived access code; and receiving a confirmation from the movable barrier operator that the trainable transmitter has been learned by the movable barrier operator, the confirmation indicating that the derived access code matches an expected derived access code from the movable barrier operator; and when the learned trainable transmitter is in the operating mode, receiving a request to perform an action on the movable barrier; and causing the movable barrier operator to perform an action on the movable barrier based on the received request.

[0150] A method for training a trainable transmitter includes: sending a first radio frequency communication via the first security protocol from a remote control that has been previously learned using the first security protocol, the first radio frequency communication including a first fixed code and a first varying code; authenticating the remote control by a controllable device based at least in part on the first fixed code, the first varying code, and a varying code from a previous radio frequency communication of the remote control; entering a second security protocol learning mode by the controllable device in response to authenticating the remote control; while the controllable device is in the second security protocol learning mode: sending a second radio frequency communication from the remote control via a second security protocol different from the first security protocol, the second radio frequency communication including the first fixed code and the first varying code; receiving the second radio frequency communication by the trainable transmitter; determining at least one of the second fixed code and the second varying code by the trainable transmitter based at least in part on the first fixed code and the first varying code; sending a third radio frequency communication from the trainable transmitter via the second security protocol, the third radio frequency communication including at least one of the second fixed code and the second varying code; and learning the trainable transmitter by the controllable device in response to the second fixed code corresponding to the first fixed code and the second varying code corresponding to the first varying code.

[0151] A system for training a trainable transmitter includes: a trainable transmitter, a remote control, a movable barrier operator, and a processor, the processor being programmed to perform the following operations: receiving a first radio frequency communication using a first security protocol from a remote control that was learned using a first security protocol learning mode, the first radio frequency communication including an access code; in response to receiving the first radio frequency communication, causing the movable barrier operator to automatically enter a second security protocol learning mode; when the movable barrier operator is in the second security protocol learning mode: receiving a broadcast of a second radio frequency communication using a second security protocol from the learned remote control, the second radio frequency communication including an access code; ignoring the second radio frequency communication based on determining that the access code does not match an expected derived access code; receiving a third radio frequency communication using a second communication protocol from the trainable transmitter, the third radio frequency communication including a derived access code based on the access code broadcast of the second radio frequency communication from the learned remote control; determining whether the derived access code matches the expected derived access code; and in response to the derived access code matching the expected derived access code, learning the trainable transmitter.

[0152] A system for training a trainable transmitter includes: a trainable transmitter, a remote control, a movable barrier operator, and a processor, the processor being programmed to perform the following operations: initiating a training mode of the trainable transmitter; while the trainable transmitter is in the training mode, monitoring a first radio frequency communication transmitted using a second communication protocol; receiving a first radio frequency communication using a second security protocol from a remote control that was pre-learned by the movable barrier operator using the first security protocol, the second radio frequency communication including an access code; generating a derived access code from the access code using a predetermined mathematical formula; sending a second radio frequency communication to the movable barrier operator using the second communication protocol, the second radio frequency communication including the derived access code; receiving a confirmation from the movable barrier operator that the trainable transmitter has been learned by the movable barrier operator, the confirmation indicating that the derived access code matches an expected derived access code from the movable barrier operator; and while the learned trainable transmitter is in the operating mode, receiving a request to perform an action on the movable barrier; and causing the movable barrier operator to perform an action on the movable barrier based on the received request.

[0153] The movable barrier operator is configured to perform the following operations: receive a first radio frequency communication using a first security protocol from a remote control that has been learned using a first security protocol learning mode, the first radio frequency communication including an access code; in response to receiving the first radio frequency communication, automatically cause the movable barrier operator to enter a second security protocol learning mode; when the movable barrier operator is in the second security protocol learning mode: receive a broadcast of a second radio frequency communication using a second security protocol from the learned remote control, the second radio frequency communication including an access code; based on determining that the access code does not match an expected derived access code, ignore the second radio frequency communication; receive a third radio frequency communication using a second communication protocol from a trainable transmitter, the third radio frequency communication including a derived access code based on the access code broadcast of the second radio frequency communication from the learned remote control; determine whether the derived access code matches the expected derived access code; and in response to the derived access code matching the expected derived access code, learn the trainable transmitter.

[0154] The trainable transmitter is configured to perform the following operations: initiate a training mode; while the trainable transmitter is in the training mode, monitor a first radio frequency communication transmitted using a second communication protocol; receive a first radio frequency communication using a second security protocol from a remote control that is pre-learned by the movable barrier operator using the first security protocol, the second radio frequency communication including an access code; generate a derived access code based on the access code using a predetermined mathematical formula; send a second radio frequency communication to the movable barrier operator using the second communication protocol, the second radio frequency communication including the derived access code; receive a confirmation from the movable barrier operator that the trainable transmitter has been learned by the movable barrier operator, the confirmation indicating that the derived access code matches an expected derived access code from the movable barrier operator; and while the learned trainable transmitter is in the operating mode, receive a request to perform an action on the movable barrier; and based on the received request, cause the movable barrier operator to perform an action on the movable barrier.

[0155] The remote control is configured to perform the following operations: receive an input; in response to receiving the input, send a first radio frequency communication to a controllable device via a first security protocol, the first radio frequency communication including a first fixed code and a first varying code; measure a duration of the input by the remote control; and in response to the measured duration of the input satisfying a duration threshold, send a second radio frequency communication to the controllable device and a trainable transmitter via a second security protocol different from the first security protocol, the second radio frequency communication including the first fixed code and the first varying code.

[0156] A system for training a trainable transmitter, comprising: a trainable transmitter, a remote control pre-learned using a first security protocol learning mode, and a movable barrier operator; the remote control sends a first radio frequency communication via a first security protocol, the first radio frequency communication including a first fixed code and a first changing code; the movable barrier operator authenticates the remote control based at least in part on the first fixed code, the first changing code, and the changing code from a previous radio frequency communication of the remote control; and in response to the authentication of the remote control, enters a second security protocol learning mode; when the controllable device is in the second security protocol learning mode: the remote control sends a second radio frequency communication via a second security protocol different from the first security protocol, the second radio frequency communication including the first fixed code and the first changing code; the trainable transmitter: receives the second radio frequency communication; determines at least one of the second fixed code and the second changing code based at least in part on the first fixed code and the first changing code; and sends a third radio frequency communication via the second security protocol, the third radio frequency communication including at least one of the second fixed code and the second changing code; and in response to the second fixed code corresponding to the first fixed code, and the second changing code corresponding to the first changing code, the movable barrier operator learns the trainable transmitter.

[0157] Alternatively, or in addition to other examples described herein, examples include any combination of the following: - wherein the controllable device is configured to ignore the second radio frequency communication; - wherein receiving the input comprises receiving a single user input at a user interface of the remote controller; - wherein the duration threshold comprises a duration of the user input reaching a predetermined time value; - wherein the predetermined time value is at least ten seconds; - wherein the controllable device comprises a movable barrier operator; wherein the first radio frequency communication is configured to cause the movable barrier operator to move the barrier; and wherein the second radio frequency communication is incapable of causing the movable barrier operator to move the barrier based on the second radio frequency communication not including the derived access code; - wherein transmitting the first radio frequency communication comprises broadcasting the first radio frequency communication at a frequency greater than 2 GHz; and wherein sending the second radio frequency communication comprises broadcasting the second radio frequency communication at a frequency less than 1 GHz; - receiving a response radio frequency communication from the controllable device via a first security protocol, the response radio frequency communication including a controllable device fixed code and a controllable device variable code; authenticating the controllable device based at least in part on the controllable device fixed code, the controllable device varying code, the fixed code from a previous operation of the controllable device, and the varying code from a previous operation of the controllable device; and Sending a response radio frequency communication to the controllable device via a first security protocol, the response radio frequency communication including a first fixed code and a changed version of a first change code; - wherein the first security protocol is a two-way wireless security protocol; and Among them, the second security protocol is a one-way security protocol; - determining a first change code based at least in part on a change code previously transmitted to the controllable device to operate the controllable device; - wherein measuring the duration of the user input comprises counting the number of broadcasts; - wherein receiving a first radio frequency communication from a previously learned remote control comprises receiving a first radio frequency communication having a frequency greater than 2 GHz; and wherein receiving a second radio frequency communication from the trainable transmitter includes receiving a second radio frequency communication having a frequency lower than 1 GHz; -determining whether the movable barrier operator has learned the maximum number of remote controls; and Wherein learning the trainable transmitter comprises learning the trainable transmitter in response to: determining that the second fixed code is derived from the first fixed code; determining that a second change code is derived from the first change code; and Determining that the movable barrier operator has not learned the maximum number of remote controls; - in response to receiving a first radio frequency communication from the remote control, moving the movable barrier; -When the movable barrier operator is in the second safety protocol learning mode: receiving a third radio frequency communication from the remote control via a second security protocol, the third radio frequency communication including the first fixed code and a changed version of the first changed code; and ignoring the third radio frequency communication and not moving the movable barrier based on the third radio frequency communication not including the second fixed code and the second varying code derived from the first fixed code and the first varying code; - wherein automatically entering the second security protocol learning mode includes opening a time window to receive a second radio frequency communication; -After learning the Trainable Transmitter, at the Movable Barrier Operator: After a predetermined period of time, exit the second security protocol learning mode; receiving a third radio frequency communication from the trainable transmitter via a second security protocol; verifying the third radio frequency communication; and moving the movable barrier in response to verification of the third radio frequency communication; - wherein the second fixed code is different from the first fixed code, and the second variable code is different from the first variable code; -After learning a trainable transmitter: receiving a fourth radio frequency communication using the second communication protocol from the learned trainable transmitter, the fourth radio frequency communication including a request for the movable barrier operator to move the movable barrier; and in response to receiving the request, moving the movable barrier; - determining an expected derived access code based on the access code; -Wherein, the access code includes a fixed code and a variable code; - wherein the expected derivative access includes the derivation of fixed codes and the derivation of variable codes; - wherein the expected derived access code and the derived access code from the trainable transmitter are generated from the access code based on the same set of rules; - wherein the trainable transmitter uses a predetermined mathematical formula to generate a derived access code from the access code; and wherein the movable barrier operator uses a predetermined mathematical formula to generate an expected derived access code based on the access code; - wherein the action is one of: opening the movable barrier or closing the movable barrier; - wherein sending the first radio frequency communication comprises: in response to receiving a first user input at a user interface of the remote controller, the time period for receiving the first user input being less than a predetermined time period, broadcasting the first radio frequency communication; and Wherein, sending the second radio frequency communication comprises: in response to receiving a second user input at a user interface of the remote controller, a time period for receiving the second user input being equal to or greater than a predetermined time period, broadcasting the second radio frequency communication; - wherein sending the first radio frequency communication comprises: in response to receiving a user input at a user interface of the remote control, broadcasting the first radio frequency communication; and Wherein, sending the second radio frequency communication includes: in response to the user input satisfying the user input condition, broadcasting the second radio frequency communication; - in response to the user interface receiving the user input for a predetermined period of time, determining, by the remote control, that the user input condition is satisfied; - Detection of remote control button presses by the remote control; The duration of the button press is determined by the remote control; Wherein sending the first radio frequency communication comprises: in response to detecting the button press, broadcasting the first radio frequency communication; and Wherein, sending the second radio frequency communication includes: in response to the duration of the button pressing satisfying the button pressing condition, broadcasting the second radio frequency communication; - wherein the controllable device has a first security protocol learning mode, wherein the controllable device is configured to learn other remote controls that transmit radio frequency communications via the first security protocol; and Wherein, learning the trainable transmitter includes when the controllable device operates in a second safety protocol learning mode, the controllable device learning the trainable transmitter; - wherein transmitting the first radio frequency communication comprises broadcasting the first radio frequency communication at a frequency greater than 2 GHz; and wherein sending the second radio frequency communication comprises broadcasting the second radio frequency communication at a frequency less than 1 GHz; - wherein the first security protocol specifies a first code format; and wherein the second security protocol specifies a second code format different from the first code format; - wherein sending the second radio frequency communication from the remote control causes the controllable device to ignore the second radio frequency communication from the remote control based at least on the fact that the second radio frequency communication does not include the derived access code; - sending a fourth radio frequency communication from the controllable device via the first security protocol, the fourth radio frequency communication including a controllable device fixed code and a controllable device variable code; receiving, by the remote controller, a fourth radio frequency communication; sending a fifth radio frequency communication from the remote controller via the first security protocol, the fifth radio frequency communication including the first fixed code and a modified version of the first changed code; authenticating, by the remote controller, the controllable device based at least in part on the controllable device fixed code, the controllable device variable code, a previously received controllable device fixed code, and a previously received controllable device variable code; and sending a sixth radio frequency communication from the remote controller via the first security protocol, the sixth radio frequency communication including the first fixed code and a changed version of the controllable device change code; - wherein the trainable transmitter is unable to communicate using the first security protocol; -At a trainable transmitter: receiving user input at a user interface of the trainable transmitter; and entering a learning mode in response to receiving a user input and prior to receiving a second radio frequency communication; - wherein determining, by the trainable transmitter, the second fixed code and the second varying code comprises decrypting the second radio frequency communication; and Among them, learning trainable transmitters includes: receiving, by the controllable device, a third radio frequency communication; decrypting, by the controllable device, the third radio frequency communication; and Determining, by the controllable device, that the second fixed code and the second changing code correspond to the first fixed code and the first changing code based at least in part on a mathematical relationship between the first fixed code, the first changing code, the second fixed code, and the second changing code; -Wherein the controllable device comprises a movable barrier operator, the method further comprises: receiving, by the movable barrier operator, a first radio frequency communication; and moving, by the movable barrier operator, the movable barrier between the open position and the closed position in response to the movable barrier operator receiving the first radio frequency communication; - receiving a second radio frequency communication by the movable barrier operator; and determining, by the movable barrier operator, that the second radio frequency communication does not include the derived access code, and based on the determination, ignoring, by the movable barrier operator, the second radio frequency communication, such that the movable barrier operator does not move the movable barrier in response to receiving the second radio frequency communication; - wherein when the controllable device receives the first radio frequency communication and the second radio frequency communication from the remote controller, the controllable device enters the second security protocol learning mode; - determining, by the controllable device, a third fixed code based on the first fixed code; determining, by the controllable device, a third change code based on the first change code; and Wherein, the controllable device learning the trainable transmitter comprises: in response to the second fixed code matching the third fixed code and the second variable code matching the third variable code, the controllable device learning the trainable transmitter; - wherein the second fixed code is different from the first fixed code, and the second variable code is different from the first variable code; -Wherein, learning the trainable transmitter comprises at least one of the following: In response to the second fixed code having a first predetermined mathematical relationship with the first fixed code, determining, by the controllable device, that the second fixed code corresponds to the first fixed code; and In response to the second change code having a second predetermined mathematical relationship with the first fixed code, determining, by the controllable device, that the second change code corresponds to the first change code; - wherein the second fixed code includes the first fixed code and a value prepended to or appended to the first fixed code; - wherein authenticating the remote control is based at least in part on: The first fixed code; First change code; a change code from a previous RF communication of the remote control; a second fixed code; and Second change code.

[0158] All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference was individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.

[0159] The order of execution or implementation of the operations in the examples of the present disclosure shown and described herein is not necessary, and can be performed in different sequential ways in various examples. For example, it is conceivable that the execution or implementation of a specific operation before, at the same time, or after another operation is within the scope of the various aspects of the present disclosure. When introducing the elements of various aspects of the present disclosure or its examples, the articles "a", "an", "the", and "said" are intended to indicate the presence of one or more elements. The terms "comprising", "including", and "having" are intended to be included, and mean that other elements other than the listed elements may exist. The term "exemplary" is intended to represent "an example". The phrase "one or more of the following: "A, B, and C" means "at least one of A and / or at least one of B and / or at least one of C".

[0160] Having described various aspects of the disclosure in detail, it is apparent that modifications and variations may be made without departing from the scope of the various aspects of the disclosure as defined in the appended claims. As various changes may be made to the above-described structures, products, and methods without departing from the scope of the various aspects of the disclosure, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not limiting.

Claims

1. A method of operating a remote control to train a trainable transmitter, the method comprising: receiving input by the remote controller; In response to receiving the input, sending a first radio frequency communication to the controllable device via a first security protocol, the first radio frequency communication including a first fixed code and a first varying code; measuring, by the remote controller, a duration of the input; and In response to the measured duration of the input satisfying a duration threshold, sending a second radio frequency communication to the controllable device and the trainable transmitter via a second security protocol different from the first security protocol, the second radio frequency communication including the first fixed code and the first varying code.

2. The method according to claim 1, wherein: The controllable device is configured to ignore the second radio frequency communication.

3. The method according to claim 1, wherein: Receiving the input includes receiving a single user input at a user interface of the remote control.

4. The method according to claim 1, wherein: The duration threshold comprises a duration of the input reaching a predetermined time value.

5. The method according to claim 4, wherein: The predetermined time value is at least 10 seconds.

6. The method according to claim 1, wherein: The controllable device includes a movable barrier operator; wherein the first radio frequency communication is configured to cause the movable barrier operator to move a barrier; and Wherein, based on the second radio frequency communication not including the derived access code, the second radio frequency communication is unable to cause the movable barrier operator to move the barrier.

7. The method according to claim 1, wherein: Transmitting the first radio frequency communication includes broadcasting the first radio frequency communication at a frequency greater than 2 GHz; and Wherein, sending the second radio frequency communication includes broadcasting the second radio frequency communication at a frequency lower than 1 GHz.

8. The method according to claim 1, further comprising: receiving a response radio frequency communication from the controllable device via the first security protocol, the response radio frequency communication including a controllable device fixed code and a controllable device variable code; authenticating the controllable device based at least in part on the controllable device fixed code, the controllable device varying code, a fixed code from a previous operation of the controllable device, and a varying code from a previous operation of the controllable device; and A reply radio frequency communication is sent to the controllable device via the first security protocol, the reply radio frequency communication including the first fixed code and a modified version of the first changed code.

9. The method according to claim 1, wherein: The first security protocol is a two-way wireless security protocol; and The second security protocol is a one-way security protocol.

10. The method of claim 1, further comprising determining the first change code based at least in part on a change code previously transmitted to the controllable device to operate the controllable device.

11. The method according to claim 1, wherein: Measuring the duration of the input includes counting the number of broadcasts.

12. A method of enabling communication between a trainable transmitter and a movable barrier operator, the method comprising: At the movable barrier operator: receiving a first radio frequency communication from a previously learned remote control via a first security protocol, the first radio frequency communication comprising a first fixed code and a first varying code; automatically entering a second safety protocol learning mode in response to receiving the first radio frequency communication, wherein the movable barrier operator in the second safety protocol learning mode is configured to receive a second radio frequency communication via a second safety protocol different from the first safety protocol; receiving the second radio frequency communication from the trainable transmitter while the movable barrier operator is in the second safety protocol learning mode, the second radio frequency communication including a second fixed code and a second variable code; determining whether the second fixed code is derived from the first fixed code, and determining whether the second variable code is derived from the first variable code; and In response to determining that the second fixed code and the second varying code are derived from the first fixed code and the first varying code, the trainable transmitter is learned.

13. The method according to claim 12, wherein: Receiving a first radio frequency communication from the previously learned remote control includes receiving the first radio frequency communication at a frequency greater than 2 GHz; and Wherein receiving the second radio frequency communication from the trainable transmitter includes receiving the second radio frequency communication at a frequency below 1 GHz.

14. The method of claim 12, further comprising determining whether the movable barrier operator has learned a maximum number of remote controls; and Wherein learning the trainable transmitter comprises learning the trainable transmitter in response to: determining that the second fixed code is derived from the first fixed code; determining that the second change code is derived from the first change code; and It is determined that the movable barrier operator has not learned a maximum number of remote controls.

15. The method of claim 12, further comprising moving a movable barrier in response to receiving a first radio frequency communication from the previously learned remote control.

16. The method according to claim 15, further comprising: When the movable barrier operator is in the second safety protocol learning mode: receiving a third radio frequency communication from the previously learned remote control via the second security protocol, the third radio frequency communication including the first fixed code and a modified version of the first changed code; and Based on the third radio frequency communication not including the second fixed code and the second varying code derived from the first fixed code and the first varying code, the third radio frequency communication is ignored and the movable barrier is not moved.

17. The method according to claim 12, wherein: Automatically entering the second security protocol learning mode includes opening a time window to receive the second radio frequency communication.

18. The method according to claim 12, further comprising: After learning the trainable transmitter, at the movable barrier operator: After a predetermined period of time, exiting the second security protocol learning mode; receiving a third radio frequency communication from the trainable transmitter via the second security protocol; verifying the third radio frequency communication; and The movable barrier is moved in response to verification of the third radio frequency communication.

19. The method according to claim 12, wherein: The second fixed code is different from the first fixed code, and the second change code is different from the first change code.

20. A method comprising: At the movable barrier operator: receiving a first radio frequency communication using a first security protocol from a remote controller learned using a first security protocol learning mode, the first radio frequency communication including an access code; In response to receiving the first radio frequency communication, automatically entering a second security protocol learning mode; When the movable barrier operator is in the second safety protocol learning mode: receiving a broadcast of a second radio frequency communication using a second security protocol from a learned remote control, the second radio frequency communication including an access code; based on determining that the access code does not match the expected derived access code, ignoring the second radio frequency communication; receiving a third radio frequency communication from a trainable transmitter using the second security protocol, the third radio frequency communication including a derived access code based on an access code broadcasted by the second radio frequency communication from the learned remote control; determining whether the derived access code matches the expected derived access code; and In response to the derived access code matching the expected derived access code, the trainable transmitter is learned.

21. The method according to claim 20, further comprising: After learning the trainable transmitter: receiving a fourth radio frequency communication using the second safety protocol from the learned trainable transmitter, the fourth radio frequency communication comprising a request for the movable barrier operator to move a movable barrier; and In response to receiving the request, the movable barrier is moved.

22. The method according to claim 20, further comprising: The expected derived access code is determined based on the access code.

23. The method according to claim 22, wherein: The access code includes a fixed code and a variable code.

24. The method according to claim 23, wherein: The expected derivative access includes a derivation of the fixed code and a derivation of the variable code.

25. The method according to claim 20, wherein: The expected derived access code and the derived access code from the trainable transmitter are generated from the access code based on the same set of rules.

26. The method of claim 20, wherein: The first security protocol is a two-way wireless security protocol; and The second security protocol is a one-way security protocol.

27. The method according to claim 26, wherein: The movable barrier operator is unable to communicate with the trainable transmitter using the first safety protocol.

28. A method comprising: Start the training mode of the trainable transmitter; When the trainable transmitter is in the training mode, the trainable transmitter: monitoring a first radio frequency communication transmitted using a second security protocol; receiving a first radio frequency communication using a second security protocol from a remote control pre-learned by the movable barrier operator using the first security protocol, the second radio frequency communication including an access code; generating a derived access code based on the access code using a predetermined mathematical formula; sending a second radio frequency communication to a movable barrier operator using the second security protocol, the second radio frequency communication including the derived access code; and receiving a confirmation from the movable barrier operator that the trainable transmitter has been learned by the movable barrier operator, the confirmation indicating that the derived access code matches an expected derived access code from the movable barrier operator; and receiving a request to perform an action on a movable barrier while the learned trainable transmitter is in an operational mode; and Based on the received request, the movable barrier operator is caused to perform an action on the movable barrier.

29. The method according to claim 28, wherein: The trainable transmitter is unable to communicate with the movable barrier operator using the first safety protocol.

30. The method of claim 28, wherein: the trainable transmitter generating the derived access code from the access code using the predetermined mathematical formula; and Wherein the movable barrier operator generates the expected derived access code from the access code using the predetermined mathematical formula.

31. The method of claim 28, wherein: The action is one of: opening the movable barrier, or closing the movable barrier.

32. The method of claim 28, wherein: The first security protocol is a two-way wireless security protocol; and The second security protocol is a one-way security protocol.

33. The method of claim 28, wherein: The access code includes a fixed code and a variable code.

34. The method of claim 33, wherein: The expected derivative access includes a derivation of the fixed code and a derivation of the variable code.

35. The method of claim 34, wherein: The expected derived access code and the derived access code from the trainable transmitter are generated from the access code based on the same set of rules.

36. A method of training a trainable transmitter, the method comprising: sending a first radio frequency communication via a first security protocol from a remote control that has been pre-learned using a first security protocol learning mode, the first radio frequency communication comprising a first fixed code and a first variable code; authenticating, by a controllable device, the remote control based at least in part on the first fixed code, the first varying code, and a varying code from a previous radio frequency communication of the remote control; In response to verification of the remote controller, the controllable device enters a second security protocol learning mode; When the controllable device is in the second security protocol learning mode: sending a second radio frequency communication from the remote control via a second security protocol different from the first security protocol, the second radio frequency communication including the first fixed code and the first changing code; receiving, by the trainable transmitter, the second radio frequency communication; determining, by the trainable transmitter, at least one of a second fixed code and a second varying code based at least in part on the first fixed code and the first varying code; transmitting, from the trainable transmitter, a third radio frequency communication via the second security protocol, the third radio frequency communication including at least one of the second fixed code and a second varying code; and The trainable transmitter is learned by the controllable device in response to the second fixed code corresponding to the first fixed code and the second varying code corresponding to the first varying code.

37. The method according to claim 36, in, Transmitting the first radio frequency communication comprises broadcasting the first radio frequency communication in response to receiving a first user input at a user interface of the remote control, wherein a time period for receiving the first user input is less than a predetermined time period; and Wherein sending the second radio frequency communication comprises broadcasting the second radio frequency communication in response to receiving a second user input at a user interface of the remote controller, wherein a time period for receiving the second user input is equal to or greater than the predetermined time period.

38. The method according to claim 36, in, Transmitting the first radio frequency communication includes broadcasting the first radio frequency communication in response to receiving a user input at a user interface of the remote control; and Wherein, sending the second radio frequency communication includes broadcasting the second radio frequency communication in response to the user input satisfying a user input condition.

39. The method of claim 38, further comprising determining, by the remote control, that the user input condition is satisfied in response to the user interface receiving the user input for a predetermined period of time.

40. The method of claim 36, further comprising: detecting, by the remote controller, a button press of the remote controller; determining, by the remote controller, a duration of the button being pressed; wherein sending the first radio frequency communication comprises broadcasting the first radio frequency communication in response to detecting the button press; and Wherein, sending the second radio frequency communication includes broadcasting the second radio frequency communication in response to the duration of the button pressing satisfying a button pressing condition.

41. The method of claim 36, wherein: The controllable device has a first security protocol learning mode, wherein the controllable device is configured to learn other remote controllers that transmit radio frequency communications via the first security protocol; and Wherein, learning the trainable transmitter comprises learning the trainable transmitter while the controllable device is operating in the second safety protocol learning mode.

42. The method of claim 36, wherein: The first security protocol is a two-way security protocol, and the second security protocol is a one-way security protocol.

43. The method of claim 36, wherein: Transmitting the first radio frequency communication includes broadcasting the first radio frequency communication at a frequency greater than 2 GHz; and Wherein, sending the second radio frequency communication includes broadcasting the second radio frequency communication at a frequency lower than 1 GHz.

44. The method of claim 36, wherein: The first security protocol specifies a first code format; and The second security protocol specifies a second code format that is different from the first code format.

45. The method of claim 36, wherein: The second radio frequency communication is sent from the remote control such that the controllable device ignores the second radio frequency communication from the remote control based at least on the fact that the second radio frequency communication does not include a derived access code.

46. ​​The method of claim 36, further comprising: sending a fourth radio frequency communication from the controllable device via the first security protocol, the fourth radio frequency communication including a controllable device fixed code and a controllable device variable code; receiving, by the remote controller, the fourth radio frequency communication; sending a fifth radio frequency communication from the remote controller via the first security protocol, the fifth radio frequency communication including the first fixed code and a modified version of the first change code; authenticating the controllable device by the remote controller based at least in part on the controllable device fixed code, the controllable device variable code, a previously received controllable device fixed code, and a previously received controllable device variable code; and A sixth radio frequency communication is sent from the remote control via the first security protocol, the sixth radio frequency communication including the first fixed code and a modified version of the controllable device change code.

47. The method of claim 36, wherein: The trainable transmitter is unable to communicate using the first security protocol.

48. The method of claim 36, further comprising: At the trainable transmitter: receiving user input at a user interface of the trainable transmitter; and A learning mode is entered in response to receiving the user input and prior to receiving the second radio frequency communication.

49. The method of claim 36, wherein: Determining, by the trainable transmitter, the second fixed code and the second varying code includes decrypting the second radio frequency communication; and Wherein learning the trainable transmitter comprises: receiving, by the controllable device, the third radio frequency communication; decrypting, by the controllable device, the third radio frequency communication; and The controllable device determines, at least in part based on a mathematical relationship between the first fixed code, the first varying code, the second fixed code, and the second varying code, that the second fixed code and the second varying code correspond to the first fixed code and the first varying code.

50. The method of claim 36, wherein: The controllable device includes a movable barrier operator, and the method further includes: receiving, by the movable barrier operator, the first radio frequency communication; and In response to the movable barrier operator receiving the first radio frequency communication, the movable barrier is moved by the movable barrier operator between an open position and a closed position.

51. The method of claim 50, further comprising: receiving, by the movable barrier operator, the second radio frequency communication; and determining, by the movable barrier operator, that the second radio frequency communication does not include a derived access code, and Based on the determination, the second radio frequency communication is ignored by the movable barrier operator such that the movable barrier operator does not move the movable barrier in response to receiving the second radio frequency communication.

52. The method of claim 36, wherein: When the controllable device receives the first radio frequency communication and the second radio frequency communication from the remote controller, the controllable device enters the second security protocol learning mode.

53. The method of claim 36, further comprising: Determining, by the controllable device, a third fixed code based on the first fixed code; Determining, by the controllable device, a third change code based on the first change code; and The controllable device learning the trainable transmitter comprises: in response to the second fixed code matching a third fixed code and the second variable code matching a third variable code, the controllable device learning the trainable transmitter.

54. The method of claim 36, wherein: The second fixed code is different from the first fixed code, and the second change code is different from the first change code.

55. The method of claim 36, wherein: Learning the trainable transmitter includes at least one of: In response to the second fixed code having a first predetermined mathematical relationship with the first fixed code, the controllable device determines that the second fixed code corresponds to the first fixed code; and In response to the second change code having a second predetermined mathematical relationship with the first fixed code, the controllable device determines that the second change code corresponds to the first change code.

56. The method of claim 55, wherein: The second fixed code includes the first fixed code and a value prepended to or appended to the first fixed code.

57. The method of claim 36, wherein: Authenticating the remote control is based at least in part on: the first fixed code; the first change code; the change code from the previous radio frequency communication of the remote controller; the second fixed code; and The second change code.

Citation Information

Patent Citations

  • Security system for a moveable barrier operator

    US10652743B2

  • Method and apparatus to facilitate transmission of ternary movable barrier operator information

    US7071850B1

  • Method and apparatus for a rolling code learning transmitter

    US20030033540A1

  • Trainable transceiver and mobile communications device systems and methods

    US20150302738A1