Abstract:
A method for storing and using information received from a controllable appliance in a controlling device. In response to a detected activation of a key of the controlling device the controlling device transmits a request signal to the controlled appliance for the purpose of retrieving from the controlled appliance data associated with a media tuning state of the controlled appliance, such as a tuned-to channel, CD or DVD track being played, or the like, The controlling device receives from the controlled appliance the media tuning state data and stores the media tuning state data in memory. The media tuning state data stored in the memory of the controlling device may then be used to transmit from the controlling device to the controlled appliance a media tuning command to cause the controlled appliance to replicate the previously captured media tuning state.

Description:
RELATED APPLICATIONS 
       [0001]    This application is a continuation-in-part of U.S. application Ser. No. 11/521,730 filed on Sep. 15, 2006, which is a continuation of U.S. application Ser. No. 09/967,069, filed on Sep. 27, 2001, now U.S. Pat. No. 7,193,661, the disclosures of which are hereby incorporated by reference in their entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to hand-held remote control modules, as well as consumer electronic devices. Specific exemplary embodiments discussed relate to hand-held remote controls and televisions connected to cable or satellite set-top boxes. 
       BACKGROUND OF THE INVENTION 
       [0003]    The description of art in this section is not intended to constitute an admission that any patent, publication or other information referred to herein is “prior art” with respect to this invention, unless specifically designated as such. 
         [0004]    While the present invention relates to hand-held control modules generally, it will be better understood within the discussion of exemplary embodiments directed toward universal remote controls. Universal remote controls typically offer a preprogrammed set of standardized keys for each device type supported. These provide for the common operational functions of the device but do not necessarily offer the full range of features available on the original manufacturer&#39;s remote. 
         [0005]    U.S. patents and applications relevant to remote control technology include U.S. Pat. Nos. 5,515,052; 5,255,313; and U.S. patent application Ser. No. 09/418,091 filed Oct. 14, 1999, which are incorporated herein by reference. Pat. &#39;052 discloses a universal remote control with function synthesis. The remote control comprises driver circuitry for communicating code signal generation sequences including a code generated command signal followed by a code setting signal; and memory for storing information therein. Pat. &#39;313 discloses a universal remote control system having a signal generator to transmit signals which will cause specific functions to occur in specific controlled devices. Patent application Ser. No. &#39;091 discloses means and methods for operating a remote control. 
         [0006]    Users of universal remote controls who need access to one or more functions not preprogrammed into the unit must then use a learning capability or a feature, such as a function synthesizer (e.g., the function synthesizer discussed in Pat. &#39;052) to add the desired extra functions to their remotes. Other U.S. Patents related to remote control technology, and in particular, relating to learning technology include U.S. Pat. Nos. 4,959,810, 5,228,077, and 5,537,463 which are incorporated herein by reference. 
         [0007]    Pat. &#39; 810  discloses means for transferring instructions and/or data to RAM wherein the instructions and/or data is transferred from a source external to the RAM. Pat. &#39;077 discloses a remotely upgradable universal remote control. Pat. &#39;463 discloses means in the remote control for picking up an electromagnetic signal from an electromagnetic signal source and storing output signal data in memory. The output signal data stored in memory may correspond to control function data which may be transmitted to a device to be controlled. 
         [0008]    U.S. Pat. No. 5,481,256, issued Jan. 2, 1996, is incorporated herein by reference. The &#39;256 patent discloses circuitry for coupling a SCAN key to a microprocessor and a channel scan program. A channel scan of channels is initiated when the SCAN key is depressed. 
         [0009]    U.S. Pat. No. 5,414,426, issued May 9, 1995, is incorporated herein by reference. The &#39;426 patent discloses an entry program for enabling a user to define a macro for selecting at least one favorite channel, whereby rapid selection of at least one favorite channel is made upon subsequent depression of a MACRO key. 
         [0010]    A drawback of the prior art is that programming a remote control, for example to configure a macro key or create a favorite channel list, can be tedious. Accordingly, it would be useful if there were a “short cut” way to perform these operations. For example, a favorite channel list could be built by simply pressing a key, labeled for example “Thumbs Up”, whenever the user came across a channel he liked. Likewise, a “Thumbs Down” key could be used to delete a channel that fell out of favor. Likewise, one or more individual favorite channel macro keys may be provided that would be similarly configurable upon user request. 
         [0011]    A challenge in implementing this feature is that the remote control generally is not able to precisely track which channel number is currently being viewed. On many TV sets, for example, action of the CH+ and CH− keys does not necessarily advance channel numbers in exact numerical order. Also, the effect of holding one of these keys for a longer period is not predictable. 
         [0012]    The tuning device (cable or satellite STB, TV set, etc.) does however always know the current channel number. Thus, if a method is available to transmit this tuning information back to the remote control on the receipt of a “Thumbs Up” key press or similar user request, the above programming features could be implemented in the remote control. 
         [0013]    Transmission of data together with television signals are known and include, for example: Vertical Blanking Interval (VBI), e.g., Teletext and Closed Captioning, FM broadcast radio sub-carrier, and cellular telephone-like data systems. Such systems have been complex and not readily available to most TV viewers. 
         [0014]    U.S. Pat. No. 5,594,493, which issued Jan. 14, 1997, and is incorporated herein by reference, discloses transmitting data information along with any standard TV video signal for reception by a “smart card” held near the screen. The smart card includes circuitry, a LCD display screen and a plurality of buttons for interacting with the user. The &#39;493 system utilizes a signal with the data imbedded in the video signal. Thus, video and data signals are received simultaneously and with equal clarity. The &#39;493 patent teaches sending data transmission along with a standard television signal in the form of changing light pulses; the data signal is invisible to the user. The light modulation is then sensed by a photoelectric pickup device within the smart card where it is captured and stored. The data can then be displayed and read at a terminal at a redemption center, for example. 
         [0015]    U.S. Pat. No. 5,410,326, which issued Apr. 25, 1995, and is incorporated herein by reference, discloses a universal remote control having a touch screen, capable of displaying icons, and a opto-photo signal detector. When advertising indicia is imbedded in a video signal being displayed on a television receiver, the opto-photo signal detector will detect the encoded video signal and supply a digital data stream to an analog signature and signal processor. The variations in luminance are decoded to provide the corresponding serial data stream to the microprocessor. 
         [0016]    Both the &#39;493 and &#39;326 patents comprise overlaying or merging the data stream with the video signal. Also, the data stream is always on—the remote “looks up” and receives the data stream via light transmissions. The video system does not respond to queries from the remote control to, for example, provide its current state. 
         [0017]    The following U.S. patent applications disclose methods for controlling media systems and for capturing state information. U.S. Pat. Ser. No. 09/718,931, filed Nov. 21, 2000, and U.S. Pat. Ser. No. 09/418,091, filed Oct. 14, 1999, are incorporated herein by reference. The &#39;931 application discloses a media return system with return to state capability. The status of the system is quickly captured and provides a simple means to reset the system to, for example, the state prior to channel surfing. The &#39;091 application discloses a media system with punch-through capability. Functional control may be locked across devices to control a particular device while operating in a different device mode. 
         [0018]    This document utilizes two-way communication methods differing from those disclosed in the &#39;326 and &#39;493 patents. Particular embodiments complement the various media systems and methods disclosed in the &#39;931 and &#39;091 patent applications. 
       SUMMARY OF THE INVENTION 
       [0019]    This document describes methods in which a two-way communications link between a set-top box hooked up to a television or the like (hereafter referred to as “video system”) is utilized to transmit information to a remote control (also referred to as “receiver”) to allow functions of the remote control to be configured. 
         [0020]    In one exemplary embodiment, infrared (IR) is used by the remote control to communicate/control the video system and visible light is used by the video system to communicate its status to the remote control. In a second exemplary embodiment, IR is used by both the remote control to communicate/control the video system and the video system to communicate its status to the remote control 
         [0021]    This system will facilitate the design of user friendly remote control units, which can be programmed to gather user preferences/settings from the video system and use this information for a variety of control scenarios, enhancing the functionality of the remote control. 
         [0022]    An object is to provide a method for imparting status information of a particular media parameter to a controlling device. A specific application is directed toward indicating the current channel to the remote control and use of this information to configure favorite channel keys and/or tables in the remote control. 
         [0023]    Other objects and advantages will be apparent to those of skill in the art from the teachings disclosed herein. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0024]    In the interest of enabling one of skill in the art to practice the invention, exemplary embodiments are shown and described. For clarity, details apparent to those of skill in the art and reproducible without undue experimentation are generally omitted from the drawings and description. 
           [0025]      FIG. 1   a  depicts a block diagram of an exemplary media system and process for requesting information from the video system. 
           [0026]      FIG. 1   b  depicts a block diagram of a second exemplary media system and process for requesting information from the video system. 
           [0027]      FIG. 2  depicts a flow chart diagram of an exemplary method for transmitting data from the video system. 
           [0028]      FIG. 3  depicts a flow chart diagram of an exemplary method for receiving data from the video system. 
           [0029]      FIG. 4  depicts a schematic diagram of an exemplary system for producing a signal. For clarity, the video switch and IR receiver are not shown. 
           [0030]      FIG. 5  depicts a schematic diagram of an exemplary system for transforming the received optical signal to an electrical signal that can be interfaced to a microprocessor. 
           [0031]      FIG. 6  depicts a flow chart diagram of an exemplary method for modifying a favorite channel scan table. 
           [0032]      FIG. 7  depicts a flow chart diagram of an exemplary method for inserting a channel into a channel scan table. 
           [0033]      FIG. 8  depicts a representative channel scan table. 
           [0034]      FIG. 9  depicts a flow chart diagram of an exemplary method for removing a channel from a channel scan table. 
           [0035]      FIG. 10  depicts a logic flow diagram for a first exemplary method of interrogating a set top box (STB) within the system. 
           [0036]      FIG. 11  depicts a flow chart diagram of an exemplary method for implementing a programmable favorite channel button(s). 
           [0037]      FIG. 12  depicts a logic flow diagram for a second exemplary method of interrogating a set top box (STB) within the system. 
       
    
    
     DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0038]    This disclosure is discussed in relation to remote controls, however, other uses will be apparent from the teachings disclosed herein. It will be better understood from the following detailed description of exemplary embodiments with reference to the attached drawings, wherein like reference numerals and characters refer to like parts, and by reference to the following claims. 
         [0039]      FIGS. 1   a  and  1   b  depict typical modern video systems  10  and  10 ′. These video systems comprise a video monitor (display or monitor)  12  that is typically a television and a set top box  14  or  14 ′ for receiving an encoded signal and providing a video signal to the video monitor. A remote control  16  or  16 ′ typically controls channel selection and other parameters of the system. 
         [0040]    In such a system, the steps for conveying information to the remote control may comprise: 
         [0041]    1. Request information  20  from the video system  10  using an infrared remote control  16  (The requested information, in a preferred embodiment, is the identification of the current channel); 
         [0042]    2. The video system processes the request  20  and transmits the answer  22  in a signal; and 
         [0043]    3. The remote control  16  receives the signal  22  and decodes it. 
         [0044]    For added reliability a fourth step can be added in which the remote control  16  can re-transmit the received information to the video system  10 . In response, the video system  10  can transmit an OK signal (i.e., a signal to acknowledge that the remote control  16  received the correct information) or a BAD signal (i.e., to signal that the remote control  16  did not receive/process/etc. the correct information) to the remote control  16 . 
         [0045]    The above method is an exemplary method for implementing two way communications and preferably uses existing well defined serial protocol. Such methods allow the current state of video system  10  or  10 ′ to be shared with other devices not physically attached to it. 
         [0046]    In one exemplary embodiment, illustrated in  FIG. 1   a , the video system&#39;s screen  18  may be flashed in order to transmit its status. A bright screen could be considered a digital ‘1’ and a dark screen could be considered a digital ‘0’. In this way a serial data stream can be produced at a low baud rate, organized into ASCII characters for the transmission of text like information. 
         [0047]    In accordance with this embodiment a receiver in the remote control  16  preferably comprises a circuit optimized to receive flashing visible light, and thereby receive serial information. The remote control  16  should comprise a microprocessor or circuit capable of decoding the serial information and processing it. 
         [0048]      FIG. 2  is a block diagram of a transmitter  30  which may be used to cause the video monitor  18  to flash in response to a request  20 . For clarity this transmitter  30  is shown separate from and connected to the set top box  14  via a serial port  32 . It will be appreciated however that most set top boxes already include a screen generator  34  for generating, for example, black and white screens, a controller  36 , such as a microprocessor, an IR input port  38  for receiving control commands from, for example, a remote control  16 , and video switching capability (provided via, for example, video switch  40 ) to switch the output signal  46  between a video-in signal  42  and a (light-dark) screen generator signal  44 . Since the transmitter  30  components are typically within existing set top boxes as described above, in many cases the appropriate software can be downloaded to the set top box by any number of conventional processes and no additional hardware is required. 
         [0049]    A receiving section  50  of a remote control  52  compatible with the teachings in this document is shown in  FIG. 3 . The receiving section  50  comprises an optical receiver  54  for receiving visible light and a controller  56  for decoding the light received. The conventional functions of the remote control are indicated by block  58 . 
         [0050]    The diagrams of  FIGS. 2 and 3  are only examples. Each block can be implemented as a stand-alone function or within other functional blocks. In particular, most or all of the functions shown in  FIG. 2  may be implemented within the set top box  14  if so desired. The figures are discussed in more detail below: 
         [0051]      FIG. 2  illustrates in functional block form, elements for transmitting data from the video system  10  using the method described below. Other methods are also acceptable. The steps conforming to  FIG. 2  comprise: 
         [0052]    1. A request to transmit data is input via the IR receiver; 
         [0053]    2. The system processes this request and develops a response; 
         [0054]    3. The existing video signal is interrupted using a switching means and is connected to a screen generator; and 
         [0055]    4. The generator flashes the screen in accordance with the pre-established serial protocol and baud rate effectively transmitting the response using visible light (e.g., White=Logical ‘1’ and Black=Logical ‘0’). 
         [0056]      FIG. 3  illustrates in functional block form elements for receiving data from the video system  10  using the method described below. Other methods are acceptable. 
         [0057]    In addition to the existing infrared transmitter, e.g. the basic remote control  58 , an optical, visual light, receiver  54  is utilized which can transform the light signal to electrical signals. These signals are then sent to a microprocessor  56  for decoding. The microprocessor  56  could be the existing processor in the remote control or an additional one that is linked to the remote control&#39;s processor. 
         [0058]    The transmitter  30  of the information to the remote control  16  performs the functions as outlined in  FIG. 2 . A microprocessor  36  from Microchip&#39;s PIC family was chosen because it is inexpensive and has the speed to perform signal generation. Example algorithms for using this processor to implement serial communications and black-and-white video signal generation are readily available on the Internet and from other sources. It will however be appreciated that other equally suitable microprocessors are also available. In order to generate an NTSC compatible signal a minimum of three discrete voltage states are utilized. With a simple microprocessor algorithm up to four states can be accomplished using a voltage divider attached to two microprocessor I/O ports by selectively connecting either port to system power or ground. With accurate timing from a crystal controlled microprocessor clock oscillator, a simple NTSC black and white signal can thus be generated. A detailed exposition of one such software algorithm may be found, for example, at the www website efd.1th.se/˜e96rg/mc/video/rtvideo.htm and, for the sake of brevity, no further description will be provided herein. 
         [0059]      FIG. 4  is an exemplary schematic of a circuit to implement the control and signal generation portions ( 34 , 36 , 44 ) of the transmitter  30  shown in  FIG. 2 . The video switch  40  and IR receiver  38  are not included for clarity. Both the IR receiver  38  and video switch  40  are connected via JP 1 , while serial communication  32  to the set top box  14  is via J 1 . JP 2  is used if needed to set user preferences on start up (for example, PAL versus NTSC video signaling). Resistors R 1  and R 2  connected to microprocessor U 1 &#39;s I/O ports RAO and RA 1 , in conjunction with the 75-ohm impedance of the video output cable connected to P 1 , form the voltage divider described above. 
         [0060]      FIG. 5  illustrates an exemplary circuit  60  for use in the receiver  52  to transform the received optical signal  22  to an electrical signal which can be interfaced to a processor. This is by no means the only way to do this. There are four stages in circuit  60  shown in  FIG. 5 . 
       They are: 
       [0061]    1. CdS Cell/Voltage Divider  65 ; 
         [0062]    2. Amplifier  66 ; 
         [0063]    3. Comparator  67 ; and 
         [0064]    4. One shot  68 . 
         [0065]    CdS Cell/Voltage Divider 
         [0066]    Since the receiver  52  will typically be some distance from the transmitter  30 , a means to concentrate the optical signal  22  onto the transducer is preferred. The optical signal  22  can thus be focused on the CdS (Cadmium Sulfide) transducer cell  62  using a lens and light pipe  64  to minimize interference from stray light. The CdS cell changes resistance as light strikes it and forms one leg of a voltage divider circuit. As light hits the cell  62 , its resistance changes and the ratio of the divider is changed causing a voltage shift at the junction of the divider. Since the signal coming from the video source is transitory this signal is AC coupled  61  to the amplification stage. 
         [0067]    Amplification Stage 
         [0068]    This stage and the comparator stage get their references from the same source as the divider (Vcc or power supply). This makes the entire circuit ratiometric and less susceptible to power supply variation. The amplifier is configured to be an AC amplifier whose DC output is ½ Vcc. The AC gain can be set by varying the ratio of Rf to Ri as shown in  FIG. 5 . The signal is next coupled to a comparator. 
         [0069]    Comparator Stage 
         [0070]    The comparator compares the signal from the amplifier against a known reference and produces a logical ‘1’ or ‘0’. For reliability, some small amount of positive feedback should be incorporated to snap the output signal and keep it from oscillating at the transition point. 
         [0071]    One Shot Stage 
         [0072]    The signal is then fed to a one shot timer  68  to process out any 50 or 60 Hz scanning artifacts in the signal that may be present in some Cathode Ray Tube (CRT) monitor screens (item  18 ). The one shot feature could be implemented either in hardware as shown or in software using the remote control&#39;s microprocessor. Following this stage, the signal is sent to the microprocessor for processing as described below. 
         [0073]      FIG. 6  is a logic flow diagram  70  for modifying a channel scan table. In response to a key selection, the remote control  16  determines if the key selected is the “add-a-channel” key or the “remove-a-channel” key. Steps  72 - 74 . The “add-a-channel” and “remove-a-channel” keys are respectively represented by thumbs-up and thumbs-down icons. If the key selected is not a channel table modification key, the functions associated with the selected key are performed in a normal manner. Step  76 . If the user has indicated a desire to modify the channel table (by selecting one of the thumbs-up/down icons), the remote control  16  will interrogate the STB via IR channel request  20  as illustrated in  FIG. 10 . Step  78 . If the data received from the STB is good, then the identified channel will be added, in accordance with  FIG. 7 , or deleted, in accordance with  FIG. 9 , depending on which thumbs-up/down icon was selected. Steps  80 - 86 . If the data is bad, the remote control will request the channel identification again, for a predetermined number of time. Steps  80  and  88 - 90 . 
         [0074]      FIG. 7  is a logic flow diagram  100  for inserting a channel into the scan table  102  depicted in  FIG. 8 . If the table has not reached its maximum limit, the channel identifier is stored in the table and the LIMIT counter is advanced by one. Steps  104 - 110 . If the table is full, the user will be notified, for example by an error message or flashing lights, that the table is full and the new channel cannot be added. Step  112 . 
         [0075]      FIG. 9  is a logic flow diagram  120  for deleting a channel from scan table  102 . The table pointer TABLE_PTR is moved through the table  102 , typically stepwise, until the value stored in the table is equal to the value of the channel identified by the STB  14  via optical signal  22 . Steps  122 - 130 . The table limit, i.e., the number of channels in the table, should be reduced. If the channel to be deleted is located at the table limit, then reducing the table limit at that point has the effect of removing the channel-to-be-removed from the table. Steps  132 - 134 . If the channel-to-be-removed is not at the table limit, then the values of each successive cell is copied into each preceding cell. In effect the channels above the channel-to-be-removed each take a step down in the table, thereby pushing the channel-to-be-removed out of the table and reducing the limit of the table. Steps  134 - 138 . 
         [0076]    For more details on modifying a scan table, refer to U.S. Pat. No. 5,481,256 issued Jan. 2, 1996, which is incorporated herein by reference. 
         [0077]      FIG. 10  shows logic flow diagrams  140  and  170  for interrogating STB  14  and transmitting channel data (via optical signal  22 ) to remote control  16 . The remote control  16  sends IR channel request  20  to STB  14 , enables the optical receiver  50  and then waits a predetermined time to receive and decode 16 bits of channel identification data. Steps  142 - 160 . If 16 bits of data are not received within the predetermined time interval, the receiver logic  140  sets a “Bad Data” status flag (for use at step  80 ,  FIG. 6 ) and then exits after shutting down the optical receiver. Steps  150  and  152 . 
         [0078]    After the STB  14  receives channel request  20 , it sends, in binary serial form via optical signal  22 , the channel identification data. Then a checksum is sent. Steps  172 - 178 . After the data has been received by the remote  16 , a checksum validity test is performed to determine if the data received is valid and a status flag set accordingly (for processing at step  80 ,  FIG. 2 ) and the optical receiver is shut down. Steps  180 - 186 . 
         [0079]    In a second exemplary embodiment, illustrated in  FIG. 1   b , a two-way IR transmission protocol may be utilized, such as for example that described in U.S. Pat. No. 7,167,913 “System and Method for Managing Communication Links”, of like ownership and incorporated herein by reference in its entirety. In this embodiment, set top box  14 ′ is provided with an IR transmitter and conveys its status  22 ′ to a remote control  16 ′ comprising a circuit for receiving IR light. Since such IR receiving circuits are well known in the art, for the sake of brevity they will not be described in further detail herein, however the interested reader may find further information regarding such receivers in references such as, for example, Vishay Semiconductor&#39;s “Circuit Description of IR Receiver Modules”, document number 80069, 15 Aug. 2006. 
         [0080]      FIG. 11  is a logic flow diagram  230  depicting an exemplary method for implementing a favorite channel key or keys. In response to a key selection, i.e., activation of a hard or soft key, the remote control  16 ′ may determine if the activated key is a favorite channel key, steps  220  and  202 . If not, other key functions are processed in the usual manner at step  222 . If the activated key is a favorite channel key, the remote control waits for the key to be released and then determines if it has been held down for longer than three seconds (or such other time as may be appropriate), steps  204  and  206 . If the key press was shorter than the three second threshold, at step  208  the remote control indexes into a table to retrieve a favorite channel entry. Such a table may, for example, comprise multiple entries to be cycled through as previously described in conjunction with  FIG. 8 ; may comprise a series of individual entries each corresponding to one of a group of multiple favorite channel keys; or may comprise a combination thereof, as appropriate to the specific remote control implementation contemplated. Next, at step  209  the value retrieved is inspected to determine if it is a valid channel number. If it is, at step  210  the appropriate channel selection commands are transmitted to STB  14 ′. If it is not (for example, the retrieved value is zero) at step  216  a error is signaled to the user, for example by flashing an LED or activating a buzzer on remote control  16 ′. Alternatively, a command may be transmitted to cause STB  14 ′ to display an error message on TV  12 . If it is determined at step  206  that the key press duration was greater than three seconds, this is interpreted as a request to program the channel currently being viewed as the favorite (or one of the favorites) associated with that key. To this end, at step  212  STB  14 ′ is interrogated to determine the currently tuned channel number, as will be described in further detail hereafter in conjunction with  FIG. 12 . If a channel number is successfully obtained from STB  14 ′, that value is stored into the appropriate table location for subsequent use. Steps  218 ,  220 . If the channel number request to STB  14 ′ fails, at step  214  the stored value is set as invalid, for example zero, and an error indication is signaled to the user as described previously. 
         [0081]      FIG. 12  shows flow diagrams  240  and  270  for interrogating STB  14 ′ and transmitting channel data (via IR signal  22 ′) to remote control  16 ′. Using, for example, the IR protocol described in the previously referenced U.S. Pat. No. 7,167,913, at steps  242  through  248  remote control  16 ′ sends an IR channel request  20 ′ to STB  14 ′ and waits for an acknowledgement from STB  14 ′. If no acknowledgement is received within  0 . 5  seconds (or such other time limit as my be appropriate) this is processed as an error condition at steps  264  and  266 . Once an acknowledgement is received, at steps  250  through  254  remote control  16 ′ starts a second timer and waits to receive channel number data from the STB. 
         [0082]    Upon receipt of a channel request, at steps  272  through  276  STB  14 ′ may acknowledge the request and proceed to retrieve and format the current channel number data. In an exemplary embodiment, the channel number is encoded for transmission to remote control  16 ′ as a 16-bit binary value consisting of 12 bits of channel and 4 bits of sub-channel information. For error checking purposes, this value is immediately followed by its inverse, i.e., at steps  278  through  282  a data packet containing 32 bits of data payload is transmitted as a general outbound binary data packet in accordance with the protocol described in U.S. Pat. No. 7,167,913. 
         [0083]    Upon receipt of the data packet, at steps  256  through  260  remote control  16 ′ extracts the 32 bits data payload from the packet, separates it into a 16-bit channel number data value and a 16-bit checksum, and verifies that the checksum is the exact inverse of the data value. If not, the error condition is processed at steps  264  through  266 , which allows for up to three repeated attempts to obtain valid data before aborting the process and returning a bad status to the routine which initiated the request (e.g., step  212  of  FIG. 11 ). If the checksum calculation is successful, at step  252  receipt of the data packet is acknowledged to the STB  14 ′, and the received channel number data value is returned the requesting routine. 
         [0084]    While aspects of the invention has been particularly shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. For example, while the exemplary embodiments presented utilize visible and/or infrared light as a transmission medium, it will be appreciated that other transmission mediums, for example RF, may also be used to implement the teachings of this invention. Furthermore, while the exemplary embodiments presented utilize a channel id or channel number as media tuning state data, it will be appreciated that identifiers associated with other forms of media being rendered by an appliance, such as a CD track, DVD chapter, an internet media stream, a radio station, etc., may be utilized as media tuning state data as well. Additionally, other implementations of favorite channel algorithms and/or further possibilities for data exchange between a remote control and controlled appliances will be evident to those of skill in the art. By way of example, without limitation, the channel identification and programming features and functions described herein may be offered in conjunction with download and display of channel logos and/or program guide information such as described in co-pending U.S. patent application Ser. No. 11/823,739 “System and Method for Presenting Program Guide Information in an Electronic Portable Device”; or with selective button activation such as described in U.S. Pat. No. 7,154,428 “Remote Control with Selective Key Illumination”, both of like ownership and incorporated herein by reference in their entirety. Further, while described in the context of functional modules and illustrated using block diagram and flowchart formats, it is to be understood that, unless otherwise stated to the contrary, one or more of the described functions and/or features may be integrated in a single physical device and/or a software module, or one or more functions and/or features may be implemented in separate physical devices or software modules. It will also be appreciated that a detailed discussion of the actual implementation of each module is not necessary for an enabling understanding of the invention. Rather, the actual implementation of such modules would be well within the routine skill of an engineer, given the disclosure herein of the attributes, functionality, and inter-relationship of the various functional modules in the system. Therefore, a person skilled in the art, applying ordinary skill, will be able to practice the invention set forth in the claims without undue experimentation. It will be additionally appreciated that the particular concepts disclosed are meant to be illustrative only and not limiting as to the scope of the claimed invention which is intended to be defined by following claims as they would be understood by one of ordinary skill in the art with appropriate reference to the specification, including the drawings, as warranted. 
         [0085]    All patents cited within this document are hereby incorporated by reference in their entirety.