Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TRANSMITTER CONFIGURATION
Document Type and Number:
WIPO Patent Application WO/2008/079811
Kind Code:
A1
Abstract:
A system and method for controlling a remotely operated device, the remotely operated device controllable by an original transmitter. The system includes a processing circuit configured to receive information based on a first control signal transmitted by the original transmitter. The processing circuit is configured to automatically learn information relating to the first control signal to generate a second control signal. The second control signal is configured to control the remotely operated device based on the information received from the original transmitter. The system also includes a transmitter circuit in communication with the processing circuit. The transmitter circuit is configured to transmit the second control signal to the remotely operated device.

Inventors:
WITKOWSKI TODD R (US)
SHEARER CARL L (US)
GEERLINGS STEVEN L (US)
Application Number:
PCT/US2007/087892
Publication Date:
July 03, 2008
Filing Date:
December 18, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
JOHNSON CONTROLS TECH CO (US)
WITKOWSKI TODD R (US)
SHEARER CARL L (US)
GEERLINGS STEVEN L (US)
International Classes:
G07C9/00
Domestic Patent References:
WO2005091240A22005-09-29
Foreign References:
US20050026604A12005-02-03
GB2322215A1998-08-19
US20030033540A12003-02-13
US6181255B12001-01-30
GB2404476A2005-02-02
Attorney, Agent or Firm:
ZIEBERT, Joseph, N. (777 E. Wisconsin AvenueMilwaukee, WI, US)
Download PDF:
Claims:

WHAT IS CLAIMED IS:

1. A wireless control system for controlling a remotely operated device, the remotely operated device controllable by a transmitter, the system comprising: a processing circuit configured to receive information based on a first control signal transmitted by the transmitter, the processing circuit configured to obtain information relating to the first control signal; and a transmitter circuit in communication with the processing circuit, the transmitter circuit configured to transmit a wireless signal formed at least in part using the information relating to the first control signal to the remotely operated device.

2. The wireless control system of claim 1, wherein the wireless signal is based in part on a system configuration codes stored in a memory on the wireless control system.

3. The wireless control system of claim 2, wherein an error message is transmitted based on the system configuration codes being unavailable.

4. The wireless control system of claim 1, wherein the wireless signal is a fixed code.

5. The wireless control system of claim 4, wherein the processing circuit generates a variable code to be added to the wireless signal.

6. The wireless control system of claim 5, wherein the variable code is transmitted before the fixed code based on a counter number.

7. The wireless control system of claim 5, wherein the fixed code is transmitted before the variable code based on a counter number.

8. The wireless control system of claim 1, further comprising a disruption circuit, the disruption circuit being configured to modify a counter sequence.

9. The wireless control system of claim 8, wherein the processing circuit advances the counter sequence by a predetermined disruption amount.

10. The wireless control system of claim 9, wherein an advanced counter sequence is stored.

11. The wireless control system of claim 8, wherein the processing circuit advances the counter sequence by a random amount.

12. The wireless control system of claim 8, wherein the processing circuit repeats a previous counter sequence.

13. A wireless control system for controlling a remotely operated device, the remotely operated device controllable by an original transmitter, the system comprising: a processing circuit configured to receive information based on a first control signal transmitted by the original transmitter, the processing circuit configured to determine information relating to the first control signal to generate a second control signal, the second control signal is configured to control the remotely operated device based on the information received from the original transmitter; a transmitter circuit in communication with the processing circuit, the transmitter circuit configured to transmit the second control signal to the remotely operated device; and wherein the processing circuit is configured to determine whether the original transmitter is a fixed code system or a variable code system.

14. The wireless control system of claim 13, wherein the original transmitter is the fixed code system and the processing circuit transmits only a fixed code system training procedure.

15. The wireless control system of claim 13, wherein the original transmitter is the variable code system and the processing circuit transmits only a variable code system training procedure.

16. A method of controlling a remotely operated device associated with a transmitter, the method comprising: receiving information associated with a first signal transmitted by the transmitter; and transmitting a wireless signal, the wireless signal being at least in part defined using the information associated with the first signal.

17. The method of claim 16, further comprising generating a variable code to be added to the wireless signal.

18. The method of claim 16, further comprising modifying a counter sequence.

19. The method of claim 18, wherein the counter sequence is modified by a random amount.

20. The method of claim 16, wherein the wireless signal is based in part on a system configuration codes stored in a memory.

Description:

TRANSMITTER CONFIGURATION

CROSS REFERENCE TO RELATED PATENT APPLICATIONS

[0001] The present application claims the benefit of and priority to: U.S. Provisional Patent Application No. 60/876,967 filed December 22, 2006; U.S. Provisional Patent Application No. 60/876,923 filed December 22, 2006; U.S. Provisional Patent Application No. 60/876,261 filed December 21, 2006; and U.S. Provisional Patent Application No. 60/876,964 filed December 22, 2006, all of the disclosures of which are incorporated by reference herein.

FIELD

[0002] The present disclosure relates generally to the field of in-vehicle control systems. The present disclosure relates more specifically to systems and methods for providing a universal transmitter with automated configuration features.

BACKGROUND

[0003] Electronically operated remote control systems, such as garage door opener systems, home security systems, home lighting systems, gate controllers, etc., typically employ a portable, hand-held transmitter (i.e., an original transmitter) to transmit a control signal to a receiver located at the remote control system. For example, a garage door opener system typically includes a receiver located within a home owner's garage and coupled to the garage door opener. A user presses a button on the original transmitter to transmit a radio frequency signal to the receiver to activate the garage door opener to open and close a garage door. Accordingly, the receiver is tuned to the frequency of its associated original transmitter and demodulates a predetermined code programmed into both the original transmitter and the receiver for operating the garage door. To enhance security of wireless control systems, such as a garage door opener system, manufacturers commonly use encryption technology to encrypt the radio frequency signal sent from a transmitter to a receiver. One such encryption method is a rolling code system, wherein each digital message sent from the transmitter to the receiver has a different code from the previous digital message.

[0004] As an alternative to a portable, hand-held original transmitter, a trainable transmitter or transceiver (e.g., universal remote control, home control transmitter, home control device, emulator, or transmitter) may be provided in a vehicle for use with remote control systems. A trainable transmitter is configurable by a user to activate one or more of a plurality of different wireless control system receivers using different radio frequency messages. A user trains the trainable transmitter to an existing original transmitter by holding the two transmitters in close range and pressing buttons on the original transmitter and the trainable transmitter. The trainable transmitter identifies the type of remote control system associated with the original transmitter based on a radio frequency signal received from the original transmitter. For example, the trainable transmitter may identify and store the control code and RF carrier frequency of the original transmitter's radio frequency control signal. In addition, the receiver may learn a transmitter identifier of the trainable transmitter. For systems employing a rolling code (or other encryption method), the trainable transceiver and receiver must also be "synchronized" or further trained so that the counters of the trainable transmitter and the receiver begin at the same value. Accordingly, the user presses a button on the remote control system receiver to put the receiver in a training mode. A button on the trainable transceiver may then be pressed, for example, two to three times, to transmit messages so that the receiver may learn the transmitter identifier, complete synchronization of the receiver and the trainable transmitter and confirm that training was successful. Once trained, the trainable transceiver may be used to transmit RF signals to control the remote control system. Other methods of training may include a "transmit-attempt" type system wherein the transmitter transmits a variety of sequences and the user and transmitter attempt to determine the most compatible sequence. [0005] The trainable transceiver is compatible with the fixed code system because the trainable transceiver downloaded, retrieved, emulated, or recorded the fixed code system's codes. The trainable transceiver utilizes the fixed code system's fixed codes to generate the commands sent out by the trainable transceiver. The trainable transceiver device is configured to send out the same code command with every application. This comprises security, as a code grabber could receiver and store the command for later use. [0006] It would be desirable to provide systems and methods that would transmit an additional rolling portion along with the fixed code command. It would be further desirable to provide systems and methods that were more cost effective than a pure rolling code trainable transceiver.

[0007] While rolling code systems provide increased security over fixed code systems, typical rolling code systems may increment a synchronization counter by a regular amount. Regular synchronization counter or rolling counter incrementation may be susceptible to an outside observer "cracking" or "copying" the code and its behavior. It is thought that outside observers may be able to use trainable transmitters, observing devices, and/or other RF -receiving devices of their own to detect enough valid transmitter and receiver behavior to store and replicate this behavior for nefarious uses. Typical rolling code systems, for example, may only increment a synchronization counter or rolling code counter based on regular intervals such as by 1 or by 3 with every button press. Once an observer has received or read a certain number of codes or transmissions, he or she may program another transmitter to operate like the legitimate transmitter, the observer (or observer's device) being relatively confident in the observed rolling code and its sequences. [0008] It would be desirable to provide systems and methods having increased security over typical rolling code transmitter and receiver systems. It would further be desirable to provide systems and methods that may add further security to trainable transmitter systems by occasionally incrementing the synchronization counter by an irregular amount, adding further security to the system by perhaps confusing outside observers. [0009] The trainable transceiver is compatible with rolling code systems via utilizing the rolling code systems' rolling code algorithms to generate the commands sent out by the trainable transceiver. In order to utilize these rolling code algorithms, the trainable transceiver is configured with complex software. This complex software requirement would be minimized by storing the sequence of rolling code commands on the trainable transceiver.

[0010] It would be desirable to provide systems and methods that required reduced software complexity over a typical rolling code trainable transceiver. It would be further desirable to provide systems and methods that were more cost effective than a typical rolling code trainable transceiver.

[0011] A transmitting device initially has no channels trained. While the process of training a universal transmitter that is programmed or trained by reading signals sent from an original transmitter are sometimes relatively accurate, there is room for improvement. Namely, training speed and accuracy remain issues for trainable transmitters. Unexpected transmitter or environment conditions may adversely affect the accuracy of the training process. It would be desirable to provide an improved training process for trainable

universal transmitters. It would further be desirable to provide a simplified training process when a user has already trained one of a plurality of buttons or input channels of a universal remote. It would further be desirable to provide a simplified training process when a user has multiple garage door openers of the same brand or type. It would further be desirable to provide training accuracy and speed advantages while maintaining a low cost and simplified electronic design.

SUMMARY

[0012] One embodiment of this disclosure relates to a wireless control system for controlling a remotely operated device, the remotely operated device controllable by a transmitter (e.g., an original transmitter). The system includes a processing circuit configured to receive information based on a first control signal transmitted by the transmitter. The processing circuit is configured to obtain information relating to the first control signal to generate a second control signal. The second control signal is configured to control the remotely operated device based on the information received from the transmitter. The system also includes a transmitter circuit in communication with the processing circuit. The transmitter circuit is configured to transmit a wireless signal associated with the second control signal to the remotely operated device. [0013] Another embodiment of this disclosure relates to a wireless control system for controlling a remotely operated device, the remotely operated device controllable by a transmitter. The system includes a processing circuit configured to receive information based on a first control signal transmitted by the transmitter. The processing circuit is configured to obtain information relating to the first control signal to generate a second control signal. The second control signal is configured to control the remotely operated device based on the information received from the transmitter. The system also includes a transmitter circuit in communication with the processing circuit. The transmitter circuit is configured to transmit a wireless signal associated with the second control signal to the remotely operated device. The processing circuit is also configured to determine whether the transmitter is a fixed code system or a variable code system.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014] The disclosure will become more fully understood from the following detailed description, taken in conjunction with the accompanying drawings.

[0015] FIG. 1 is a perspective view of a motor vehicle that includes a number of vehicle systems, including a trainable transmitter and an in-vehicle control system, according to one exemplary embodiment;

[0016] FIG. 2 is a front elevation view of the user interface of the in-vehicle control system of FIG. 1, according to one exemplary embodiment;

[0017] FIG. 3 is a block diagram of the in-vehicle control system of FIG. 1, according to one exemplary embodiment;

[0018] FIG. 4 is a more detailed embodiment and block diagram of the in-vehicle control system of FIG. 3, according to one exemplary embodiment;

[0019] FIG. 5 is a block diagram of the trainable transmitter, according to an exemplary embodiment;

[0020] FIG. 6 is a perspective view of the vehicle with a trainable transmitter and a house with a home receiving device, according to an exemplary embodiment;

[0021] FIG. 7 is a block diagram of the trainable transmitter and the remote system, according to an exemplary embodiment;

[0022] FIGS. 8A and 8B are illustrations of the trainable transmitter in a vehicle, according to exemplary embodiments;

[0023] FIG. 9 is a block diagram of the trainable transmitter and the in-vehicle control system, according to an exemplary embodiment;

[0024] FIG. 10 is a block diagram of the trainable transmitter in communication with the home device, according to an exemplary embodiment;

[0025] FIG. 11 is another block diagram of the trainable transmitter, according to an exemplary embodiment;

[0026] FIG. 12 is another block diagram of the trainable transmitter, according to an exemplary embodiment;

[0027] FIG. 13 is a block diagram of trainable transmitter in communication with original transmitter and remote control system, according to an exemplary embodiment;

[0028] FIG. 14 is a flowchart of the procedure to retrieve system configuration codes, according to an exemplary embodiment;

[0029] FIG. 15A is a flowchart of the procedure to determine whether the original transmitter utilized fixed or variable code commands, according to an exemplary embodiment;

[0030] FIG. 15B is a flowchart of the procedure to add a rolling code to a fixed code system, according to an exemplary embodiment;

[0031] FIG. 16 is a flowchart of the procedure to implement a counter disruption protocol, according to an exemplary embodiment;

[0032] FIG. 17 is a flowchart of the procedure to determine whether the system was previously trained, according to an exemplary embodiment; and

[0033] FIG. 18 is a flowchart of the procedure to determine whether the system was previously trained, according to an exemplary embodiment.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

[0034] A universal transmitter 103 of the present disclosure may be configured to work with a variety of in- vehicle control systems 106 and may be installed in any number of vehicles. For example, referring to FIG. 1, a vehicle 100 that universal transmitter 103 may be installed in, may include a number of subsystems for user convenience and entertainment. A vehicle generally includes a heating, ventilation, and air-conditioning (HVAC) system, a sound system, and in-vehicle control system 106 (e.g., media system, navigational system, entertainment system, display system, communications systems, etc.). The HVAC system, sound system, display systems, and communications systems may be coupled to an in-vehicle control system, which is capable of controlling and monitoring a variety of systems, automatically or by a manual user command. It is noted that in various exemplary embodiments, vehicle 100, the HVAC system, the sound system, and other vehicle systems may be of any past, present, or future design capable of interacting with in- vehicle control system 106.

[0035] Referring to FIG. 2, one exemplary embodiment of in-vehicle control system 106 is shown. In-vehicle control system 106 may include an output display 108, one or more knobs 110, one or more pushbuttons 112, and one or more tactile user inputs or pushbuttons 114, which facilitate controlling various vehicle 100 and media functions. In an exemplary embodiment, output display 108 may be a touch-screen display, while in other exemplary embodiments, may be any other non-touch sensitive display. In still other exemplary embodiments, output display 108 may be of any technology (e.g., LCD, DLP, plasma, CRT), configuration (e.g., portrait or landscape), or shape (e.g., polygonal, curved, curvilinear). Knobs 110 and pushbuttons 112 and 114 may be configured: (i) to control functions of trainable transceiver 103, (ii) to control functions of the HVAC System such as

fan speed, cabin temperature, routing of air flow, (iii) to control playback of media files over the sound system, (iv) to control retrieval of phonebook entries, or (v) to control any other desired vehicle function. Pushbuttons 114 typically allow for the selection and display of various functions of in- vehicle control system 106 including trainable transceiver, HVAC System control, sound system control, media system control, hands-free phone use, contract or address/phone book management, calendar viewing/modification, and vehicle data logging. The operation of pushbutton 114 for media playback may display a media playback menu screen or execute commands that allow the user to view, select, sort, search for, and/or play audio or video files by tactile or oral command. The operation of pushbutton 114 for hands-free phone operation may display a menu screen or execute commands that allow the user to connect in- vehicle control system 106 to a mobile phone so that speaking into the vehicle console of in-vehicle control system 106 operates the mobile phone. The operation of pushbutton 114 for trainable transceiver control may display a menu screen or execute commands that allow the user to control the system availability, system configuration and sensitivity either by tactile or oral commands. The operation of pushbutton 114 for HVAC control may display a menu screen or execute commands that allow the user to control cabin temperature and air flow by tactile or oral command. The operation of pushbutton 114 for contact management may display a menu screen or execute commands that allow the user to view, list, select, sort, search for, edit, and/or dial one or more entries containing personal contact information, by use of a tactile or oral command. The operation of pushbutton 114 for calendar management may display a menu screen or execute commands that allow the user to view, list, select, sort, search for, edit, and/or create one or more entries containing personal schedule information by tactile or oral command. The operation of pushbutton 114 for vehicle log management may display a menu screen or execute commands that allow the user to input, view, select and/or reset information related to the vehicle 100 operation (e.g., fuel economy, engine temperature, distance to empty, etc.) by tactile or oral command.

[0036] Referring to FIG. 3, in-vehicle control system 106 is capable of accessing data files from a remote source 116 over a communication link 118. In-vehicle control system 106 may include a communication device 120, a data processing system 122, a display driver 124, a user interface 126, an audio input device 128, an audio output device 130, and a memory device 132.

[0037] Referring to FIG. 4, in-vehicle control system and remote source are shown in greater detail. A data processing system may include a text-to-grammar device, a speech recognition device, and a text-to-speech device. A data processing system may include any number of additional hardware modules, software modules, or processing devices (e.g., additional graphics processors, communications processors, etc.).

[0038] Communication device 120 is generally configured to establish communication link 118 with remote source 116. In one exemplary embodiment, in-vehicle control system 106 may establish a wireless communication link such as with Bluetooth communications protocol, an IEEE 802.11 protocol, an IEEE 802.16 protocol, a cellular signal, a Shared Wireless Access Protocol-Cord Access (SWAP-CA) protocol, a wireless USB protocol, or any other suitable wireless technology. In another exemplary embodiment, in-vehicle control system 106 may establish a wired communication link such as with USB technology, IEEE 1394 technology, optical technology, other serial or parallel port technology, or any other suitable wired link. Communication device 120 may receive one or more data files from remote source 116. In various exemplary embodiments, the data files may include text, numeric data, audio, video, or any combination thereof. [0039] Data processing system 122 is coupled to communications device 120 and is generally configured to control each function of in-vehicle control system 106. Data processing system 122 preferably facilitates speech recognition capabilities of in-vehicle control system 106 for the convenience of the user. Data processing system 122 may include digital or analog processing components or be of any past, present, or future design that facilitates control of in-vehicle control system 106.

[0040] Display driver 124 is coupled to output display 108 and is typically configured to provide an electronic signal to output display 108. In one exemplary embodiment, the electronic signal may include the text and/or numeric data of the data files, while in other exemplary embodiments, any other desired data may be included with the text and/or numeric data or by itself in the electronic signal to output display 108. In another exemplary embodiment, display driver 124 may be configured to control output display 108 with touch-screen capabilities, while in other exemplary embodiments, display driver 124 may be configured to control output display 108 without making use of touch-screen capabilities. In still other exemplary embodiments, display driver 124 may be of any past, present, or future design that allows for the control of output display 108.

[0041] Audio input device 128, for example a microphone, is configured to receive the utterance of a user for transmission to data processing system 122 for speech recognition so that the functions of in-vehicle control system 106 may be operated by voice command. Audio output device 130, for example a built-in speaker, is configured to provide the user with an audio prompt of various functions, such as user selection confirmation. [0042] Memory device 132 is configured to store data accessed by in-vehicle control system 106. For example, memory device 132 may store data input by remote source 116, data created by data processing system 122 that may be used later, intermediate data of use in current calculation, or any other data of use by in-vehicle control system 106. [0043] Data processing system 122 generally includes a text-to-grammar device 134, a speech recognition device 136, and a text-to-speech device 138. Text-to-grammar device 134 may be coupled to communications device 120 and is generally configured to generate a phonetic representation of the text and/or numeric data of each of the data files received by communications device 120 from remote source 116. The phonetic representation of the text and/or numeric data of each data file may be configured to facilitate speech recognition of each data file. After conversion of a data file to a phonetic representation, the data file may be accessed via an oral input command received by speech recognition device 136 via audio input device 128.

[0044] Speech recognition device 136 is typically configured to receive an oral input command from a user via audio input device 128. Speech recognition device compares the received oral input command to a set of predetermined input commands, which may have been configured by text-to-grammar device 134. In various exemplary embodiments, the input commands may be related to the control of the warning system, the playback of a media file, the dialing or input of a phone book entry, the entry or listing of calendar or contact data, the control of the HVAC System, or any other desired function to be performed on data. Speech recognition device 136 may determine an appropriate response to the oral input command received from the user, for example, whether the oral input command is a valid or invalid instruction, what command to execute, or any other appropriate response.

[0045] Text-to-speech device 138 is generally configured to convert the text and/or numeric data of each data file received from remote source 116 into an audible speech representation. This functionality may allow in-vehicle control system 106 to audibly give data to the user via audio output device 130 or the audio system 104. For example, in-

vehicle control system 106 may repeat a user selected function back to the user, announce media file information, provide phone book or contact information, or other information related to data stored in memory 132, remote source 116, remote server 154, etc. [0046] Memory device 132 includes both a volatile memory 140 and a non- volatile memory 142. Volatile memory 140 may be configured so that the contents stored therein may be erased during each power cycle of in- vehicle control system 106 or vehicle 100. Non- volatile memory 142 may be configured so that the contents stored therein may be retained across power cycles, such that upon in- vehicle control system 106 power-up, data from previous system use remains available for the user.

[0047] According to an exemplary embodiment, remote source 116 may be any suitable remote source that includes a transceiver and is able to interface with in-vehicle control system 106 over communications link 118 (either wireless or wired). In various exemplary embodiments, remote source 116 may be one or more of the following: a mobile phone 144; a personal digital assistant (PDA) 146; a media player 148; a personal navigation device (PND) 150; a pager 152; a remote server 154 that may be coupled to the Internet; a computer; a personal computer; a networked storage drive; or various other remote sources. Remote source 116 may have a memory or data storage device, one or more processing devices, and one or more communications devices.

[0048] In FIG. 5, a block diagram of trained transmitter device 200 is shown, according to an exemplary embodiment. In an exemplary embodiment, trained transmitter device 103 includes a power supply 202, a microprocessor 204, a crystal 206, a user switch 208, a user LED 210, an ASIC 212, a tuning element 214, a transmitter tuner 220, a radio frequency detector 222, a transmission antenna 224, and a receiving antenna 226. ASIC 212 includes an oscillator 216, a divider 218 and a filter 228. In an exemplary embodiment, microprocessor 204 communicates with ASIC 212 utilizing a mode control, automatic gain control, a voltage control oscillator, a divider, I/O circuits, and a received signal strength indicator. In an exemplary embodiment, the voltage from power supply 202 may be 5 volts (DC). In another exemplary embodiment, transmission antenna 224 voltage may be 7 volts (DC). In another exemplary embodiment, crystal 206 may be a 20 MHZ crystal and filter 228 may be an IF 10.7 MHz filter.

[0049] Referring to FIG. 6, vehicle 100 is shown having trained transmitter device 103 (e.g., universal transmitter, universal remote, trainable transmitter, remote control device, etc.). While trained transmitter device 103 may be located anywhere inside or outside of

vehicle 100, trained transmitter device 103 is shown in FIG. 6 as sending a signal to a home receiving device 250 from trained transmitter device 103 located within vehicle 100. Home receiving device 250 is shown as a device that may be used with a garage door opener. According to other various embodiments, home receiving device 250 may be configured for use with any home device (e.g., lighting, security, gates, etc.). According to other various exemplary embodiments, home receiving device 250 may be embedded into or otherwise integrally a part of the garage door opening system. Original transmitter 101 is also illustrated in FIG. 6. Original transmitter 101 may be a transmitter that was supplied with home receiving device 250 or garage door opener. Original transmitter 101 is the transmitter that trained transmitter device 103 will access and learn the code commands. In an exemplary embodiment code commands may be fixed, variable, or a combination thereof. In an exemplary embodiment, trained transmitter device 103 will utilize fixed code commands and a rolling portion added to the fixed code commands to activate home receiving device 250 during and after training to operate the specific home device (i.e. garage door, lighting, security, gates, etc.). The additional rolling portion may be added before, after or vary between being before or after the fixed code commands. In an exemplary embodiment, home receiving device 250 responds to the fixed code commands and disregards the rolling code command. After training, original transmitter 101 may be stored in a safe location, as it is not needed unless or until the user would like to retrain or reprogram trained transmitter device 103 for any reason.

[0050] Referring to FIG. 7, a simple block diagram of trainable transmitter device 103 and a remote receiving system 105 is shown, according to an exemplary embodiment. Trained transmitter device 103 is capable of transmitting an appropriate electromagnetic signal (e.g., radio frequency-based "RF", etc.) to remote receiving system 105 having a receiver 109. Trained transmitter device 103 may have any number of user input devices configured to activate the transmission of signals from a transmitter to receiver 109. One or more of the user input devices may also be used to begin a training process. User input devices may also have dual purposes depending on how they are used. For example, a user input devices 111 may be held down for a predetermined period of time to begin a training process (e.g., 10 seconds, etc.). Some user input devices 111 may have a single use (e.g., initiating a training process), while others have a dual use (e.g., use during training and use during normal operation, etc.).

[0051] Referring to FIGS. 8A and 8B, at least the user control portion of the trained transmitter 107 is shown installed in vehicle 100. User control portion of the trained transmitter 107 may house all of the circuitry of trained transmitter device 103, part of the circuitry, or might just house user buttons and/or other user controls or indicators. According to various alternative embodiments, the structures shown in FIGS. 8 A and 8B may house the transmission circuitry and other electronics, but not house or support input buttons. FIG. 8 A illustrates user control portion of the trained transmitter 107 as a device that may be installed on a driver's side visor 113 of vehicle 100. FIG. 8B illustrates user control portion of the trained transmitter 107 installed at an overhead location within vehicle 100. FIG. 8A displays trained transmitter device 103 as having a user input array including three buttons. FIG. 8 A also includes an indicator light (e.g., an LED, etc.) used for visual user communication. For example, the indicator light may indicate a training mode and/or light up when a user has pressed a button. The transmitter of FIG. 8B is shown having more user input buttons 115, a user input microphone 117 and a speaker 119. User input microphone 117 may be used to detect user commands. Speaker 119 may be used to give the user audio indication or feedback. For example, speaker 119 could use speech output to direct the user through the training process. It is important to note that any user input device or devices may be used to train and/or operate the universal transmitter. For example, the transmitter might be programmed, trained, or operated via detecting a button press, detecting a button release, detecting a voice command, detecting one or more simultaneous button presses, detecting any combination or sequence of button presses, detecting touch screen input, detecting switch actuation, and/or detecting any other user input, physical or otherwise. It is important to note that while some of the exemplary embodiments described in this description recite a button release or button press, any input steps that may signal or control the universal transmitter to start or stop training or operation may be used. For example, vehicle's 100 primary media system or control system (e.g., shown in FIGS. 1-6, etc.) could be used to control and/or train the universal transmitter. [0052] Referring to FIG. 9, according to an exemplary embodiment, a control system of FIGS. 1-6 is shown connected to trained transmitter device 103. Trained transmitter device 103 is shown having an interface with a vehicle data bus 256. The control system may communicate through vehicle data bus 256 to trained transmitter device 103. According to various alternative embodiments trained transmitter device 103 may be connected directly to the control system or not connected to the control system at all. When trained transmitter

device 103 is connected to the control system (through the vehicle data bus or otherwise), the control system may be used to control the programming (training) and/or normal operation of trained transmitter device 103. For example, the speech recognition device or buttons of the control system may be used to control the universal transmitter during the training process or during normal operation. When trained transmitter device 103 is used with the control system, it may still have independent buttons of its own. For example, the buttons or input devices shown in FIGS. 7, 8 A, and 8B may still be used with the transmitter even though the control system may also operate the transmitter. [0053] Referring to FIG. 10, a block diagram of trained transmitter device 103 is shown. The trained transmitter device 103 may accept signals or input from a user input array 266 or from a secondary input 268 (e.g., input from a primary in- vehicle control system 106, a separate speech recognition device, a secondary control system, etc.). Trained transmitter device 103 may be connected to an audio output device 260 (e.g., a built-in speaker, a dedicated home trained transmitter speaker, or the audio system of the vehicle, etc.). Trained transmitter device 103 may also include a connection to a visual output 262 such as an LED. Visual output 262 may also be a display on the user dash, a display connected to the control system or otherwise. Trained transmitter device 103 is also shown having a transmitting apparatus. The transmitting apparatus may be an antenna and accompanying RF circuitry, may be internal a housing or external, may be located anywhere on vehicle 100 or otherwise. Trained transmitter device 103 may send signals to a home device 264, such as a garage door opener using the transmitting apparatus and accompanying RF circuitry.

[0054] Referring to FIG. 11, a block diagram of trained transmitter device 103 is shown. Trained transmitter device 103 may include a connection to a variety of user input arrays 266, 286, 288 and a vehicle power interface 284. According to another embodiment, trained transmitter device 103 may be a self-powered home trained transmitter having a separate power supply. According to another embodiment, trained transmitter device 103 may have both a power supply 274 and vehicle power interface 284. Trained transmitter device 103 may have a transmitting (and possibly receiving) antenna 282, an RF circuitry 276, (e.g., transmitting circuitry, receiving circuitry, transceiving circuitry, digital to analog circuitry, analog to digital circuitry, etc.). Trained transmitter device 103 may also have a processor 272, a micro controller 278 (e.g., a second processor), a memory 280, and or any

other hardware or software components that may facilitate the function of the universal transmitter.

[0055] Referring to FIG. 12, a block diagram of trained transmitter device 103 is shown, according to another exemplary embodiment. Trained transmitter device 103 may include an antenna 294, a receiver 296, a transmitter 298, a control circuit 302 including a memory 304 (non-volatile and/or volatile, etc.), a switch interface 306, switches, a display 300, and a power supply 308. Antenna 294 may transmit signals to a remote control system 290 and the remote control system's accompanying receiver. Antenna 294 may receive signals from original transmitter 101 during training processes. During normal operation, when a user presses a switch (e.g., button, etc.), switch interface 306 and control circuit 302 may determine which switch was pressed, recall stored code and other transmit information from non- volatile memory and transmit the recalled code and transmission information via transmitter 298 and antenna 294. During training operation, trained transmitter 103 may receive a request to enter a training mode (e.g., via one of the switches or otherwise). Once training mode has begun, the user may be prompted (visually, audibly, or otherwise) to activate original transmitter 101. The user will activate original transmitter 101 and receiver 296 of trained transmitter device 103 will attempt to read or detect the carrier frequency and control data of original transmitter 101. Trained transmitter device 103 may attempt to determine whether original transmitter 101 uses a fixed or rolling code and take a number of steps related to this determination. Data detected by receiver 296 of trained transmitter device 103 from original transmitter 101 may be stored in memory 304 of trained transmitter device 103 and associated with a switch or button of the transmitter. In an exemplary embodiment, trained transmitter device 103 receives system configuration data from original transmitter 101. Trained transmitter device 103 determines that original transmitter 101 is a fixed code system. Trained transmitter device 103 stores the fixed code commands of original transmitter 101. Trained transmitter device 103 enables the add rolling command code program, which adds a rolling command code in variable locations (i.e. before or after), solely before or solely after the fixed code command is transmitted. Trained transmitter device 103 may take any number of further training steps to ensure that the training of the transmitter and the corresponding remote receiving device was completed and accurate (e.g., synchronization steps, identifying steps, testing steps, etc.). [0056] Referring to FIG. 13, trained transmitter device 103 is shown, according to an exemplary embodiment. Trained transmitter device 103 may use a user input device 310, a

receiver circuit 312, and a transmitter circuit 314 to train a remote control system 290. Original transmitter 101 may have a user input device 316 for activating transmission from original transmitter 101 to receiving circuit 312. In exemplary embodiments, receiving circuit 312 can be included in remote control system 290 and/or trained transmitter device 103.

[0057] Referring to FIG. 14, a process of retrieving from universal transmitter's 103 memory stored transmitter codes based on a system configuration signal is shown, according to an exemplary embodiment. A transmission process may be started when universal transmitter's 103 training button has been pressed (step 400). Universal transmitter 103 may then detect data pattern and carrier frequency and uses this information to determine original transmitter's 101 system configuration (step 402). Universal transmitter 103 determines whether the system configuration codes are stored on universal transmitter 103 (step 404). If the system configuration codes are not stored on universal transmitter 103, then an error communication message is sent and the system returns to the start position (step 408). If the system configuration codes are stored on universal transmitter 103, then universal transmitter 103 retrieves the system configuration stored codes from memory and sets these stored system configuration codes as the primary universal transmitter codes (step 406). Universal transmitter 103 may communicate a training successful message to the user or the process may end when the user releases the trained button and/or the system times out (step 410).

[0058] In an exemplary embodiment, the code data can be retrieved from a table listing various manufacturers of rolling code transmitters and corresponding code data for each manufacturer. In an exemplary embodiment, the code data can be for each manufacturer and the list of codes can range in size from 1,000 to 50,000 codes. The codes would consist of sequential codes generated according to the respective manufacturer's rolling code algorithm. The system would index the codes and proceed through the stored code data. In an exemplary embodiment, the system utilizes and sequences through the predetermined codes rather than generating the codes via a defined rolling code algorithm. The user accesses the predetermined codes by pressing a button. Data stored during the training process would indicate which set of codes to access, and a counter would determine which particular code within the table would be transmitted upon a button press. The counter would be updated and written back to non- volatile memory so that upon the next button press, a subsequent code in the table would be transmitted. It should be noted that one

skilled in the art would know many different ways to emulate the transmission from a transmitter and that these known methods are incorporated into this disclosure. [0059] Referring further to FIG. 14, it is important to note that the storing and retrieving process may be carried out in a variety of ways. For example, the process may be carried out in internal hardware, software, or some combination of hardware and software. In an exemplary embodiment, trained transceiver device's 103 process circuitry may carry out the system configuration determination and system configuration code retrieval steps. The process may also be carried out by external hardware, software, or some combination of hardware and software. In an exemplary embodiment, an external device may carry out the system configuration determination and system configuration code retrieval steps. The process may write to non- volatile memory at the end of the entire process or during the process, or otherwise. Volatile memory may be used to store any number of variables (temporary or otherwise) during the process, before and/or after writing to non-volatile memory.

[0060] According to an exemplary embodiment, universal transmitter 103 may comprise a transceiver, an input device, a disruption counter, and a rolling code counter. [0061] Referring to FIG. 15A, a process of retrieving from universal transmitter's 103 memory stored transmitter codes based on a system configuration signal is shown, according to an exemplary embodiment. A transmission process may be started when universal transmitter's 103 training button has been pressed (step 420). Universal transmitter 103 may then detect data pattern and carrier frequency and use this information to determine original transmitter's 101 system configuration (step 422). Universal transmitter 103 determines whether the system configuration is a fixed or rolling code system (step 424). If the system configuration is a rolling code system, then universal transmitter 103 initiates a standard rolling code training method (step 428). If the system configuration is a fixed code system, then universal transmitter 103 retrieves the system configuration code commands from original transmitter 101, stores these fixed code commands in memory and sets these fixed code commands as the primary universal transmitter codes (step 426). Universal transmitter 103 may communicate a training successful message to the user or the process may end when the user releases the trained button and/or the system times out (step 430).

[0062] Referring to FIG. 15B, a process for transmitting the fixed code commands with a rolling code adder is shown, according to an exemplary embodiment. A transmission

process may be started when universal transmitter's 103 command send button has been pressed (step 440). In an exemplary embodiment, universal transmitter 103 determines the number of times (i.e. N) it has previously transmitted code commands (step 442) . If universal transmitter 103 determines that N is even, then universal transmitter 103 first transmits the fixed code command followed by the rolling code command (step 444). If universal transmitter 103 determines that N is odd, then universal transmitter 103 first transmits the rolling code command followed by the fixed code command (step 446). In an exemplary embodiment, home receiving device 105 responds to the fixed code command and disregards the rolling code command. Universal transmitter 103 increments N by a predetermined number (e.g., 1, 2, 5, 10, 20, etc.) (step 448). Universal transmitter 103 stores the incremented N in memory (step 450). Universal transmitter 103 ends the procedure (step 452).

[0063] Referring further to FIGS. 15A and 15B, it is important to note that the storing and retrieving process may be carried out in a variety of ways. For example, the process may be carried out in internal hardware, software, or some combination of hardware and software. In an exemplary embodiment, trained transceiver device's 103 process circuitry may carry out the system configuration determination and system configuration code retrieval steps. The process may also be carried out by external hardware, software, or some combination of hardware and software. In an exemplary embodiment, an external device may carry out the system configuration determination and system configuration code retrieval steps. The process may write to non- volatile memory at the end of the entire process or during the process, or otherwise. Volatile memory may be used to store any number of variables (temporary or otherwise) during the process, before and/or after writing to non-volatile memory. It should be noted that a counter method may be utilized to generate the rolling codes.

[0064] Referring to FIG. 16, a process of transmitting a rolling code from universal transmitter 103 (e.g., remote control device, home control device, etc.) is shown, according to an exemplary embodiment. A transmission process may be started when universal transmitter's 103 button previously trained to a rolling code has been pressed (step 460). Universal transmitter 103 may then load from its non- volatile memory the frequency, serial number, encryption key, rolling code count and disruption code count (step 462). The disruption code counter may be incremented and written back to the non-volatile memory or otherwise updated (step 464). Universal transmitter 103 may then determine whether the

disruption count indicates that it is time to disrupt (step 466). If universal transmitter 103 determines that it is not time to disrupt the rolling counter, then universal transmitter 103 may increment the rolling code counter in the normal fashion and write back to the nonvolatile memory (step 470). If universal transmitter 103 determines that it is time to disrupt the rolling code counter, universal transmitter 103 may either not update at all, or may advance the rolling code counter by an unusual amount (e.g., such as by 10, 20, or some multiple a decade or two larger than the normal increment amount, etc.) (step 468). If the rolling code is advancing (rather than not updating at all), the system may then write the updated value to the non- volatile memory (step 468). Universal transmitter 103 may then output a rolling code message (or messages) based on the recently incremented (regularly or irregularly) rolling code counter (step 472). Universal transmitter 103 may continue transmitting until the button is released (step 474) and the process may end when the user releases the trained button and/or the system times out (step 476).

[0065] Referring further to FIG. 16, it is important to note that the "disrupting" process may be carried out in a variety of ways. For example, the process may be carried out in hardware, software, or some combination of hardware and software. The process may write to non- volatile memory at the end of the entire process or during the process as shown in FIG. 16, or otherwise. Volatile memory may be used to store any number of variables (temporary or otherwise) during the process, before and/or after writing to non-volatile memory. The irregular increment amount of the rolling code count may be determined in a variety of ways. For example, the irregular increment could be based on a quasi-random function, some even or odd multiple of the normally incremented amount, an amount based on an equation or code, an amount based on any variable stored within the memory, a clock value, a relatively limited set of "irregular values" and/or any other derivative or combination of the aforementioned functions or methods. For example, the irregular increment amount could be based on a finite set including values four through ten, a set including multiples often, a set including alternating zero and multiples often values, a set based on the minute or hour of the day, etc.

[0066] Referring further to FIG. 16, it is important to note that the determination as to whether it is time to disrupt may be based on any number of various types of determinations. For example, this determination may be made based on a predetermined threshold disruption counter value, a multiple of a certain number (e.g, every even multiple of 5 indicates a time to disrupt, etc.), even numbers, odd numbers, a determination based on

a mathematical function, a determination based on another variable stored in memory, a determination based on a clock, etc. After this determination has been made, the disruption counter may continue incrementing or the system may clear or reset a disruption counter variable or bits. According to various alternative embodiments, the system may clear or reset the disruption counter only when it has reached a predetermined threshold or maximum value.

[0067] According to an embodiment, universal transmitter 103 may comprise a transceiver, an input device, a disruption counter, and a rolling code counter, wherein the transmitter is configured to update the rolling code counter by an irregular amount when the disruption counter meets a disruption criteria, and wherein the transceiver is configured to transmit messages based upon a rolling code counter. According to another embodiment, a process of disrupting a rolling code transmission comprises updating a disruption counter whenever a rolling code message has been transmitted, determining whether a disruption counter has met predetermined disruption criteria, disrupting a rolling code counter by advancing the rolling code counter by an irregular amount, and transmitting a rolling code message based on the rolling code counter.

[0068] According to one exemplary embodiment, remote control system 290 is trained to a rolling code system. The system outputs a different data message with every button press. While the messages may appear random, they may actually be typically based on a counter that increments at regular intervals (such as by one or three) with every button press. Further security may be added to the remote control system by occasionally incrementing the counter by an irregular amount (such as by ten or twenty). The counter may occasionally not be incremented. These steps and the hardware and/or software to implement them may add further complexity and/or security to the system such that observers trying to read (e.g., "crack", etc.) the rolling code would be confused by the system's behavior. According to various alternative embodiments, the receiving system (e.g., garage door opener, garage door opener receiver, etc.) may also know of, be trained, be programmed, and/or have any number of other hardware and/or software modifications to support any of the described systems or methods.

[0069] Referring to FIG. 17, a process of training trainable transmitter 103 is illustrated, according to an exemplary embodiment. The process shown in FIG. 17 may advantageously allow trainable transmitter 103 to more accurately and/or quickly train to the parameters of the remote receiving device and/or original transmitter 101. Trainable

transmitter 103 (e.g., universal transmitter) may undertake (with user input) any number of steps to start the training process. For example, a user may press a button or buttons on trainable transmitter 103 to begin the training process (step 480). The user may also be instructed to press a button or buttons on original transmitter 101. Universal transmitter 103 may then detect the data pattern and carrier frequency information transmitted from original transmitter 101 (step 482). This data will be used to train universal transmitter 103 to original transmitter 101. According to various exemplary embodiments, any number or types of information may be detected or determined by receiving the signal sent from original transmitter 101 (e.g., security information, etc.). After data has been detected (and/or trained) trainable transmitter 103 may then determine whether any other universal transmitter channels have already been trained (step 484). If not, trainable transmitter 103 will set a FIXED or ROLLING variable within non-volatile memory based on the type of system just detected or trained (step 486). The system may also store original transmitter 101 code and frequency in non- volatile memory for rebroadcast later (step 488). At this point, the system may end training mode and the train may be considered successful (step 494). If the answer to the determination of whether universal transmitter 103 channel had already been trained is yes, trainable transmitter 103 may further determine whether trainable transmitter 103 currently being trained is of the same type as previously trained channels (step 490). If trainable transmitter 103 currently being trained is of the same type as previously trained channels, then trainable transmitter 103 will store original transmitter 101 code and frequency in non- volatile memory for rebroadcast (step 488) and/or otherwise complete the training process successfully (step 494). If trainable transmitter 103 is currently being trained to original transmitter 101 of a different type (i.e., Rolling or Fixed) as previously trained channels the training process may end without trainable transmitter 103 storing original transmitter 101 code and frequency in non- volatile memory for later rebroadcast. If this occurs, the train may end as unsuccessful (step 492). By allowing trainable transmitter 103 to only train remaining channels to the same type of transmitter (e.g., Fixed or Rolling, etc.) as the type trained to the first channel, trainable transmitter 103 may improve the accuracy and speed of the training process and perhaps even normal transmit operation. Since a user with multiple garage doors (and multiple garage door openers) typically has openers of the same type, brand, or style, this innovation will simplify the training process for the additional channels. According to an exemplary embodiment, trainable transmitter 103 may also take any number of additional automated

configuration steps leveraging or using data relating to previously trained channels to better train and/or operate subsequent channels.

[0070] Referring to FIG. 18, a process of training a trainable transmitter is illustrated, according to another exemplary embodiment. Once a user starts a training process by pressing one or more buttons or otherwise (step 500), the system may determine whether any channels have already been trained (step 502). If channels have been trained, the system may check the FIXED/ROLLING bit to determine which process to use (step 504). If channels have not been trained, the system set FIXED or ROLLING bit in non- volatile memory based on the type of system trained (step 510). This configuration may provide additional performance gains. For example, if the bit (or variable for flagging) is set to ROLLING, the part of the hardware and/or software routine of universal transmitter 103 that relates to fixed code transmitters would not need to be used or run, and fixed codes will not be allowed to train (step 506). If the bit is set to FIXED, the part of the hardware and/or software routine of universal transmitter 103 that relates to rolling code transmitters would not need to be used or run, and rolling codes will not be allowed to train (step 508). Once detection and decoding have occurred, universal transmitter 103 may store any necessary original transmitter 101 codes, frequencies, or sequences in the non- volatile memory of universal transmitter 103 for later rebroadcast (step 512). The train may then end successfully (step 514). The process may have any additional steps or checks that may end training unsuccessfully. For example, either the FIXED decoding routine or the ROLLING decoding routines may timeout, end, fail, or otherwise terminate without the training being successful.

[0071] While the exemplary embodiments illustrated in the Figures and described above are presently preferred, it should be understood that these embodiments are offered by way of example only. Accordingly, the present disclosure is not limited to a particular embodiment, but extends to various modifications that nevertheless fall within the scope of the appended claims. The order or sequence of any processes or method steps may be varied or re-sequenced according to alternative embodiments.

[0072] Describing the disclosure with Figures should not be construed as imposing on the disclosure any limitations that may be present in the Figures. The present disclosure contemplates methods, systems and program products on any machine -readable media for accomplishing its operations. The embodiments of the present disclosure may be implemented using an existing computer processor, or by a special purpose computer

processor for an appropriate vehicle system, incorporated for this or another purpose or by a hardwired system.

[0073] It is important to note that the construction and arrangement of the control system as shown in the various exemplary embodiments is illustrative only. Although only a few embodiments of the present disclosures have been described in detail in this disclosure, those skilled in the art who review this disclosure will readily appreciate that many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.) without materially departing from the novel teachings and advantages of the subject matter recited in the claims. For example, elements shown as integrally formed may be constructed of multiple parts or elements (e.g., control system, memory device, communications device, data processing device, remote source, remote server, home control device, etc.), the position of elements may be reversed or otherwise varied (e.g., the components of control system, home control device, etc.), and the nature or number of discrete elements or positions may be altered or varied (e.g., communications device, memory device, the components of control system, etc.). Accordingly, all such modifications are intended to be included within the scope of the present disclosure as defined in the appended claims. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. In the claims, any means- plus-function clause is intended to cover the structures described herein as performing the recited function and not only structural equivalents but also equivalent structures. Other substitutions, modifications, changes and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosures as expressed in the appended claims. [0074] As noted above, embodiments within the scope of the present disclosure include program products comprising machine -readable media for carrying or having machine- executable instructions or data structures stored thereon. Such machine-readable media can be any available media which can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special

purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions. [0075] It should be noted that although the diagrams herein may show a specific order of method steps, it is understood that the order of these steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. It is understood that all such variations are within the scope of the disclosure. Likewise, software implementations of the present disclosure could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps. [0076] The foregoing description of embodiments of the disclosure has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the disclosure. The embodiments were chosen and described in order to explain the principals of the disclosure and its practical application to enable one skilled in the art to utilize the disclosure in various embodiments and with various modifications as are suited to the particular use contemplated.