System and method for adaptive programming of a remote control

Abstract
A method and system for adaptively configuring a remote control includes analyzing a log of events, maintained by the remote control, which indicate how the remote control and the devices it controls are used by a user. Once the analysis is performed, the system and method can suggest alternative configurations of the remote control to the user. The range and type of alternative configurations is not particularly limited and can include changing which devices are employed for various user activities and/or how those activities are performed, the placement and hierarchy of commands in a menu tree and/or troubleshooting and set up configurations. The analysis can be performed either partially or totally within the remote control, or at, or in conjunction with, a service to which the remote control connects through a network.
Description
FIELD OF THE INVENTION

The present invention relates to remote controls. More specifically, the present invention relates to remote controls wherein the specific behavior and/or operation of the remote control can adapt based upon how the remote is used by a user.


BACKGROUND OF THE INVENTION

Remote controls for consumer electronics devices have increased in complexity, to match the many inputs and options available to control devices, and in ubiquity as many consumer electronics devices come with or support remote controls.


The assignee of the present invention offers a unique remote control, sold under the Harmony™ brand, which provides for enhanced control of consumer electronics devices and, more importantly, systems of such devices. For example, a home theatre system typically includes a television, a DVD player, and a surround sound system. More advanced home theatre systems can further include room lighting control systems, environmental controls (HVAC) for the room, motorized viewing screen (for projection televisions) and/or motorized window curtain systems.


Typically all of these devices can be controlled via remote controls supplied with the devices and, preferably, all of these devices can be controlled with a single remote which is sold with a database of the necessary commands for each device or which can learn the necessary commands from the OEM remote controls sold with the devices.


While such systems have gained wide popularity, performing an activity such as watching a DVD can require the user to select twenty, or more, commands to activate the necessary devices and configure them properly. For example, the television set must be turned on, commanded to use the input from the DVD player, the DVD player must be turned on and commanded to start playing the DVD, the surround sound system must be turned on and commanded to use the DVD player output as an input, etc. Even when the user has a single remote control which can generate all of the necessary command signals, it can be difficult and/or tedious to operate the remote control to output all of the necessary commands in the correct sequence.


Further, once the devices in the system have been properly configured for an activity, control of the system is often non-intuitive. For example, pressing the button on the remote control to increase the volume of the DVD being watched may result in the volume of the television set being incorrectly increased, rather than the volume of the surround sound system correctly being increased.


Prior art attempts to address this problem have employed programming collections of commands, typically referred to as “macros”, into the remote control. Once programmed, ideally the user can press a single button on the remote to, for example, turn on and configure the system to perform an activity such as watch a DVD movie as the remote will “play” the macro and transmit each of the recorded commands in turn.


While such macro systems can improve the usability of complex systems of consumer electronics devices, serious problems exist with such macro systems. One problem is that it can be difficult for many people to create the necessary macros as the macros can be quite complex and many consumers pay installation contractors to program an appropriate set of macros into their remotes.


A more serious problem is that such macro systems are “state-less” in that the macro is recorded based upon an assumption of the operating state of the devices to be controlled by the macro and deviations in any device from its assumed state can result in the failure of the macro to properly configure the system. For example, if a television set has a “toggle” type command for its power control (i.e., each time a POWER command is sent to the television, the television turns OFF, if it is ON, or turns ON if it is OFF), then a macro to watch a DVD movie must include an assumption that the TV is in a given state, such as ON. If a macro is recorded to watch a DVD movie and the remote control assumes the TV is ON prior to execution of the macro, and if the TV is in fact OFF when the macro is executed, an inoperative result occurs as the remote will not transmit a POWER command to the TV and the TV will not be turned ON. In fact, this inoperative result typically cannot be corrected merely by turning the TV ON, because with the TV OFF when the macro executed, the TV will have ignored the other commands sent to it by the remote to, for example, change the input the TV is currently using to the input connected to the DVD player, etc.


This can result in ludicrous systems wherein the user must execute one macro to watch a DVD if their system is presently OFF and another macro to watch a DVD if their system is ON and presently configured to watch a television program and another macro to watch a DVD if their system is presently ON and configured to play a CD, etc., or other non-intuitive systems wherein the system must be returned to a predefined configuration before a macro is executed to configure the system for another activity.


To address these disadvantages and others, the above-mentioned Harmony™ remotes employ a state-based strategy to control devices and employ a web-based configuration method and system. The Harmony remotes store a representation of the current state of each device controlled by the remote and determine the commands which must be transmitted to each device to change the overall state of the system from one state (e.g., listen to CD) to another (e.g., watch a DVD).


The Harmony remotes employ an internet-based configuration method and system wherein the remote is connected, via the Internet, to a device database and a configuration compiler which, through an interactive web page dialog/process with the user, programs the remote to control the user's devices.


The Harmony remotes employ technologies described in U.S. Pat. No. 6,784,805; published U.S. Application 2005/0052423; published U.S. Application 2005/0030196; published U.S. Application 2002/0056084; and published U.S. Application 200/0045819, all to Harris et al., all assigned to the assignee of the present invention, and the contents of this patent and these published applications are incorporated herein by reference.


While the Harmony™ remotes offer many advantages over prior art remotes, it can be difficult to troubleshoot the configuration process and/or it can be difficult for a user to customize the operation and arrangement of their remote.


It is desired to have a system and method that can improve the ability to troubleshoot the configuration of a remote control and/or to adaptively configure the remote control to correspond more closely to how the remote is typically used.


BRIEF SUMMARY OF THE INVENTION

It is an object of the present invention to provide a novel method and system for adaptively configuring a remote control which obviates or mitigates at least one disadvantage of the prior art.


According to a first embodiment of the present invention, a remote control system is provided that includes a remote control operable to log and store user initiated events relating to the control of devices with the remote control, the remote control operating in accordance with a configuration data set stored in the remote control; a device database storing identifications of devices to be controlled by the remote control and the command sets for those devices; an analysis module operable to analyze the log of events stored by the remote control to identify one or more patterns of interest in the logged use of the remote control by the user; and a configuration utility operable with the device database and the analysis module to create a configuration data set to operate the remote control in accordance with at least one identified pattern of interest.


Preferably, in response to the results produced by the analysis module, the configuration utility conducts an interactive dialog with the user as to whether they would like a suggested change in the operation of the remote control to be implemented and the configuration utility will effect the change if the user responds accordingly.


According to another embodiment of the present invention, a method is provided for adaptively configuring a remote control to operate at least one device. The method includes identifying to a configuration utility the at least one device to be controlled by the remote control, and retrieving from a database of command sets for devices, the command set and capabilities of the identified at least one device. A configuration data set is created for operating the remote control to control the device using the retrieved command set and transferring that configuration data set to the remote control. The remote control is used to operate the at least one device and for storing a log of each event relating to the control of the device. At select intervals, the stored log of events is analyzed to identify at least one pattern of interest indicating how the user of the remote control operates the device. The configuration data set is altered in response to the at least one identified pattern of interest. And the altered configuration data set is downloaded to the remote control to alter how the remote control operates the at least one device.


The present invention provides a method and system for adaptively configuring a remote control. The system and method can analyze a log of events, maintained by the remote, which indicates how the remote and the devices it controls are used by a user and can then suggest alternative configurations of the remote to the user. The range and type of alternative configurations is not particularly limited and can include changing which devices are employed for various user activities and/or how those activities are performed, the placement and hierarchy of commands in a menu tree and/or troubleshooting and set up configurations.





BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:



FIG. 1 is a schematic diagram of a state-based remote control for use with the present invention;



FIG. 2 is a schematic diagram of a device database, configuration utility and analysis module for use with the present invention;



FIG. 3 is a schematic diagram of a remote control in accordance with another embodiment of present invention;



FIG. 4 is a schematic diagram of a remote control system that includes a first remote control and a second remote control in accordance with one embodiment of present invention;



FIG. 5 is a schematic diagram of a remote control system that includes a first remote control and a second remote control in accordance with another embodiment of present invention;



FIG. 6 is a schematic diagram of a remote control system that includes a first remote control and a second remote control in accordance with another embodiment of present invention; and



FIG. 7 is a schematic diagram of a remote control system according to another embodiment of the present invention.





DETAILED DESCRIPTION OF THE INVENTION

A remote control, similar to the above-described Harmony™ type of remote controls is indicated generally at 20 in FIG. 1. Remote control 20 includes a microprocessor 24, which can be any suitable microprocessor or microcontroller as will be apparent to those of skill in the art. Preferably, microprocessor 24 is a low power microprocessor suitable for use with battery powered devices such as remote control 20.


Microprocessor 24 and the other components, described below, within remote control 20 are connected to a power supply 26, which can be a battery or other suitable power supply. Microprocessor 24 is further connected to keypad 28, which includes a number of keys which can be activated by a user to operate remote control 20, and to a display 32 which can display text and/or graphics to the user of remote control 20. Keypad 28 can be any suitable keypad, as will occur to those of skill in the art, including a membrane keypad or a touchscreen on display 32. In the latter case, display 32 is preferably an LCD display although display 32 can be any other suitable type of display, such as an electro luminescent device, etc.


Preferably, one or more keys on keypad 28 are located adjacent display 32 (or on display 32 in the case of keypad 28 being a touchscreen on display 32). Depending upon the operating mode of remote control 20 and the devices being controlled by it, these keys can have different functions assigned to them by microprocessor 24 and appropriate text messages or graphics can be displayed on display 32 adjacent those keys to obtain “soft” keys.


Remote control 20 further includes a non volatile memory 36 which is used to store the configuration for remote control 20, including the appropriate command sets for each device being controlled by remote control 20, and the representations of the state of each device being controlled by remote control 20. Memory 36 can be any suitable non volatile memory, such as battery backed-up static ROM, Flash ROM or a magnetic-based memory, such as a disc drive, etc.


Microprocessor 24 is also connected to at least one control signal transmitter 40 and to a network interface device 44. Each control signal transmitter 40 is operable to transmit the signals required to control one or more of the devices being controlled with remote control 20. Control signal transmitters 40 can include infrared (IR) transmitters, radio frequency (RF) transmitters, such as Bluetooth or proprietary RF systems, etc. which the devices being controlled with remote control 20 are responsive to. It is contemplated that remote control 20 can be equipped with more than one control transmitter 40 when one or more devices it is to control require control signals transmitted via different transmission modalities (i.e., RF and IR). Remote control 20 can also include one or more control signal receivers 42 to allow remote control 20 to receive control signals from other remote controls to learn new command signals, etc.


Network interface device 44 allows remote control 20 to be connected to a remote device database and configuration utility (e.g., a server, a computer, etc.) via a network connection 48. Network interface device 44 can be any suitable interface device for interfacing remote control 20 to network connection 48, as will occur to those of skill in the art. In a present embodiment, network interface device 44 is a USB transceiver and network connection 48 is a USB connection to a computing device (not shown), such as a personal computer, which is in turn connectable to the remote device database and configuration utility via the Internet. It is also contemplated that network connection 48 can be a wireless link, such as a WiFi (IEEE 802.11x) connection, a Bluetooth link, etc. and, in such cases network interface device 44 is selected to provide the necessary connectivity, as will be apparent to those of skill in the art.


As will be apparent to those of skill in the art, the components of remote control 20 can be separate devices or, as a result of large scale integration, microprocessor 24, non volatile memory 36 and network interface device 44 and other components of remote control 20 can be implemented as a single integrated circuit device for considerations of cost and reduced power consumption.


To setup remote control 20, the user connects remote control 20, via network connection 48, to a remote device database 52 and a configuration utility 56, shown in FIG. 2. It is contemplated that in many circumstances, remote control 20 will connect via network connection 48 to a personal computer (not shown) and the personal computer will connect, via the Internet or other network 60, to device database 52 and configuration utility 56, but it is also contemplated that remote control 20 can connect directly to network 60 and device database 52 and configuration utility 56.


As used herein the term device database is intended to comprise any suitable means for storing relevant information, such as command sets and features, for devices to be controlled. Device databases can be implemented with relational database systems, simple lookup tables, or any other appropriate means of storing device information as will be apparent to those of skill in the art.


As configuration utility 56 requires an interactive connection with the user of remote control 20, a suitable web page or other interface can be displayed to the user on the personal computer, if remote control 20 was connected to network 60 via such a personal computer, or a suitable interface can be displayed on display 32, if remote control 20 was directly connected to network 60.


Once the user has connected to the configuration utility 56, the user is prompted to establish a user account, if this is the first time the user has connected, or to log in to their existing account. Assuming this is the first time the user has connected, after the account has been set up, the user is asked to input identifications, for example the manufacturer and model number, of each device they wish to control. When the devices to be controlled have been identified by the user, the capabilities and command sets of the devices are determined by configuration utility 56 and are available to configuration utility 56 from device database 52. If one or more devices are not known to device database 52, the user can be prompted to perform a learning operation and suitable learning processes are well known to those of skill in the art and will not be described further herein.


Configuration utility 56 can then prompt the user to specify how the user would prefer that various aspects of the system of devices controlled by remote control 20 operate. For example, the user can be asked whether they would prefer to use their surround sound system when listening to regular television programming, or whether they would prefer to just use the television's audio system.


Once configuration utility 56 has obtained any necessary user input, configuration utility 56 refers to device database 52 and creates a configuration data set comprising the IR (or other modality) command set for each device to be controlled with remote control 20, an operating program for remote control 20 and a state map for the system of devices. This configuration data set is then loaded into non volatile memory 36 via network connection 48.


The above-described Harmony™ remotes operate substantially as described in the paragraphs above. However, the consumer electronics devices and other devices to be controlled with remote control 20 can have broad feature sets and systems of such devices can have many different possible operating states and it is difficult to have the configuration utility automatically create configuration data sets which match the user's desires and/or needs. Further, the user themselves may not be aware of how they would prefer the system of their devices to operate and their usage patterns can change over time.


Accordingly, in the present invention, after remote control 20 has been configured to control the system of the user's devices, remote control 20 further operates to store a log of the events initiated by the user of remote control 20. Most events will represent keys pressed by the user of remote control 20 and the time and date at which they were pressed and related state information, such as the television channel they switched to, etc. As the context of the keys on keypad 28 can change, depending upon the operating state of remote control 20 and the system of the user's devices, remote control 20 logs the function of the key pressed, rather than (or in addition to) the actual keypad button pressed. As an example, a user can press a “PLAY” key while watching a DVD, a VHS movie or while listening to CD's and these events are very different. Accordingly, remote control 20 will log the context of the key pressed, i.e., “play DVD”, “play VHS”, or “play CD”.


It is contemplated that the stored log of events need not only contain key press events and any other event of interest can also be logged and stored. For example, remote control 20 can include a touch pad (not shown) input device in addition to, or instead of, keypad 28 and “gestures” input with such a touch pad can be logged and stored, as can their meaning and/or context.


As remote control 20 stores a representation of the state of the devices it is controlling, most relevant information about the system of devices controlled by remote control 20 will be available (or discernable) from the log. For example, the channel on a television being watched by a user can be directly stored in the log, or can be determined from other entries in the log (television was on station 4 but the user pressed the “Channel UP” button three times, so the television is now on channel 7), as can the volume level, the display settings (color balance, brightness, contrast, etc.) and this can allow configuration utility 56 to perform a significant amount of analysis of the user's use of remote control 20.


The log of events is stored in non volatile memory 36 and is uploaded to configuration utility 56 at an appropriate time. Preferably, the storage of logged events in remote control 20 is achieved by a circular buffer such that, if the memory available for storing the logged events is exceeded before the information is uploaded, the newest stored logged events merely overwrite the oldest stored logged events rather than cause an error or overwrite other contents of non-volatile memory 36. Alternatively, but less desirable, once the memory available for storing the log has been filled, further logging of events can be terminated until the existing log has been uploaded. If network connection 48 is a wireless link, then remote control 20 can automatically transfer the log of stored events at appropriate intervals, such as when each event occurs, after a defined period of time has passed since the last transfer or when the size of the log of events reaches a preset size, etc.


Remote control 20 can also operate to prompt the user, on display 32 for example, to connect remote control 20 to network connection 48 to allow uploading of the logged information either after a specified time of use of remote control 20 has elapsed (for example once a week) or when the amount of memory in non-volatile memory 36 storing the logging info has reached a pre-selected level (for example 80% of the memory available for logging data), etc.


Alternatively, configuration utility 56 can prompt the user of remote control 20, at appropriate intervals, to connect remote control 20 to allow uploading of the logged data. It is contemplated that, as part of the set up of a user account with configuration utility 56, a user will provide contact information such as a valid email address. In this case, configuration utility 56 can email a prompt to the user to connect their remote control 20 to network connection 48 to allow uploading of the stored events.


It is further contemplated that if remote control 20 is connected to configuration utility 56 via network connection 48 for any reason, such as configuring remote control 20 to work with a new device added by the user to the devices to be controlled with remote control 20, the logged events will be uploaded to the remote configuration utility.


Each time the logged events are uploaded to configuration utility 56, configuration utility 56 can analyze the events for one or more patterns of interest in the logged events and can initiate a dialog with the user, via the web page or other user interface associated with configuration utility 56, with respect to the identified patterns of interest. To this end, configuration utility 56 includes an analysis module 64 (which may be a hardware module, a software module, a firmware module or the like configured to execute one or more analysis functions) to examine the stored log of events. The implementation of analysis module 64 is not particularly limited and can be achieved in a variety of manners, as will be apparent to those of skill in the art.


For example, in a simple implementation, analysis module 64 can be constructed as a simple parsing and/or pattern matching program. In a presently preferred, but more complex, implementation analysis module 64 can employ advanced analysis techniques including, without limitation, neural networks, fuzzy logic and expert systems.


For example, during a prior session with configuration utility 56, the user can have responded to a prompt from configuration utility 56 such that remote control 20 operates the user's system of devices to employ the television set's audio capabilities for sound when watching television programs, rather than the surround sound system. Analysis module 64 of configuration utility 56 can note a pattern of interest where, in actual use, when the user watches a television program, they frequently manually employ remote control 20 to activate the surround sound system.


In such a case, configuration utility 56 can prompt the user as to whether they would like to have the surround sound system used as the default audio system when watching television programs. If the user responds that they do not want to change the configuration to have the surround sound system as the default audio system for watching television, then configuration utility 56 will not change the configuration of remote control 20. If desired by the user, this decision can be stored in a user preferences file stored by configuration utility 56 so that the user will not be asked this question again, or will not be asked it within a pre-defined time period (e.g., three months) and a prompt to this effect can be displayed to the user.


Conversely, if the user responds to the prompt that they now would like the surround sound system to be the default audio system when viewing television programs, configuration utility 56 can construct an amended configuration data set for remote control 20 and can download that configuration data set to remote control 20 to effect the desired change in how the system of the user's devices is operated by remote control 20 so that the surround sound system will be the default audio system for watching television programs.


While it is presently preferred that the user be prompted to accept a suggested change to the configuration of remote control 20, the present invention is not so limited and if desired, configuration utility 56 can automatically effect all changes, or a subset of changes, without prompting the user.


It is contemplated that more advanced behaviors can be employed by configuration utility 56. For example, in the television audio configuration example given above, if the user responds to the prompt regarding changing the default audio system for television viewing to indicate that they wish the default system to remain the television set's audio system, configuration utility 56 can next prompt the user as to whether they would like a function to change the audio system from the television set's audio system to the surround sound system to be assigned to one of the “soft” keys on remote control 20 during television viewing.


If the user responds affirmatively to this prompt, configuration utility 56 can modify the configuration data set fro remote control 20 such that, when remote control 20 is being used to watch a television program, one of the soft keys of remote control 20 will operate as a toggle to change the audio system employed with the television program between the television set's audio system and the surround sound system. In such as case, an appropriate prompt for the soft key will be displayed on display 32 and that prompt can change with the state of the function. For example, the prompt can be “Change to Surround Sound” when the television set audio system is in use and can be changed to “Change to Television Audio System” when the surround sound system is in use.


Examples of other patterns of interest that can be recognized by analysis module 64 of configuration utility 56 can include, without limitation:


(a) time-based patterns such as recognizing that the user regularly activates the backlight function for keypad 28 and display 32 of remote control 20 when watching movies. In such a case, configuration utility 56 can prompt the user as to whether they would like the time for which the backlight remains illuminated to be increased when they are watching movies and can update the configuration data set for remote control 20 accordingly;


(b) use-based patterns such as recognizing that the user regularly uses a typically obscure command which is, by default, on a sub-menu of remote control 20, and thus requires multiple keys to be depressed to access that command. In such a case, configuration utility 56 can prompt the user as to whether they would like that command to be placed on a soft key on a main menu, for easier access. If all the soft keys for that main menu are already in use, configuration utility 56 can prompt the user as to which other function assigned to a soft key the user would be willing to replace. In this latter case, analysis module 64 of configuration utility 56 can suggest to the user replacing the function assigned to a soft key which is least often used by the user; and


(c) source-based patterns such as recognizing that the user typically employs the surround sound system for audio when viewing television programs on a particular channel, or range of channels (e.g., pay TV movie channels, etc.). In such a case, configuration utility 56 can prompt the user as to whether they would like the surround sound system to be the default audio system when viewing one of these channels and, if the user agrees, configuration utility 56 can modify the configuration data set accordingly so that the default audio system is the surround sound system when viewing one of the identified channels and is the television set's audio system when viewing other channels.


It is also contemplated that more sophisticated patterns can be recognized. For example, similar to the above-mentioned example regarding the use of the surround sound system or the television set's audio system when watching television programs, the analysis module 64 of configuration utility 56 can recognize that the user always uses the surround sound system to watch a television program on channel 5 between 9:00PM and 10:00PM on Tuesdays, but uses the television set's audio system at all other times.


In such a case, configuration utility 56 can prompt the user as to whether they would like remote control 20 to automatically switch to the surround sound system for viewing television programs on this channel at this time, but use the television set's audio system at all other times. If the user responds affirmatively, configuration utility 56 can appropriately amend the configuration data set and download the amended configuration data set to remote control 20 to obtain the desired functionality.


Similarly, it is contemplated that analysis module 64 can detect the absence of a previously noted pattern. For example, analysis module 64 can determine that the user has not watched the above-mentioned program on channel 5 on Tuesdays for several weeks and configuration utility 56 can prompt the user as to whether they would like to remove the previously added specific surround sound configuration for this channel. If the user responds affirmatively, then configuration utility 56 can create an appropriately amended configuration data set and download it to remote control 20 to remove this specific functionality.


While in each of the examples above, the user is prompted as to whether they desired a change to be made to the configuration of remote control 20, the present invention is not so limited and it is contemplated that changes which are deemed necessary or desired by configuration utility 56 can be effected without reference to the user.


It is further contemplated that the present invention can be employed to assist in the initial configuration and/or set up of remote control 20 and the consumer electronics devices and other devices to be controlled by remote control 20 and/or to troubleshoot problems which may occur during such set up and configuration. Specifically, as part of the initial configuration of remote control 20 to operate one or more of the devices of a user, an initial configuration data set is created and downloaded by configuration utility 56. Using remote control 20 with this initial configuration data set, the user can attempt to operate those devices.


If a problem occurs, or if an unexpected result is obtained, the user can press a “help” key (either a soft key or a dedicated key) on the remote. Once the help button has been pressed, remote control 20 can execute a troubleshooting routine included with the configuration data set wherein a series of prompts are displayed to the user and the user's responses, and any other the keys pressed by the user, are logged.


For example, the user may have a device, such as a television set, for which different command sets were employed by the manufacturer at different times. In such a case, the configuration utility can load a portion, in this example the “Power ON” command, of each of the multiple command sets from device database 54 into remote control 20, with one of the sets being selected for first use. The user can then be prompted by remote control 20 to use remote control 20 to turn the television set on with an appropriately identified soft key and remote control 20 will use the “Power ON” command from the first one of the possible command sets when that soft key is pressed.


Once the user has pressed the soft key on remote control 20 to turn the television set on, remote control 20 will display a prompt on display 32 asking the user if the set came on. If the user presses the key corresponding to “yes” in response to this prompt, remote control 20 will prompt the user to reconnect remote control 20 to network connection 48 and analysis module 64 will examine the log to determine the first command set is the required one and configuration utility 56 will create an appropriate configuration data set for remote control 20.


If the user presses a key corresponding “no” to indicate that the television set did not turn on, then remote control 20 can display a prompt on display 32 to have the user press another soft key to use the “Power ON” command from another possible command set to try to turn on the television set. The user is again prompted as to whether the desired result was obtained and the process can continue until the correct set is identified and remote control 20 is connected to configuration utility 56 to have the appropriate configuration data set constructed for it and downloaded into it.


As will be apparent, a wide range of other troubleshooting activities can be performed with remote control 20 through the combination of logging of events at remote control 20, providing appropriate prompts to the user via display 32 and recording responses from the user entered via keypad 28. For example, a user of remote control 20 may volunteer to verify that the information in device database 52 regarding one of the devices the user has is correct and complete. In a normal troubleshooting and/or installation process, configuration utility 56 will only use/exercise the actual functions and inputs that are relevant to the system the user has. For example, the user's television set may have a dedicated input for a satellite receiver, but the user does not have such a satellite receiver and thus the commands to operate that input are not included in the configuration data set executed by remote control 20.


In contrast, if the user volunteers to verify the data stored at data base 56 for his television set, configuration utility 56 can download a “full exercise” configuration data set which remote control 20 will use to test all of the features and functions of the television set. This “full exercise” configuration data set can be interactive, prompting the user as to whether particular functions and/or features have been properly set by remote control 20. Each response entered by the user is logged and stored for forwarding to the configuration utility 56, as described above and can be used by configuration utility 56 to alter the contents of device database 52 by either updating the data stored therein, or flagging the data as being suspect.


If the user indicates that a function or feature did not operate as expected, the “full exercise” configuration data set can have remote control 20 prompt the user to operate the OEM remote control that came with the television set to perform the function or feature that remote control 20 could not achieve. Remote control 20 can then capture, with command signal receiver 42, the command signals issued by the OEM remote to achieve the desired function or feature. The captured signals are then logged and stored and are forwarded to configuration utility 56 which can analyze the captured signals and add or replace them in device database 52. Similarly, device database 52 can have be missing one or more commands for a device and a configuration data set can be loaded into a remote control 20 of a user who has that device in order to have the user allow control signal receiver 42 to receive the missing commands from the OEM remote.


While the description above implies that analysis module 64 is located with configuration utility 56 and device database 52, it is contemplated that, if remote control 20 is connected to network 60 via a personal computer or other computing device, analysis module 64 can be located within such computing device for privacy concerns or any other reason. In such a case, the results of the analysis by analysis module 64 will be forwarded to configuration utility 56 via network 60, but the specific log data need not be.


Another embodiment of a remote control in accordance the present invention is indicated generally at 100 in FIG. 3. In this Figure, like components to those shown in FIGS. 1 and 2 are indicated with like reference numbers. With remote control 20, described above, device database 52, configuration utility 56 and analysis module 64 are located at a remote location, where they can be used by a variety of remotes, principally to reduce the cost of manufacturing remote control 20, although other advantages can also be obtained. It is contemplated that, if manufacturing costs are not of over-riding concern, these functions can be included within remote 100, as illustrated in FIG. 3.


In remote 100, device database 64 can be a non-volatile memory, such as Flash ROM, or can be a disc drive similar to those available for use in embedded devices, such as the Apple iPod™. Configuration utility 56 and analysis module 64 can be suitable programs executed by microprocessor 24. Remote 100 can still be equipped with a network interface controller 44 to connect to a network connection 48 and it is contemplated that network connection 48 can be used, from time to time, to update the contents of device database 52 and/or configuration utility 56 and analysis module 64 from a remote update source.



FIG. 4 is a schematic diagram of a remote control system 110 in accordance with another embodiment of present invention. Remote control system 110 includes a first remote control 115 and a second remote control 120. Remote control 115 may be configured similarly to remote control 20 and/or remote control 100 described above in detail. Remote control 120 may be configured to receive remote control commands from remote control 115, and transmit the remote control commands to one or more devices to be controlled (e.g., TV, video recorder, video player, sound equipment, set top box, etc.).


To elaborate, remote control 120 may include a first receiver 125, a second receiver 130, a first transmitter 135, a second transmitter 140, a processor 142, and a memory 145. Remote control 120 may further include an internal power supply 147, or may be coupled to an external power supply (not shown). According to one embodiment, remote control 120 includes a keypad 150 and a display 155.


As discussed briefly above, the second remote control 120 is configured to receive a set of commands transmitted by the first remote control 115, and in turn transmit the set of commands to one or more devices to be controlled. A set as referred to herein includes one or more elements. The second remote control, via its first receiver 125, may be configured to receive the set of commands transmitted by the first remote control 115, and, via the second transmitter 140, transmit the set of commands to one or more devices to be controlled. The first receiver 125 may be an RF receiver, an IR receiver, an ultrasonic receiver or the like. The second transmitter 140 may be an RF transmitter, an IR transmitter, an ultrasonic transmitter or the like configured to operate according to a variety of transmission protocols, such as Home RF, Bluetooth, a proprietary transmission protocol or the like.


The second remote control's processor 142 may be configured to process the set of received commands in “real time” for transmission to the devices to be controlled, or the process may store the set of commands in memory 145 for processing and subsequent transfer. For example, the processor might be configured to process the set of received commands to change the format of these commands, e.g., from an IR format to an RF format or the like.


According to one embodiment, the second remote control is configured to receive, store, calculate, and/or update the operating states of the devices to be controlled. The second remote control may be configured to perform such operations in lieu of the first remote control performing such operations, or in addition to the first remote control performing such operations. The second remote control 120 may be receive, store, calculate, and/or update the states of the controlled devices similarly to remote control 20 and/or remote control 100 (described above in detail). For example, the second remote control 120 may be configured to receive state information for the devices to be controlled from a user who keys the states into second remote control via keypad 150. Alternatively, the second remote control may be configured to receive the operating state information from the devices to be controlled, for example, via the second receiver 130. The second receiver 130 may be configured to receive the state information in response to a polling request issued by the first and/or second remote control to the devices to be controlled. The polling request may be issued to the devices to be controlled at the request of a user via the first remote control or the second remote control (e.g., via keypad 150). Alternatively, the polling request may be issued at the initiation of one of the remote controls. For example, the polling request may be issued periodically (e.g., at 30 minute intervals thereafter, at 1 hour intervals thereafter or the like) by one of the remote controls. According to one embodiment, the second remote control might also be configured to receive the state information from the first remote control and/or provide state information to the first remote control. The second receiver 130 might be an IR receiver, an RF receiver, an ultrasonic receiver or the like. According to one embodiment, the first receiver and the second receiver may be a single receiver.


The second remote control may be configured to issue commands to the devices to be controlled based on the set of commands received from the first remote control and the states (e.g., stored in memory 145) of one or more devices to be controlled. The second remote control may be configured to operate similarly to remote control 20 and/or remote control 100 to control the devices to be controlled based on the states of these devices. Moreover, the second remote control may be configured to update and store the states of one or more devices to be controlled based on the state information previously stored in memory 145, and based on the commands transmitted from the second remote control to the devices to be controlled.


According to one embodiment, the second remote control may be configured to store one or more commands issued by the first remote control prior to transmitting the commands to the devices to be controlled. For example, if the first remote control transmits a number of controls signal associated with a macro, the second remote control may be configured to accumulate the commands in memory 145, and then determine a set of commands to transmit to the devices to be controlled based on the state information for these devices stored in memory. This is sometimes referred to in the art as “blasting” commands or sending a “burst” of commands (or simply a “burst”). As such, the second remote control is sometimes referred to as a “blaster” or a “blaster box.” According to one embodiment, the first remote control is a handheld device and the second remote control is a blaster box, which might include a computing device, such as a personal computer, a set top box or the like.



FIG. 5 is a schematic diagram of a remote control system 110′ in accordance with another embodiment of present invention. Remote control system 110′ differs from remote control system 110 in that the second remote control 120′ is configured to communicate with the devices to be controlled via a hardwire interface 185. Otherwise, remote control system 110′ is configured to operate substantially similar to remote control system 110.



FIG. 6 is a schematic diagram of a remote control system 110″ in accordance with another embodiment of present invention. Remote control system 110″ differs from remote control system 110 and 110′ in that the second remote control 120″ includes the second transmitter 140, the second receiver 140, and the hardwire interface 185. The second remote control may be configured to transmit commands and receive state information via one or both the second transmitter, the second receiver, and/or the hardwire interface. Otherwise, remote control system 110″ is configured to operate substantially similar to remote control system 110.



FIG. 7 is a schematic diagram of a remote control system 200 according to another embodiment of the present invention. Remote control system 200 includes a plurality of remote controls 205. The remote controls may be configured to transfer commands to and receive commands from each other and/or the one or more devices to be controlled. Alternatively, the remote controls may provide a control hierarchy wherein the first remote control 205a, transfers a command to a second remote control 205b, that transfers the command to another remote control (e.g., 205n) in the hierarchy that in turn transfers the command to one or more devices to be controlled. One or more of the remote controls may transmit a different command from the command received. For example, one or more of the remote control may be state based remote control that might transfer a different command from the command received based on the state information (described above). For example, the first remote control 205a might be a hand held remote control, computer (e.g., a web enabled PC) that is configured to transfer command to the second remote control 205b that might be a handheld remote control, an IR repeater, an RF repeater, an ultrasonic repeater, a light repeater, a computer (e.g., a web enabled PC), the blaster box or the like. The second remote control 205b might be configured to transfer the received command or another command (e.g., that is determined based on local state information) to a third remote control (e.g., remote control 205n) that in turn is configured to command one or more devices to be controlled. Alternatively, any of the devices in the hierarchy may be configured to transfer commands to another remote and to the devices to be controlled.


For example, the first remote control 205a might be a hand held remote control that is configured to transfer command to the second remote control 205b that might be an IR repeater, an RF repeater, an ultrasonic repeater, a light repeater, a computer, the blaster box or the like. According to an embodiment in which the second remote control is a computer, the second remote control may be configured to collect commands from one or more remotes and organize the commands in view of resident information (e.g., state information for the devices to be controlled) and issue one or more commands to the third remote control. The third remote control might be the blaster box (described above) or might include a plurality of blaster boxes configured to control the devices.


Embodiments of the present invention provides a method and system for adaptively configuring a remote control. The system and method can analyze a log of events, maintained by the remote, which indicates how the remote and the devices it controls are used by a user and can then suggest alternative configurations of the remote to the user. The range and type of alternative configurations is not particularly limited and can include changing which devices are employed for various user activities and/or how those activities are performed, the placement and hierarchy of commands in a menu tree and/or troubleshooting and set up configurations.


The above-described embodiments of the invention are intended to be examples of the present invention and alterations and modifications may be effected thereto, by those of skill in the art, without departing from the scope of the invention which is defined solely by the claims appended hereto.

Claims
  • 1. A remote control system comprising: a remote control operable to log and store user initiated events relating to the control of devices with the remote control, the remote control operating in accordance with a configuration data set stored in the remote control;a device database storing identifications of devices to be controlled by the remote control and the command sets for those devices;an analysis module operable to analyze the log of events stored by the remote control to identify one or more patterns of interest in the logged use of the remote control by the user; anda configuration utility operable with the device database and the analysis module to create a configuration data set to operate the remote control in accordance with at least one identified pattern of interest.
  • 2. The remote control system of claim 1 where, in response to the results produced by the analysis module, the configuration utility conducts an interactive dialog with the user as to whether they would like a suggested change in the operation of the remote control to be implemented and the configuration utility will only effect the change if the user responds accordingly.
  • 3. The remote control of claim 2 wherein the remote control is operable to connect to a network and wherein the device database is located at a location to which the remote control connects through the network.
  • 4. The remote control of claim 3 wherein the configuration utility and the analysis module are located at a location to which the remote control connects through the network.
  • 5. The remote control system of claim 4 wherein the interactive dialog with the user is effected via a web page displayed to the user.
  • 6. The remote control system of claim 2 wherein the interactive dialog with the user is effected via the display and keypad of the remote control.
  • 7. The remote control system of claim 1 wherein the patterns of interest result from logged and stored events from a troubleshooting program previously loaded into the remote control and the configuration utility is responsive to one or more identified patterns of interest to change the configuration data set of the remote control to correct an identified error in a previous version of the configuration data set.
  • 8. The remote control of claim 1 wherein the configuration utility and the analysis module are located in the remote control.
  • 9. The remote control system of claim 1, wherein the device database is located in the remote control.
  • 10. The remote control system of claim 9, wherein the configuration utility and the analysis module are located in the remote control.
  • 11. The remote control system of claim 1, wherein the configuration data set created by the configuration utility is configured to be stored in the device database, and is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 12. The remote control system of claim 1, wherein the log is configured to be stored in the device database, and is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 13. A method of adaptively configuring a remote control to operate at least one device, comprising the steps of: (i) identifying to a configuration utility the at least one device to be controlled by the remote control;(ii) retrieving from a database of command sets for devices, the command set and capabilities of the identified at least one device;(iii) creating a configuration data set for operating the remote control to control the device using the retrieved command set and transferring that configuration data set to the remote control;(iv) using the remote control to operate the at least one device and storing a log of each event relating to the control of the device;(v) at intervals, analyzing the stored log of events to identify at least one pattern of interest indicating how the user of the remote control operates the device;(vi) altering the configuration data set in response to the at least one identified pattern of interest; and(vii) downloading the altered configuration data set to the remote control to alter how the remote control operates the at least one device.
  • 14. The method of claim 13 further comprising the step of, prior to altering the configuration of the configuration data set, prompting the user as to whether they desire the identified change to be made and only effecting the alteration of the configuration data set if the user indicates their acceptance of the change.
  • 15. The method of claim 13 wherein steps (iv) through (vii) are re-performed at intervals.
  • 16. The method of claim 13, further comprising, storing the created configuration data set in the device database, wherein the created configuration data set is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 17. The method of claim 13, further comprising, storing the log in the device database, wherein the log is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 18. The method of claim 13, wherein the step of altering the configuration data set comprises: sending the at least one pattern of interest to the device database; andproviding an altered configuration database from the device database to the remote control.
  • 19. A remote control system comprising: first and second remote controls, wherein the first remote control and/or the second remote control is configured to log and store information for user initiated events relating to commands transmitted from the first remote control to the second remote control, and the first remote control and second remote control are configured to operate in accordance with configuration data stored in these remote controls;a device database configured to store identifications of devices to be controlled by the remote controls and the command sets for those devices;an analysis module configured to analyze the log of user initiated events to identify one or more patterns of use in the log of use initiated events; anda configuration utility operable with the device database and the analysis module to create a configuration data set to operate the first remote control and the second remote control in accordance with at least one identified pattern of interest.
  • 20. A method for configuring a first remote control and a second remote control to operate a set of electronic devices, comprising the steps of: identifying to a configuration utility the set of electronic devices configured to be controlled by the first and second remote control;retrieving from a database of command sets a command set for the set of electronic devices;transmitting from the first remote control to the second remote control a set of commands included the retrieved command set;storing in the first remote control and/or the second remote control a log of commands issued by the first remote control and/or the second remote control;at select intervals, analyzing the log of commands to identify at least one pattern of use of the first remote control and/or the second remote control;altering the command set in response to the at least one identified pattern of use; andtransmitting the altered command set to the first remote control and/or the second remote control to alter how these remote controls operate the set of devices.
  • 21. The method of claim 20 further comprising: requesting the user to indicate whether the user wants the first remote control and/or the second remote control to receive and use the altered command set; andeffecting use of the altered command set in the first remote control and/or the second remote control if the user indicates acceptance of the request.
  • 22. The method of claim 20, further comprising, storing the altered command set in the device database, wherein the altered command set is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 23. The method of claim 20, further comprising, storing the log in the device database, wherein the log is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 24. A remote control comprising: a processor configured to operate in accordance with a configuration data set to control a set of devices, and to generate a log of user-initiated events, which are for the control of a set of devices;a memory coupled to the processor and configured to store the log of user-initiated events; andan analysis module coupled to the processor and the memory, and configured to analyze the log of user-initiated events stored in the memory for one or more patterns of interest, wherein the processor is configured to execute a configuration utility operable to create an amended configuration data set, which include commands for the remote control to execute the pattern of interest to control the set of devices.
  • 25. The remote control of claim 24, further comprising a device database configured to store command sets for the set of devices, wherein the configuration utility is configured to retrieve the commands sets from the device database to generate the amended configuration data set.
  • 26. The remote control of claim 24, further comprising communicating with a device database configured to store command sets for the set of devices, wherein the configuration utility is configured to retrieve the commands sets from the database to generate the amended configuration data set, and wherein the device database is configured to be at location at which the processor connects to the device database through a network.
  • 27. The remote control of claim 24, wherein the pattern of interest includes a time-based pattern, a use-based pattern, or a source-based pattern.
  • 28. The remote control of claim 24, wherein the amended configuration data set is configured for use by the processor to display a soft button on a display of the remote control, and wherein activation of the soft button causes the processor to execute the pattern of interest to control the set of devices.
  • 29. The remote control of claim 28, wherein the soft button is for a button in a sub-menu, and the soft button is in a main menu.
  • 30. The remote control of claim 24, wherein the device database is configured to store the amended configuration data set, which is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 31. The remote control of claim 24, wherein the device database is configured to store the log, which is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 32. A remote control system comprising: a remote control configured to operate in accordance with a configuration data set to control a set of devices, and to generate a log of user-initiated events, which are for the control of a set of devices;a memory module configured to store the log of user-initiated events;an analysis module configured to receive the log of user-initiated events and analyze the log of user-initiated events for a pattern of interest;a configuration utility operable to create an amended configuration data set based on the pattern of interest, wherein the amended configuration data set includes commands for the remote control to execute the pattern of interest to control the set of devices.
  • 33. The remote control system of claim 32, further comprising a database configured to store identifications for the set of devices and the command sets for the set of devices, wherein the configuration utility is configured to retrieve the commands sets from the device database to generate the amended configuration data set.
  • 34. The remote control system of claim 33, wherein the device database is configured to be at location at which the remote control connects to the device database through a network.
  • 35. The remote control system of claim 32, wherein the analysis module and the configuration utility are included in the remote control.
  • 36. The remote control system of claim 32, wherein the pattern of interest includes a time-based pattern, a use-based pattern, or a source-based pattern.
  • 37. The remote control system of claim 32, wherein the amended configuration data set is configured for use by the remote control to display a soft button on a display of the remote control, and wherein activation of the soft button causes the remote control to execute the pattern of interest to control the set of devices.
  • 38. The remote control system of claim 37, wherein the soft button is for a button in a sub-menu, and the soft button is in a main menu displayed on the display.
  • 39. The remote control system of claim 32, wherein the device database is configured to store the amended configuration data set, which is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
  • 40. The remote control system of claim 32, wherein the device database is configured to store the log, which is configured to be available via the device database to a plurality of remote controls operated by a plurality of users.
CROSS-REFERENCES TO RELATED APPLICATIONS

This application is related to and claims priority from U.S. Provisional Application No. 60/673,479, filed Apr. 20, 2005, and is fully incorporated herein by reference for all purposes.

US Referenced Citations (468)
Number Name Date Kind
3597531 De Marinis et al. Aug 1971 A
3990012 Karnes Nov 1976 A
4174517 Mandel Nov 1979 A
4231031 Crowther et al. Oct 1980 A
4287676 Weinhaus Sep 1981 A
4377870 Anderson et al. Mar 1983 A
4392022 Carlson Jul 1983 A
4394691 Amano et al. Jul 1983 A
4475123 Dumbauld et al. Oct 1984 A
4488179 Kruger et al. Dec 1984 A
4566034 Harger et al. Jan 1986 A
4567512 Abraham Jan 1986 A
4592546 Fascenda et al. Jun 1986 A
4623887 Welles, II Nov 1986 A
4626848 Ehlers Dec 1986 A
4703359 Rumbolt et al. Oct 1987 A
4706121 Young Nov 1987 A
4712105 Kohler Dec 1987 A
4728949 Platte et al. Mar 1988 A
4746919 Reitmeier May 1988 A
4774511 Rumbolt et al. Sep 1988 A
4792972 Cook, Jr. Dec 1988 A
4807031 Broughton et al. Feb 1989 A
4825200 Evans et al. Apr 1989 A
4825209 Sasaki et al. Apr 1989 A
4837627 Mengel Jun 1989 A
4845491 Fascenda et al. Jul 1989 A
4857898 Smith Aug 1989 A
4866434 Keenan Sep 1989 A
4876592 Von Kohorn Oct 1989 A
4888709 Revesz et al. Dec 1989 A
4899370 Kameo et al. Feb 1990 A
4918439 Wozniak et al. Apr 1990 A
4941090 McCarthy Jul 1990 A
4959719 Strubbe et al. Sep 1990 A
4959810 Darbee et al. Sep 1990 A
RE33369 Hashimoto Oct 1990 E
4962466 Revesz et al. Oct 1990 A
4989081 Miyagawa et al. Jan 1991 A
4999622 Amano et al. Mar 1991 A
5001554 Johnson et al. Mar 1991 A
5016272 Stubbs et al. May 1991 A
5033079 Catron et al. Jul 1991 A
5046093 Wachob Sep 1991 A
5065235 Iijima Nov 1991 A
5065251 Shuhart, Jr. et al. Nov 1991 A
5089885 Clark Feb 1992 A
5097249 Yamamoto Mar 1992 A
5109222 Welty Apr 1992 A
5115236 Kohler May 1992 A
5117355 McCarthy May 1992 A
5128752 Von Kohorn Jul 1992 A
5132679 Kubo et al. Jul 1992 A
5140326 Bacrania et al. Aug 1992 A
5151789 Young Sep 1992 A
5161023 Keenan Nov 1992 A
5177461 Budzyna et al. Jan 1993 A
5202826 McCarthy Apr 1993 A
5204768 Tsakiris et al. Apr 1993 A
5206722 Kwan Apr 1993 A
5220420 Hoarty et al. Jun 1993 A
5228077 Darbee Jul 1993 A
5237327 Saitoh et al. Aug 1993 A
5249044 Von Kohorn Sep 1993 A
5251048 Doane et al. Oct 1993 A
5255313 Darbee Oct 1993 A
5272418 Howe et al. Dec 1993 A
5282028 Johnson et al. Jan 1994 A
5285278 Holman Feb 1994 A
5287181 Holman Feb 1994 A
5287268 McCarthy Feb 1994 A
5297204 Levine Mar 1994 A
5341166 Garr et al. Aug 1994 A
5353121 Young et al. Oct 1994 A
5355480 Smith et al. Oct 1994 A
5367316 Ikezaki Nov 1994 A
5374999 Chuang et al. Dec 1994 A
5381991 Stocker Jan 1995 A
5382947 Thaler et al. Jan 1995 A
5404393 Remillard Apr 1995 A
5406558 Rovira et al. Apr 1995 A
5410326 Goldstein Apr 1995 A
5414426 O'Donnell et al. May 1995 A
5414761 Darbee May 1995 A
5416535 Sato et al. May 1995 A
5418424 Aprile et al. May 1995 A
5422783 Darbee Jun 1995 A
5446551 Kawaguchi et al. Aug 1995 A
5450079 Dunaway Sep 1995 A
5455570 Cook et al. Oct 1995 A
5461667 Remillard Oct 1995 A
5479266 Young et al. Dec 1995 A
5479268 Young et al. Dec 1995 A
5481251 Buys et al. Jan 1996 A
5481256 Darbee et al. Jan 1996 A
5483276 Brooks et al. Jan 1996 A
5497185 Dufresne et al. Mar 1996 A
5500681 Jones Mar 1996 A
5500794 Fujita et al. Mar 1996 A
5502504 Marshall et al. Mar 1996 A
5504475 Houdou et al. Apr 1996 A
5510828 Lutterbach et al. Apr 1996 A
5515052 Darbee May 1996 A
5515106 Chaney et al. May 1996 A
5515270 Weinblatt May 1996 A
5517254 Monta et al. May 1996 A
5523794 Mankovitz et al. Jun 1996 A
5523796 Marshall et al. Jun 1996 A
5524141 Braun et al. Jun 1996 A
5524195 Clanton, III et al. Jun 1996 A
5528304 Cherrick et al. Jun 1996 A
5532689 Bueno Jul 1996 A
5532732 Yuen et al. Jul 1996 A
5532754 Young et al. Jul 1996 A
5537106 Mitsuhashi Jul 1996 A
5537107 Funado Jul 1996 A
5537463 Escobosa et al. Jul 1996 A
5539393 Barfod Jul 1996 A
5550576 Klosterman Aug 1996 A
5552837 Mankovitz Sep 1996 A
5552917 Darbee et al. Sep 1996 A
5557338 Maze et al. Sep 1996 A
5557721 Fite et al. Sep 1996 A
5559548 Davis et al. Sep 1996 A
5566353 Cho et al. Oct 1996 A
5568367 Park Oct 1996 A
5576755 Davis et al. Nov 1996 A
5576768 Gomikawa Nov 1996 A
5579055 Hamilton et al. Nov 1996 A
5579221 Mun Nov 1996 A
5583491 Kim Dec 1996 A
5585838 Lawler et al. Dec 1996 A
5585866 Miller et al. Dec 1996 A
5589892 Knee et al. Dec 1996 A
5592551 Lett et al. Jan 1997 A
5596373 White et al. Jan 1997 A
5600573 Hendricks et al. Feb 1997 A
5603078 Henderson et al. Feb 1997 A
5604923 Wilkus Feb 1997 A
5614906 Hayes et al. Mar 1997 A
5619196 Escobosa Apr 1997 A
5619251 Kuroiwa et al. Apr 1997 A
5625608 Grewe et al. Apr 1997 A
5627567 Davidson May 1997 A
5629733 Youman et al. May 1997 A
5629868 Tessier et al. May 1997 A
5631652 Lee May 1997 A
5638050 Sacca et al. Jun 1997 A
5638113 Lappington et al. Jun 1997 A
5646608 Shintani Jul 1997 A
5650831 Farwell Jul 1997 A
5663757 Morales Sep 1997 A
5671267 August et al. Sep 1997 A
5677711 Kuo Oct 1997 A
5684526 Yoshinobu Nov 1997 A
5686891 Sacca et al. Nov 1997 A
5689353 Darbee et al. Nov 1997 A
5695400 Fennell, Jr. et al. Dec 1997 A
5710601 Marshall et al. Jan 1998 A
5710605 Nelson Jan 1998 A
5734838 Robinson et al. Mar 1998 A
5761601 Nemirofsky et al. Jun 1998 A
5768680 Thomas Jun 1998 A
5774172 Kapell et al. Jun 1998 A
5778256 Darbee Jul 1998 A
5781894 Petrecca et al. Jul 1998 A
5786814 Moran et al. Jul 1998 A
5794210 Goldhaber et al. Aug 1998 A
5796832 Kawan Aug 1998 A
5800268 Molnick Sep 1998 A
5806065 Lomet Sep 1998 A
5815086 Ivie et al. Sep 1998 A
5819034 Joseph et al. Oct 1998 A
5819294 Chambers et al. Oct 1998 A
5822123 Davis et al. Oct 1998 A
5828318 Cesar et al. Oct 1998 A
5828945 Klosterman Oct 1998 A
5850249 Massetti et al. Dec 1998 A
5855008 Goldhaber et al. Dec 1998 A
5870030 Deluca et al. Feb 1999 A
5870683 Wells Feb 1999 A
RE36119 Kunishima et al. Mar 1999 E
5883680 Nykerk Mar 1999 A
5886691 Furuya et al. Mar 1999 A
5907322 Kelly et al. May 1999 A
5909183 Borgstahl et al. Jun 1999 A
5923016 Fredregill et al. Jul 1999 A
5940073 Klosterman et al. Aug 1999 A
5943228 Kim Aug 1999 A
5946646 Schena et al. Aug 1999 A
5949351 Hahm Sep 1999 A
5953144 Darbee et al. Sep 1999 A
5959751 Darbee et al. Sep 1999 A
5963145 Escobosa Oct 1999 A
6002443 Iggulden Dec 1999 A
6002450 Darbee et al. Dec 1999 A
6008802 Lki et al. Dec 1999 A
6014092 Darbee et al. Jan 2000 A
6040829 Croy et al. Mar 2000 A
6057872 Candelore May 2000 A
6097309 Hayes et al. Aug 2000 A
6097441 Allport Aug 2000 A
6097520 Kadnier Aug 2000 A
6104334 Allport Aug 2000 A
6127941 Van Ryzin et al. Oct 2000 A
6130625 Harvey Oct 2000 A
6130726 Darbee et al. Oct 2000 A
6133847 Yang Oct 2000 A
6144315 Flick Nov 2000 A
6144375 Jain et al. Nov 2000 A
6147677 Escobosa et al. Nov 2000 A
6154204 Thompson et al. Nov 2000 A
6157319 Johns et al. Dec 2000 A
6169451 Kim Jan 2001 B1
6173330 Guo et al. Jan 2001 B1
6177931 Alexander et al. Jan 2001 B1
6195033 Darbee et al. Feb 2001 B1
6198479 Humpleman et al. Mar 2001 B1
6198481 Urano et al. Mar 2001 B1
6208341 van Ee et al. Mar 2001 B1
6211870 Foster Apr 2001 B1
6223348 Hayes et al. Apr 2001 B1
6225938 Hayes et al. May 2001 B1
6243035 Walter et al. Jun 2001 B1
6255961 Van Ryzin et al. Jul 2001 B1
6271831 Escobosa et al. Aug 2001 B1
6275268 Ellis et al. Aug 2001 B1
6278499 Darbee Aug 2001 B1
6288799 Sekiguchi Sep 2001 B1
6326947 Capps et al. Dec 2001 B1
6330091 Escobosa et al. Dec 2001 B1
6369803 Brisebois et al. Apr 2002 B2
6374404 Brotz et al. Apr 2002 B1
6397187 Vriens et al. May 2002 B1
6408435 Sato Jun 2002 B1
6445306 Trovato et al. Sep 2002 B1
6469633 Wachter Oct 2002 B1
6483548 Allport Nov 2002 B1
6483906 Iggulden et al. Nov 2002 B1
6496135 Darbee Dec 2002 B1
6504580 Thompson Jan 2003 B1
6522262 Hayes et al. Feb 2003 B1
6532592 Shintani et al. Mar 2003 B1
6538556 Kawajiri Mar 2003 B1
6563430 Kemink et al. May 2003 B1
6567011 Young et al. May 2003 B1
6567984 Allport May 2003 B1
6587067 Darbee et al. Jul 2003 B2
6628340 Graczyk et al. Sep 2003 B1
6629077 Arling et al. Sep 2003 B1
6640144 Huang et al. Oct 2003 B1
6642852 Dresti et al. Nov 2003 B2
6650247 Hayes Nov 2003 B1
6657679 Hayes et al. Dec 2003 B2
6690290 Young et al. Feb 2004 B2
6690392 Wugoski Feb 2004 B1
6701091 Escobosa et al. Mar 2004 B2
6720904 Darbee Apr 2004 B1
6722984 Sweeney, Jr. et al. Apr 2004 B1
6724339 Conway et al. Apr 2004 B2
6747591 Lilleness et al. Jun 2004 B1
6748248 Pan et al. Jun 2004 B1
6748462 Dubil et al. Jun 2004 B2
6759967 Staller Jul 2004 B1
6781518 Hayes et al. Aug 2004 B1
6781638 Hayes Aug 2004 B1
6784804 Hayes et al. Aug 2004 B1
6784805 Harris et al. Aug 2004 B2
6785579 Huang et al. Aug 2004 B2
6788241 Arling et al. Sep 2004 B2
6813619 Devara Nov 2004 B2
6826370 Escobosa et al. Nov 2004 B2
6828992 Freeman et al. Dec 2004 B1
6829512 Huang et al. Dec 2004 B2
6829992 Kobayashi et al. Dec 2004 B2
6842653 Weishut et al. Jan 2005 B2
6847101 Ejelstad et al. Jan 2005 B2
6859197 Klein et al. Feb 2005 B2
6862741 Grooters Mar 2005 B1
6870463 Dresti et al. Mar 2005 B2
6874037 Abram Mar 2005 B1
6882299 Allport Apr 2005 B1
6882729 Arling et al. Apr 2005 B2
6885952 Hayes et al. Apr 2005 B1
6917302 Lilleness et al. Jul 2005 B2
6933833 Darbee Aug 2005 B1
6938101 Hayes et al. Aug 2005 B2
6946988 Edwards et al. Sep 2005 B2
6947101 Arling Sep 2005 B2
6968570 Hayes et al. Nov 2005 B2
6980150 Conway et al. Dec 2005 B2
7005979 Haughawout et al. Feb 2006 B2
7009528 Griep Mar 2006 B2
7010805 Hayes et al. Mar 2006 B2
7013434 Masters et al. Mar 2006 B2
RE39059 Foster Apr 2006 E
7046161 Hayes May 2006 B2
7079113 Hayes et al. Jul 2006 B1
7091898 Arling et al. Aug 2006 B2
7093003 Yuh et al. Aug 2006 B2
7102688 Hayes et al. Sep 2006 B2
7119710 Hayes et al. Oct 2006 B2
7126468 Arling et al. Oct 2006 B2
7129995 Arling Oct 2006 B2
7135985 Woolgar et al. Nov 2006 B2
7136709 Arling et al. Nov 2006 B2
7142127 Hayes et al. Nov 2006 B2
7142934 Janik Nov 2006 B2
7142935 Janik Nov 2006 B2
7143214 Hayes et al. Nov 2006 B2
7151528 Taylor et al. Dec 2006 B2
7154428 Clercq et al. Dec 2006 B2
7154483 Kobayashi Dec 2006 B2
7155305 Hayes et al. Dec 2006 B2
7161524 Nguyen Jan 2007 B2
7167765 Janik Jan 2007 B2
7167913 Chambers Jan 2007 B2
7193661 Dresti et al. Mar 2007 B2
7200357 Janik et al. Apr 2007 B2
7209116 Gates et al. Apr 2007 B2
7218243 Hayes et al. May 2007 B2
7221306 Young May 2007 B2
7224903 Colmenarez et al. May 2007 B2
RE39716 Huang et al. Jul 2007 E
7253765 Edwards et al. Aug 2007 B2
7254777 Hayes et al. Aug 2007 B2
7266701 Hayes et al. Sep 2007 B2
7266777 Scott et al. Sep 2007 B2
7268694 Hayes et al. Sep 2007 B2
7274303 Dresti et al. Sep 2007 B2
7281262 Hayes et al. Oct 2007 B2
7283059 Harris et al. Oct 2007 B2
7319409 Hayes et al. Jan 2008 B2
7436319 Harris et al. Oct 2008 B1
7478079 Robertson et al. Jan 2009 B2
7574693 Kemink Aug 2009 B1
7612685 Harris et al. Nov 2009 B2
7746244 Wouters Jun 2010 B2
7889095 Harris et al. Feb 2011 B1
7944370 Harris et al. May 2011 B1
8026789 Harris et al. Sep 2011 B2
8098140 Escobosa et al. Jan 2012 B1
20010033243 Harris et al. Oct 2001 A1
20010045819 Harris et al. Nov 2001 A1
20020008789 Harris et al. Jan 2002 A1
20020046083 Ondeck Apr 2002 A1
20020056084 Harris et al. May 2002 A1
20020151327 Levitt Oct 2002 A1
20020170073 Miller et al. Nov 2002 A1
20020184626 Darbee et al. Dec 2002 A1
20020190956 Klein et al. Dec 2002 A1
20020194410 Hayes et al. Dec 2002 A1
20030046579 Hayes et al. Mar 2003 A1
20030048295 Lilleness et al. Mar 2003 A1
20030095156 Klein et al. May 2003 A1
20030103088 Dresti et al. Jun 2003 A1
20030117427 Haughawout et al. Jun 2003 A1
20030151538 Escobosa et al. Aug 2003 A1
20030164773 Young et al. Sep 2003 A1
20030164787 Dresti et al. Sep 2003 A1
20030189509 Hayes et al. Oct 2003 A1
20030193519 Hayes et al. Oct 2003 A1
20030233664 Huang et al. Dec 2003 A1
20040046677 Dresti et al. Mar 2004 A1
20040056789 Arling et al. Mar 2004 A1
20040056984 Hayes et al. Mar 2004 A1
20040070491 Huang et al. Apr 2004 A1
20040093096 Huang et al. May 2004 A1
20040117632 Arling et al. Jun 2004 A1
20040136726 Escobosa et al. Jul 2004 A1
20040169590 Haughawout et al. Sep 2004 A1
20040169598 Arling et al. Sep 2004 A1
20040189508 Nguyen Sep 2004 A1
20040189509 Lilleness et al. Sep 2004 A1
20040210933 Dresti et al. Oct 2004 A1
20040246165 Conway et al. Dec 2004 A1
20040261134 Perlman Dec 2004 A1
20040263349 Haughawout et al. Dec 2004 A1
20040266419 Arling et al. Dec 2004 A1
20040268391 Clercq et al. Dec 2004 A1
20050024226 Hayes et al. Feb 2005 A1
20050030196 Harris et al. Feb 2005 A1
20050052423 Harris et al. Mar 2005 A1
20050055716 Louie et al. Mar 2005 A1
20050062614 Young Mar 2005 A1
20050062636 Conway et al. Mar 2005 A1
20050066370 Alvarado et al. Mar 2005 A1
20050078087 Gates et al. Apr 2005 A1
20050080496 Hayes et al. Apr 2005 A1
20050088315 Klein et al. Apr 2005 A1
20050094610 de Clerq et al. May 2005 A1
20050096753 Arling et al. May 2005 A1
20050097594 O'Donnell et al. May 2005 A1
20050097618 Arling et al. May 2005 A1
20050107966 Hayes May 2005 A1
20050116930 Gates Jun 2005 A1
20050134578 Chambers et al. Jun 2005 A1
20050159823 Hayes et al. Jul 2005 A1
20050162282 Dresti et al. Jul 2005 A1
20050179559 Edwards et al. Aug 2005 A1
20050183104 Edwards et al. Aug 2005 A1
20050195979 Arling et al. Sep 2005 A1
20050200598 Hayes et al. Sep 2005 A1
20050210101 Janik Sep 2005 A1
20050216606 Hayes et al. Sep 2005 A1
20050216843 Masters et al. Sep 2005 A1
20050231649 Arling Oct 2005 A1
20050258806 Janik et al. Nov 2005 A1
20050280743 Dresti et al. Dec 2005 A1
20050283814 Scott et al. Dec 2005 A1
20050285750 Hayes et al. Dec 2005 A1
20060007306 Masters et al. Jan 2006 A1
20060012488 Hilbrink et al. Jan 2006 A1
20060031400 Yuh et al. Feb 2006 A1
20060031437 Chambers Feb 2006 A1
20060031549 Janik et al. Feb 2006 A1
20060031550 Janik et al. Feb 2006 A1
20060050142 Scott et al. Mar 2006 A1
20060055554 Hayes et al. Mar 2006 A1
20060101498 Arling et al. May 2006 A1
20060125800 Janik Jun 2006 A1
20060132458 Garfio et al. Jun 2006 A1
20060143572 Scott et al. Jun 2006 A1
20060150120 Dresti et al. Jul 2006 A1
20060161865 Scott et al. Jul 2006 A1
20060192855 Harris et al. Aug 2006 A1
20060194549 Janik et al. Aug 2006 A1
20060200538 Yuh et al. Sep 2006 A1
20060259183 Hayes et al. Nov 2006 A1
20060259184 Hayes et al. Nov 2006 A1
20060259864 Klein et al. Nov 2006 A1
20060262002 Nguyen Nov 2006 A1
20060283697 Garfio Dec 2006 A1
20060288300 Chambers et al. Dec 2006 A1
20060294217 Chambers Dec 2006 A1
20070037522 Liu et al. Feb 2007 A1
20070052547 Haughawout et al. Mar 2007 A1
20070061027 Janik Mar 2007 A1
20070061028 Janik Mar 2007 A1
20070061029 Janik Mar 2007 A1
20070063860 Escobosa et al. Mar 2007 A1
20070073958 Kalayjian Mar 2007 A1
20070077784 Kalayjian et al. Apr 2007 A1
20070097275 Dresti et al. May 2007 A1
20070136693 Lilleness et al. Jun 2007 A1
20070156739 Black et al. Jul 2007 A1
20070178830 Janik et al. Aug 2007 A1
20070206949 Mortensen Sep 2007 A1
20070225828 Huang et al. Sep 2007 A1
20070233740 Nichols et al. Oct 2007 A1
20070258595 Choy Nov 2007 A1
20070271267 Lim et al. Nov 2007 A1
20070279244 Haughawout et al. Dec 2007 A1
20070296552 Huang et al. Dec 2007 A1
20080005764 Arling et al. Jan 2008 A1
20080016467 Chambers et al. Jan 2008 A1
20080016468 Chambers et al. Jan 2008 A1
20080036642 Harris et al. Feb 2008 A1
20080042982 Gates et al. Feb 2008 A1
20080062033 Harris et al. Mar 2008 A1
20080062034 Harris et al. Mar 2008 A1
20080068247 Harris et al. Mar 2008 A1
20080198059 Harris et al. Aug 2008 A1
20080302582 Sekhri et al. Dec 2008 A1
20090224955 Bates et al. Sep 2009 A1
20100033638 O'Donnell Feb 2010 A1
20110133976 Harris et al. Jun 2011 A1
20120326852 Harris et al. Dec 2012 A1
Foreign Referenced Citations (45)
Number Date Country
6626790 Apr 1992 AU
2001169851 Jan 2002 AU
2092003 Nov 2008 CA
1399444 Feb 2003 CN
1434422 Aug 2003 CN
19520754 Dec 1996 DE
103 438 Mar 1984 EP
0103438 Mar 1984 EP
0398 550 Nov 1990 EP
0972280 Jan 2000 EP
1014577 Jun 2000 EP
1198069 Apr 2002 EP
1777830 Apr 2007 EP
2738931 Mar 1997 FR
2081948 Feb 1982 GB
2175724 Dec 1986 GB
2304217 Dec 1997 GB
7-075173 Mar 1995 JP
7112301 Nov 1995 JP
2002058079 Feb 2002 JP
2002271871 Sep 2002 JP
2003087881 Mar 2003 JP
PA2003000322 Nov 2003 MX
WO 0169567 Sep 1991 WO
WO 9312612 Jun 1993 WO
WO 9319427 Sep 1993 WO
WO 9415417 Jul 1994 WO
WO 9501056 Jan 1995 WO
WO 9501057 Jan 1995 WO
WO 9501058 Jan 1995 WO
WO 9501059 Jan 1995 WO
WO 9532563 Nov 1995 WO
WO 9532583 Nov 1995 WO
WO 9628903 Sep 1996 WO
WO 9630864 Oct 1996 WO
WO 9733434 Sep 1997 WO
WO 9843158 Oct 1998 WO
WO 9844477 Oct 1998 WO
WO 9904568 Jan 1999 WO
WO 9934564 Jul 1999 WO
WO 0034851 Jun 2000 WO
WO 03044684 May 2003 WO
WO 03045107 May 2003 WO
WO 03060804 Jul 2003 WO
WO 03100553 Dec 2003 WO
Non-Patent Literature Citations (83)
Entry
U.S. Appl. No. 12/245,675, filed Oct. 3, 2008, Harris et al.
U.S. Appl. No. 11/267,528, filed Nov. 3, 2005, Harris et al.
Ciarcia S. “Build a Trainable Infrared Master Controller” Byte 12(3):113-123 (1987).
Ciarcia S. The Best of Ciarcia's Circuit Cellar pp. 345-354 (1987).
Konstan J. A. “State problems in programming human-controlled devices” Digest of Tech. Papers of Int. Conf. on Consumer Electronics (ICCE) pp. 122-123 (1994).
Press Release: “Philips Revolutionizes Home Theatre Control”; 1998 3 pages.
“ProntoEdit User Manual”; 2002 http://www.pronto.philips.com/index.cfm?id=241 85 pages.
“Pronto Review”; www.remotecentral.com/pronto/index.html 3 pages.
Pronto link to downloadable files for components from different manufacturers; http://www.remotecentral.com/files/index.html 3 pages.
Radio Shack Universal Remote Control Owners Manual pp. 1-29 (1987).
Notice of Allowance for U.S. Appl. No. 09/090,315 mailed Dec. 14, 1999; 19 pages.
Final Office Action for U.S. Appl. No. 09/090,315 mailed on Aug. 23, 1999; 22 pages.
Final Office Action for U.S. Appl. No. 09/804,619 mailed on Jun. 30, 2005; 24 pages.
Non-Final Office Action for U.S. Appl. No. 09/804,619 mailed on Nov. 16, 2004; 23 pages.
Non-Final Office Action for U.S. Appl. No. 09/804,624 mailed on Oct. 23, 2003; 12 pages.
Non-Final Office Action for U.S. Appl. No. 09/804,624 mailed on May 21, 2004; 13 pages.
Final Office Action for U.S. Appl. No. 09/804,624 mailed on Dec. 2, 2004; 18 pages.
Non-Final Office Action for U.S. Appl. No. 09/804,624 mailed on May 3, 2005; 18 pages.
Final Office Action for U.S. Appl. No. 09/804,624 mailed on Dec. 28, 2005; 19 pages.
Non-Final Office Action for U.S. Appl. No. 09/804,624 mailed on May 17, 2006; 24 pages.
Notice of Allowance for U.S. Appl. No. 09/804,624 mailed on Jan. 11, 2007; 6 pages.
Final Office Action for U.S. Appl. No. 10/839,970 mailed on Jun. 30, 2005; 11 pages.
Non-Final Office Action for U.S. Appl. No. 10/839,970 mailed on Dec. 20, 2005; 7 pages.
Non-Final Office Action for U.S. Appl. No. 10/839,970 mailed on Jan. 3, 2007; 9 pages.
Final Office Action for U.S. Appl. No. 10/839,970 mailed on Jun. 18, 2007; 10 pages.
Non-Final Office Action for U.S. Appl. No. 10/839,970 mailed on Mar. 14, 2008; 9 pages.
Final Office Action for U.S. Appl. No. 10/839,970 mailed on Oct. 1, 2008; 23 pages.
Notice of Allowance for U.S. Appl. No. 10/839,970 mailed on Jun. 12, 2009; 7 pages.
Final Office Action for U.S. Appl. No. 10/870,339 mailed on Jul. 10, 2009; 18 pages.
Non-Final Office Action for U.S. Appl. No. 10/870,339 mailed on Aug. 22, 2008; 18 pages.
Notice of Allowance for U.S. Appl. No. 10/870,339 mailed on May 1, 2008; 14 pages.
Final Office Action for U.S. Appl. No. 10/870,339 mailed on Oct. 17, 2007; 10 pages.
Non-Final Office Action for U.S. Appl. No. 10/870,339 mailed on Feb. 20, 2007; 12 pages.
Final Office Action for U.S. Appl. No. 10/870,339 mailed on Jun. 29, 2006; 17 pages.
Non-Final Office Action for U.S. Appl. No. 10/870,339 mailed on Sep. 30, 2005; 11 pages.
Non-Final Office Action for U.S. Appl. No. 11/199,922 mailed on Jul. 7, 2006; 13 pages.
Final Office Action for U.S. Appl. No. 11/199,922 mailed on Jan. 23, 2007; 7 pages.
Advisory Action for U.S. Appl. No. 11/199,922 mailed on Mar. 27, 2007; 3 pages.
Non-Final Office Action for U.S. Appl. No. 11/199,922 mailed on Jun. 5, 2007; 6 pages.
Final Office Action for U.S. Appl. No. 11/199,922 mailed on Feb. 11, 2008; 6 pages.
Notice of Allowance for U.S. Appl. No. 11/199,922 mailed on Jul. 3, 2008; 6 pages.
Final Office Action for U.S. Appl. No. 11/267,528 mailed on Oct. 28, 2008; 9 pages.
Advisory Action for U.S. Appl. No. 11/267,528 mailed on Apr. 30, 2009; 3 pages.
Non-Final Office Action for U.S. Appl. No. 11/267,528 mailed on Jun. 2, 2009; 9 pages.
Final Office Action for U.S. Appl. No. 11/267,528 mailed on Jan. 15, 2010; 8 pages.
Non-Final Office Action for U.S. Appl. No. 11/267,528 mailed on Jun. 8, 2010; 9 pages.
Notice of Allowance for U.S. Appl. No. 11/267,528 mailed on Jul. 14, 2010; 13 pages.
Non-Final Office Action for U.S. Appl. No. 11/411,398 mailed Oct. 5, 2009; 19 pages.
Final Office Action for U.S. Appl. No. 11/411,398 mailed on Apr. 28, 2010; 13 pages.
Non-Final Office Action for U.S. Appl. No. 11/841,748 mailed on Dec. 17, 2009; 13 pages.
Final Office Action for U.S. Appl. No. 11/841,748 mailed on Aug. 11, 2010; 14 pages.
Non-Final Office Action for U.S. Appl. No. 11/748,380 mailed on Jan. 11, 2010; 13 pages.
Final Office Action for U.S. Appl. No. 11/841,764 mailed Apr. 2, 2010; 8 pages.
Final Office Action for U.S. Appl. No. 11/841,764 mailed on Jan. 8, 2009; 10 pages.
Non-Final Office Action for U.S. Appl. No. 11/841,764 mailed on Apr. 11, 2008; 6 pages.
Non-Final Office Action for U.S. Appl. No. 11/841,764 mailed on Jun. 17, 2009; 8 pages.
Final Office Action for U.S. Appl. No. 11/841,778 mailed on Apr. 12, 2010; 9 pages.
Non-Final Office Action for U.S. Appl. No. 11/841,778 mailed on Jun. 10, 2009; 14 pages.
Non-Final Office Action for U.S. Appl. No. 11/841,778 mailed on Sep. 8, 2010; 9 pages.
Non-Final Office Action for U.S. Appl. No. 11/841,753 mailed on Dec. 18, 2009; 14 pages.
Non-Final Office Action for U.S. Appl. No. 12/245,675 mailed on Apr. 2, 2010; 6 pages.
Final Office Action for U.S. Appl. No. 12/387,631 mailed Jun. 8, 2010; 11 pages.
Notice of Allowance for U.S. Appl. No. 09/080,315 mailed Nov. 22, 1999; 19 pages.
Notice of Allowance for U.S. Appl. No. 09/080,315 mailed Dec. 14, 1999; 4 pages.
Final Office Action for U.S. Appl. No. 09/080,315 mailed on Aug. 23, 1999; 22 pages.
Notice of Allowance for U.S. Appl. No. 12/245,675 mailed on Oct. 6, 2010; 5 pages.
Non-Final Office Action for U.S. Appl. No. 10/984,954 mailed on Nov. 5, 2008; 13 pages.
Restriction requirement for U.S. Appl. No. 10/984,954 mailed on Sep. 4, 2008; 7 pages.
Final Office Action for U.S. Appl. No. 10/119,264 mailed on Aug. 20, 2008; 11 pages.
Non-Final Office Action for U.S. Appl. No. 10/119,264 mailed on Feb. 6, 2008; 9 pages.
Final Office Action for U.S. Appl. No. 10/119,264 mailed on Jul. 16, 2007; 8 pages.
Non-Final Office Action for U.S. Appl. No. 10/870,339 mailed on Feb. 19, 2010; 10 pages.
Final Office Action for U.S. Appl. No. 10/870,339 mailed on Jul. 10; 2009; 18 pages.
Non-Final Office Action for U.S. Appl. No. 10/870,339 mailed on Oct. 20, 2008; 9 pages.
Non-Final Office Action for U.S. Appl. No. 10/870,339 mailed on Aug. 22, 2008; 19 pages.
Final Office Action for U.S. Appl. No. 10/870,339 mailed on Jun. 29; 2006; 17 pages.
Non-Final Office Action for U.S. Appl. No. 10/870,339 mailed on Sep. 30; 2005; 11 pages.
Non-Final Office Action for U.S. Appl. No. 09/672,161 mailed on Nov. 28, 2005;11 pages.
Final Office Action for U.S. Appl. No. 09/672,161 mailed on Jun. 29, 2005; 12 pages.
Advisory Action for U.S. Appl. No. 09/672,161 mailed on Sep. 21, 2005; 3 pages.
Non-Final Office Action for U.S. Appl. No. 09/672,161 mailed on Sep. 22, 2004; 13 pages.
Non-Final Office Action for U.S. Appl. No. 11/841,778 mailed on Jun. 10, 2009; 9 pages.
International Search Report for PCT/CA01/00323 mailed on Apr. 4, 2002; 7 pages.
Related Publications (1)
Number Date Country
20070037522 A1 Feb 2007 US
Provisional Applications (1)
Number Date Country
60673479 Apr 2005 US