# Patent

## Title
Set top box

## Abstract

The present application relates to set top boxes and relates to the inclusion of a diagnostic function in the set top box which may be activated remotely or respond internally to the detection of faults or changes in status. The diagnostic function may emulate key presses from an infrared remote control to perform a test.

## Background
RELATED APPLICATION
This application is a continuation of U.S. patent application Ser. No. 13/821,973, filed Mar. 22, 2013, which is a 371application of PCT/EP2011/065792, filed Sep. 12, 2011, the disclosures of which are incorporated herein by reference.


FIELD OF THE APPLICATION
The present application relates to set top boxes
BACKGROUND OF THE APPLICATION
A set top box (STB) or set-top unit (STU) is a device that connects an external source of signal to a television or other display device, turning the signal into content which is then displayed on the television screen. The signal source may come from a satellite dish, a coaxial cable (cable television), IPTV (e.g. over fibre, DSL phone or Ethernet), or a UHF\VHF antenna.
Whilst set-top boxes may traditionally have been mere decoder devices, modern set-top boxes offer more advanced features including, for example, interactive television and the ability to record programmes.
With the increasing complexity and ubiquity of digital Set Top Boxes, the problem of maintaining them in fully working order with satisfied subscribers is becoming increasingly costly. Whilst it is known to include a diagnostic facility within the set-top boxes, this facility tends to be limited and may be of limited use in determining the problems on a set-top box as might be perceived by a user. The present application is directed at providing solutions that improves upon prior art approaches.
SUMMARY
The present application solves this problem by including an ability within a multimedia device, which may for example, be a set top box for a user to send instructions to the set top box as if they were using the remote control of the set top box. In addition to or in places of this function, the set top box also may provide the ability to send copies of what is being displayed by the set top box to a user remote from the set top box. Thus a technician can effectively interface with the set top box as if they were present in the end user's home watching the output from the set top box on a connected television and similarly they can send remote control key presses as if they were using the user's remote control. A diagnostic function may be included within the set top box. The diagnostic function suitably runs in the background on the set top box but may be remotely activatable or responsive to changes in state on the set top box, including for example the detection of a fault.
The present application provides a set-top box and system in accordance with the claims which follow. Advantageous embodiments and features are set forth in dependent claims.
In one embodiment, a set top box is provided for decoding received media content in a signal and providing this media content to a television, the set top box comprising: a) a communications channel for receiving instructions and transmitting data to an external device, and b) a diagnostic feature activatable by the external device over the communications channel and which when activated causes the set top box to perform one or more tests on the set top box and return the results to the external device.
The communications channel may be a local wireless connection. The external device may be a handheld computing device. The wireless connection may be a Wi-Fi connection to a local gateway to the internet and the external device is a server connected the internet in a remote location. The external device may be configured to allow a user through a graphical interface to transmit instructions to the set top box.
In another embodiment, a set top box is provided for decoding received media content and providing this media content to a television set, the set top box having a control interface for receiving commands from a local user to perform functions on the set top box, a communications module for receiving instructions from a remote user over a communications channel, an emulator for emulating the receipt of at least one command at the remote control interface in response to the receipt of an instruction from a remote user by the communications module to issue the at least one command. The control interface may be a remote control interface. The control interface may comprise an infra red detector. The set top box may further comprise: a) a video module in which received media content is formatted into the video component of a TV signal, and b) an image capturing block for capturing at least one image from the video circuit and transmitting this captured image to the remote user through the communications module. The image capturing block may be configured to compress the image into in a compressed format before transmission. The video module may be adapted to provide On Screen Display (OSD) information within the video component. The video module may be configured to retrieve the OSD information from an OSD memory. Suitably, the image captured by the image capturing block comprises OSD information retrieved from the OSD memory. The image captured may be exclusively OSD information retrieved from the OSD memory.
The communications module may be configured to obtain a measure of speed and\or bandwidth of the communications channel and wherein the degree of compression performed by the image capturing block is responsive to the obtained measure.
The instruction received from the user may comprise a series of commands to be issued to the set top box through the emulator and wherein the emulator issues the commands to the remote control interface with a delay between commands to allow the set top box to perform the command. The image capturing block may be triggered after the execution of the last command in the series.
The set top box may comprise a diagnostic function, which may be remotely activated by the remote user by an instruction sent over the communications channel and which when activated performs one or more diagnostic tests upon the set top box. The results of the one or more diagnostic tests may be provided to the user by the diagnostic function through the communications module. The communications module may initially be disabled to act upon instructions from a remote user over the communications channel. In which case, the communication module may be enabled to act upon instructions from a remote user by the issuing of at least one command by a local user at the control interface. This enabling may comprise the communications module establishing a session with a remote server.
In another embodiment, a set top box is provided having a power measurement component, the power measurement component comprises at least one timer for measuring the aggregate duration a set top box is in an individual state. Suitably, there may be a plurality of timers, each timer recording the aggregate duration the set top box is in an associated state. The associated state may be one or more of: a) the STB, b) a hard drive, c) a tuner, and d) an AV output. The set top box may be configured to report the durations of the at least one state to a remote server. The set top box may be configured to perform a power consumption calculation from the timed durations.
The set top box may be suitably configured to upload the result of the power consumption calculation to a remote server.
A further embodiment provides a method of measuring the power consumption of a set top box, the method comprising the step of measuring the duration of different states of the set top box, retrieving a measure of power usage in each of the different states; and using the measured durations and power usage measure for each state to obtain a power consumption for that state and aggregating the power consumption for the different states to provide a total measure.
A further embodiment provides a set top box comprising: a) an internal monitoring component for monitoring the state of one or more of the hardware\software components within the set top box, b) a communications component for sending data to a remote computing system, wherein the internal monitoring component is responsive to a detection of a change of state in the one or the hardware\software components to cause the communications component to send a notification of said change in state to the remote computing system. The change of state may be one that is indicative of a fault.
The one or more hardware\software components may include one or more of the following: a) a hard drive, b) a tuner, c) an AV output, d) Conditional Access card, e) a network interface, f) a modem, and g) an externally connected device connected to a Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) of the set top box. The internal monitoring component may be a middleware application component. The status updates may be received from other middleware components. The change in state may be one of ‘booting’ the set top box. The change in state may be one of a timer.
The application also extends to one or more of:

    a) a set top box;
    b) a computing system configured for receiving diagnostic data from a set top box and storing the received diagnostic data in a database substantially as described herein with reference to and/or as illustrated in the accompanying drawings;
    c) a hand held computing device for use in the servicing\installation of set top boxes;
    d) a diagnostic software component for a set top box;
    e) a method of operating a set top box;
    all substantially as described herein with reference to and/or as illustrated in the accompanying drawings





DESCRIPTION OF DRAWINGS
The present application will now be described with reference to an exemplary implementation and the accompanying drawings in which:
FIG. 1 illustrates the components of a system provided by the present application;
FIG. 2 illustrates the interactions between a customer support function and a customer using aspects of the system of FIG. 1;
FIG. 3 illustrates the configuration of a set top box suitable for implementing an aspect of FIG. 1;
FIG. 4 illustrates an arrangement of FIG. 3 adapted for implementing an aspect of FIG. 1;
FIG. 5 (A-C) represents a process flow for a method for use in the system of FIG. 1;
FIG. 6 (A-B) represents a process flow for a further method for use in the system of FIG. 1; and
FIG. 7 illustrates specific components of the system of FIG. 1.



DETAILED DESCRIPTION
As discussed above, set-top box service operators are looking for ways to ensure that these complex devices fail less often. For those subscribers who do experience problems, operators are looking for ways to improve the chances that a remote customer support representative (CSR) may be able to help them and resolve a customer's problem over, for example, the telephone. And in those cases where further field support is required, operators are trying to improve the capabilities of the field engineering team to resolve the issue without switching out the Set Top Box (STB) and replacing it with another unit. Finally for those units which do return to the Operator or their manufacturers for repair, they are looking to improve the screen, clean and repair process to minimise the time spent in repair and improve the reliability of screening decisions made.
The present application is directing at assisting with some or all of these aspects of an operator's STB supply chain operation and will now be explained with reference to the architecture of an STB. One significant factor is that the present application does not require a change to the hardware of most STBs merely an upgrade to its software.
The present application, as illustrated in FIGS. 1 and 2, comprises a software component 4 resident on a set-top box 2 (SEC—Set top box Embedded component). A software component resident on an external device\system, for example which may be a field engineer's hand held device 6 (HSC—Handheld Software Component 8) or the operator's CRM system 12 (CSC—CRM Software Component 10) interacts with the software component on the set top box.
A typical STB architecture, as illustrated in FIG. 3, comprises hardware which is managed by a software stack. This STB software stack (or firmware) is resident on the box.
The STB Software stack consists of an Operating System 30, Drivers 32, Middleware 34, and Application layers 38. Drivers implement and are responsible for low level hardware interfacing 36 for example with the tuner circuitry, demux logic, graphics, hard disk drives, CA (Conditional Access Card), and communications.
Middleware implements complex functionality on top of the driver layer (e.g. display video on channel 111) and abstracts the complexity of different hardware from the applications layer. The user interface (as presented as an OSD on the television) is implemented in the Application layer. This software stack including Middleware and Application is referred to generally as the Main System Image.
The present application arises from the incorporation, for example, of a software feature, suitably in the form of additional software incorporated into the firmware resident on the Set Top Box in the user's home. This piece of software may operate in different modes depending on the functions to be performed, the way it is triggered and the way it is being accessed.
The software may be integrated into the STB, for example, as illustrated in FIG. 4, in which this additional software referred to herein generally as the SEC or STB Embedded Component. As further detailed below, the SEC software has two primary components, SEC Boottime 4b and SEC Runtime 4a, which are suitably middleware components.
When the STB is powered on, the Operating System is started. The Operating System initializes the drivers and is then configured to start the SEC Boot Time Component. The SEC Boot Time component may decide to run low-level hardware diagnostics as described further below. If the SEC Boot Time Component exits, the Operating System will proceed to start the Middleware. The Middleware, though an internal initialization process, initializes all of its components, followed by the Application (user interface).
The SEC Runtime is a middleware component, and so is started with other middleware as part of the normal boot process. It may be regarded as an internal monitoring component.
The middleware contains software components responsible for managing individual hardware components. These middleware components provide a variety of status information about the hardware they manage. This status information identifies whether or not a hardware component has failed.
The Run Time Component of the SEC is configured to perform a plurality of tasks, which may include but is not limited to some or all of the following:

    
    
        Maintain a ‘data model’, which contains the status of Hardware components of interest. This data model is suitably built by querying other middleware components (e.g. Tuner Management) to retrieve hardware status. The run time component registers with the other middleware components to receive notifications of any change in hardware status.
        Use facilities provided by other middleware components to implement diagnostics (e.g. inject simulated remote keypresses, retrieve configuration settings used by the application component).
        Implement communications through a communications module\circuit in the STB with the HSC and CSC. Communications may be initiated in response to a variety of criteria including the presence of hardware errors in the data model, a request by the user of the STB via a handheld remote control or to a request received over a TCP/IP network connection from the HSC.

SEC Runtime Diagnostics and Status:

    
    


The SEC is initialised during the Middleware startup process. When the SEC is initialised, it queries other Middleware components to retrieve the status of hardware components in which it is interested.
During operating of the Set Top Box, hardware failures are identified by other middleware components, which then notify the SEC via a callback mechanism. The SEC is notified of hardware status changes (e.g. a tuner tuning to a new transponder) in the same manner.
SEC Runtime Remote Control:
The SEC is suitably configured to be activatable in the sense that it responds to received commands from the HSC or CSC and to inject remote control keypresses, and retrieve On Screen Display (OSD) snapshots.
SEC Runtime Keypress Injection:
To simulate remote control keypresses, the SEC may call on an API provided by the Middleware component responsible for managing the remote control hardware. This component then passes the keypresses on to other Middleware components and the Application as if they had been received from the normal infra red remote control used by set top box users.
SEC Runtime OSD Snapshot Retrieval:
The Middleware's graphics management component maintains a ‘graphics surface’ (which for ease of understanding may be thought of as a frame buffer containing the pixel data which will be displayed on the OSD) which contains the contents of the OSD and which is combined with or replaces media content being converted into video by the video circuitry of the STB for display on a connected television.
Suitably, the SEC maintains its own graphics surface, with a resolution smaller than or equal to the surface which contains the contents of the OSD.
To retrieve an OSD snapshot, an image capturing block within the SEC copies the contents of the OSD graphics surface to its own graphics surface. The contents may be resized according to parameters provided by the HSC/CSC. The SEC may then compress the contents of the OSD surface using a suitable compression algorithm, e.g. JPEG compression. The resulting compressed image is sent to the requesting CSC/HSC.
SEC Communications:
The SEC has a concept of a communication ‘session’. This session may be initiated in response to a variety of criteria, as previously described. During a communications session, a HSC or CSC may send requests to the SEC to retrieve the data model, or initiate diagnostics.
When communicating with a HSC, the HSC is responsible for establishing the connection to the SEC, for example by connecting to a predefined port number on the STB using TCP/IP. The HSC is configured with the address of the STB by its operator before they attempts to establish the connection. The SEC then communicates with the HSC over this connection, until the HSC closes the connection. When communicating with a CSC, the SEC is responsible for establishing the connection to the CSC, for example by connecting to a predefined port number on the CSC using TCP/IP. The SEC is configured with the address of the CSC before it is installed onto the STB. Once the connection to the CSC is established, the SEC communicates with the CSC over this connection until the CSC closes the connection.
Using this configuration, the Set-top box resident software component (SEC) may be configured to interact with features of the set-top box to perform one or more of the following functions:

    
    
        1. Communicate with the hand-held resident software component over an appropriate communication channel, such as Ethernet, serial port, Bluetooth etc.
        2. Simulate the operation of a human operator of the set-top box by simulating the injection of Infra Red commands into the STB.
        3. Detect if a video and audio services are playing on the STB
        4. Detect the signal strength and quality parameters of the STB front-end if and when tuned
        5. Access low level software in the set-top box in order to access and determine state of hardware devices
        6. Access hardware components in the STB
        7. Access hardware components connected to the STB via external interfaces such as for example but not limited to HDMI, USB, smartcard slot etc.
        8. Retrieve the contents of the On Screen Display (OSD). In cases where a low bandwidth network is deployed and hence live streaming of the OSD to the CSC is not practical this can be achieved by taking one or more snapshots of the OSD and subsequently uploading to the CSC at a rate compatible with the bandwidth of the network connection.
        9. Record content audio\images being provided by a video circuit of the STB
    
    


The hand-held software component (HSC) is software which may be installed on a field engineer's hand held computing device. These are typically general purpose computing devices running a standard computing operating system such as Microsoft CE.
This hand-held computing device will allow different applications to be run, similar to a smartphone or PDA.
The installer uses his hand-held computer to manage his diary, retrieve his list of customer visits for the day and storing information about each customer. The hand-held computing device will provide a graphical user interface to the engineer, and may have integrated into it the typical communication channels expected from such a tool, for example GSM, Bluetooth, Wifi and RS-232 capability.
The HSC is implemented as an application on the hand-held computing device and as such it can control the computing resources of the hand-held device.
The hand-held software when installed on a hand held computing device may allow the hand held device to perform one or more of the following:

    1. Communicate with the set-top box resident software component over an appropriate communication channel such as Ethernet, serial port, Bluetooth etc.
    2. Communicate with the CRM system of the network operator e.g. when connected to the internet.
    3. Display results received from the STB component (SEC)
    4. Send reports back to the central CRM system indicating the installation completion status.
    5. Using an in-built or attached GPS receiver determine the current (or where not available) the most recently measured position from the receiver. This position may be used to infer what signal strength should be seen by the STB at that point in the network. This may be compared with a measured signal strength received from the STB to ensure it is working correctly. The resulting information including the location of the STB may be sent back to the central CRM.


The final component is a network Customer Relationship Management (CRM) component (CSC). This may be operating on the server(s) of the operator, and may for example be used by telephone services representatives in a call centre environment. The CSC may comprise a database for storing customer information, including information on their STB's a user interface, e.g. a suitable client application with a graphical user interface, allowing a user within the operator to access and review data on the database and a network interface allowing a user through the user interface to send instructions to and receive data back from an STB.
The CSC may also receive and send data to the HSC. It may be appreciated that existing HSC and CRM functionality provides for interchange between the HSC and CRM, although to date this has conventionally been for downloading work orders and confirming completion as items on the work order are completed. The communication between the HSC and the CSC may be over a communication channel for example an IP channel, which may for example be provided from the handheld device through a mobile telephone wireless network to the Internet and from there to the server hosting the CRM software of the operator. An advantage of the CSC is that it may help a field engineer\repair technician in their diagnosis of faults from status data provided by the STB either directly or through the handheld device as an intermediary. Thus using status data, the CSC may provide information and knowledge of fault indicators (this can be very simple, e.g. software version X exhibits failure Y, or drive model X is likely to fail after Y operating hours).
Pictorially the interaction between the three components may be represented as in FIG. 1. The advantages and other features of the individual components and the overall system will now become apparent from some exemplary situations in which the above described elements may be employed.
Field Engineers Diagnostics Use Case
A significant proportion of Set top Boxes are found to be fully functional and in no way faulty (commonly called No Fault Found or NFF) when they are returned by field engineers to screening and repair facilities. It may be appreciated that such correctly functioning boxes should in most cases have been identified as fully functioning in the user's home and not removed. Removal of a set top box inconveniences customers, adds to inventory costs during the box's time in transit through the repair cycle, and results in additional capital expenditure for the operator if they are required to provide the subscriber with a replacement receiver.
Using the previously described components a field engineer is able to run detailed diagnostics on the STB using the HSC when they are in the subscriber's home. This allows for a complete assessment of the receiver hardware while it is connected to the network infrastructure at the customer's premises and in the customer's environment.
Once a field engineer arrives at a customer's site, they may typically perform a quick physical inspection to ensure that the STB is powered on, is connected to the network and is connected to the TV. Once the field engineer has completed the physical inspection procedure, he activates the HSC software, for example as shown in the process flow of FIG. 5, within his hand-held device, for example by selecting an option on a menu of the graphical user interface of the hand held device.
The HSC software component using a communications channel common between the STB and the hand held device, attempts to establish communication 50 with the STB. A first step in the process may comprise a selection 52 of the appropriate communications channel. Upon detecting 54 the communication attempt, the Embedded Component (SEC) within the STB recognises the hand held device and a hand shaking protocol 56, 58 may be entered between the embedded component of the STB and the HSC on the hand held device to ensure that the HSC is authorised and the communications channel is secure.
Once a connection has been established between the SEC and the HSC, the HSC may send one or instructions to the SEC. The SEC in turn in response to these instructions may provide the HSC with data. Thus the HSC and SEC may be configured that the field engineer may select 60 an appropriate option on their hand held device which causes the HSC to prepare 62a-g and then send 64 an instruction to the SEC of the STB to run for example a diagnostics routine, a series of diagnostic routines, or an individual test. At any stage, the user may terminate 132 the diagnostics, in which case all existing connections 134, 136 are closed. This may for example be employed where a test failure is identified during the process and the technician wants to investigate this further, e.g. check the cabling etc.
An exemplary series of diagnostic routines may include for example but is not limited to the following tests:

    
    
        Instructing the SEC component to tune to a range of signal bands that may be used in normal operation by the STB to receive TV. In satellite systems, for example, this would include individually tuning to the high and low frequency bands, and horizontal and vertical polarization signals. In cable STBs this may include tuning to signals at low and high ends of the carrier spectrum as well as some representative signals in the middle.
        In the case of IPTV, the diagnostic routine may instruct the STB to perform a series of network tests on the connection to In the case of IPTV, the diagnostic routine may instruct the STB to perform a series of network tests on the connection to test the network connection and provide one or more performance parameters including for example including for example bandwidth, packet loss, latency and jitter.
        It may be appreciated that other tests may be appropriate to determine the state of a connection of an STB depending on the mode of connection used. For example, in the case of a cable connection a signal strength measurement may be performed.
        validating that the SEC component successfully tuned to and locked to each of the tuned signals and validates that the signal parameters are within expected tolerance for signal strength, bit error rate, packet loss etc for each of the individual services, for the customer's geographic location. The customers geographic location may be retrieved by the hand held device from the CRM system of the operator or may be obtained from a location determining device such as a GPS.
        In a satellite installation, a diagnosis may be performed to assist the field engineer identify possible mis-alignment issues related to the satellite dish by interpreting which of the signal carrier types are correctly received.
        instructs the SEC to run a test to verify that any local storage devices, e.g. a hard disk drive, are working correctly. This test may for example comprise a simple write\read test to ensure that data is correctly being written and read from the storage device.
        a similar test may be performed to verify that non-volatile electronic storage is working correctly on the STB by reading, over-writing, reading and confirming change, and resetting and re-reading some area in the NV storage area.
        instructing the SEC to run a test to verify that all LEDs or other displays on the SEC are working correctly by turning on the LEDs\display elements in a particular sequence and requesting the field engineer to confirm their state.
        instructs the SEC to run a test to verify the front panel buttons by instructing the field engineer on the display of the handheld device to press each particular named button in turn and confirming from the SEC that this button press was registered.
    
    


After a test routine has completed, the SEC may proceed with other tests until all required tests have been completed 68. The result of each test is stored. The HSC through the hand-held device may receive 66 a report indicating the outcome of the tests. This may be a simple pass\fail indication displayed 70 on the hand held device. Alternatively, more detailed analysis may be provided indicating the nature of the fail and for example suggesting possible solutions. The HSC of the hand held component may be configured to establish 78 a connection with the CRM system. Once a connection is established, the test results may be uploaded 76 and the connection closed 80. After completion of the tests, the communications channel between the SEC and HSC may be released 72.
This has several advantages over a manually verified installation as it allows for:

    
    
        immediate determination of faults while the field engineer is still on the premises, including subtle faults (incorrect signal level) which indicate a problem which may only manifest itself later.
        detailed error data is captured either on the HHD or STB that may aid with issue resolution and root cause analysis if the STB has to be returned for repair. After the tests have been completed, the HSC may be configured to upload the data received back in the tests to the CSC or other data store. Similarly data could be received from such a store at the HSC or reviewed by a customer service representative when responding to a STB user's fault report. It may be appreciated that a comparison may be performed between the current results and a previous set of results (e.g. at installation) to determine whether performance has changed. Thus for example a change in signal strength might be indicative in a fault of the satellite dish or cabling.

Installer Use Case

    
    


The use of the components may now be explained with reference to a possible use by an installer as shown in FIGS. 6A and 6B and which in the exemplary process shares several steps with FIG. 5 and accordingly employs common reference numerals. In the case of installation, the tests performed are in addition to the normal diagnostic tests that might be employed to test a set top box is not faulty. More specifically in the case of an installation, the tests are to confirm that the installation has been performed correctly and that the customer is receiving all of the services that they have ordered.
Typically an initial install for a new Customer is done by a representative of the network (a field engineer) who may visit the customer's house, complete any necessary cabling, satellite dish etc required for the delivery of television signals to the appropriate location in the customer's house, and install a new set-top box. The field engineer may generally carry a hand-held device which he may use to download his work assignments for the day, and record that he has completed them.
Typically conditional Access (CA) systems are used to control access to the services provided by the network to the Customer. Networks generally segregate their set of services into different packages, which are sold separately. Each package contains several individual services (Video or Audio).
A customer may generally sign up for one or more packages from the set of packages provided by the network.
The field engineer doing the installation should normally ensure, before he leaves the customer's premises, that the customer's newly installed set-top box can correctly decode all the services which the customer has signed up for.
It has been observed in numerous networks that customers frequently report problems with their initial installations. These problems create a negative first impression for the new customer with the network's service, and are generally caused by problems such as:

    
    
        Faulty new wiring installed by the field engineer
        Incorrect CA rights enabled on the customer's STB
        Incomplete or incorrect installation procedure carried out by the field engineer
        Defective STB installed
    
    


The previously described components allow automatic validation of the correct completion of an installation by the installer.
In this configuration, the HSC is adapted to download from the network operator CRM system information with respect to the customer, for example the list of packages that should be installed on their STB following the completion of the work order associated with this particular installation (completion of the install). The HSC may also obtain information on the STB itself including for example what the latest version of software is that should be installed on the particular model of STB.
Once the field engineer has completed the physical installation procedure of the STB, he may activate via his hand-held device the HSC. It will be appreciated that further steps in addition to the actual physical connection of the set top box and associated cabling, may be required during the physical installation, including for example providing customer privileges (CA rights) to the STB. These rights may be provided within a subscriber card which may be inserted into a corresponding reader on the STB, although other methods are employable as well including providing the user's rights as a digital certificate which may be downloaded over the Internet or provided for on an external memory such a USB memory stick.
The HSC component establishes communication 50 with the STB Embedded Component (SEC) as previously described with respect to FIG. 5, and the HSC component prepares 100 one or more of a series of tests 100 which are communicated 102 to the STB to be performed, including for example but not limited to:

    
    
        Obtaining the current software version currently present on the STB device from the SEC, comparing this with the expected latest software revision and if the software is not up to date, cause the triggering of a software upgrade on the STB before proceeding with the rest of the installation checking. This software upgrade may be effected directly by the HSC upon the STB or alternatively by the HSC providing an error message to the field engineer with an instruction to update to the latest firmware. These tests may be performed initially and the response stored and displayed to the user.
        Determine the stare of some basic STB functionality by using the SEC, for example Conditional Access smartcard status and tuner status. This may comprise obtaining 108-114 and translating the set of packages to which the customer should have access to into a list of individual services—i.e. the HSC translates 120 this set of packages into a list of individual services (TV and/or Radio Channels) which should be capable of being decoded once the installation has been properly completed. Using a determination either from the network CRM system or the HHD's internal\external GPS capabilities the geographic location of the installation may be determined. Once the location is determined, the expected tuning characteristics for this geographic location may be retrieved, either from the HSC or CSC, for the list of individual services obtained above. The HSC then instructs 122 the SEC component to tune to each of the individual services in turn and automatically validates that the SEC component successfully tuned to and can decode the Audio (for Radio services) or Audio and Video (for TV services) for each of the individual services. The automatic validation 124-128 may include confirming that the signal parameters were within expected tolerance for signal strength, bit error, packet loss etc for each of the individual services, for the customer's geographic location. It will be appreciated that in order for the HSC to perform the tests it may need first to obtain the customer ID 106.
    
    


After completion of the installation tests, the results are received 104. The HSC releases the communication channel between the SEC and HSC and reports 130 overall pass/fail for the installation to the field engineer via his hand-held device. A report of the status of the installation including details of the test results may then be provided to the network CRM system for storage and future reference in the event of a customer reporting a fault.
The system may also be employed to perform other tests, which may or may not be based on the user's permissions and/or configuration. Other tests may include performing a check to determine if video on demand, recording, playback and similar features are available and working. Similarly, streaming to other devices may be tested.
It will be appreciated that this automatic approach has several advantages over a manually verified installation, including for example:

    
    
        Allows immediate determination of faults while the field engineer is still on the premises, including subtle faults (incorrect signal level) which indicate a problem which may only manifest itself later.
        Allows automatic determination of successful installation
        Allows independent verification that an installation was completed correctly
        Reduces repeat visits by installers to remedy faulty initial installations.
        Allows the network CRM system to track the progress of installations

Subscriber Support Use Case

    
    


The use of the components may now be described with respect to a “Subscriber Support Use Case”.
There is a significant cost to operators and inconvenience to their subscriber customers in the event that a field engineer needs to be dispatched to a subscriber's home or a STB has to be returned by a subscriber through some other channel. It is often discovered that the issue leading to the field-engineer call-out or STB return is a relatively straightforward one which can be solved relatively easily by a suitably trained operative.
The first port of call for many subscribers when they experience problems is to contact the Operators customer support representative (CSR).
The previously described components (excluding the HSC) allows a customer service representative of the operator to run detailed diagnostics on the STB remotely in order to perform a complete assessment of the receiver hardware and where required make modifications to the STB remotely.
There may be issues related to initiating a subscriber support session. The first is that the STB may reside behind a firewall which would preclude it from being contacted directly. The second is an issue of privacy whereby subscribers are encouraged to volunteer remote access and control of their STB by taking some specific action. To address this, the set top box may be configured to respond to a user input for example a particular “magic key” combination on the remote control of their STB. Other user activation mechanisms may also be provided including a physical key on the STB. Once an activation is detected, the SEC within the STB is triggered causing the STB to establish a connection to the SEC Server thereby enabling the CSC backend to communicate with the STB. A CSC interface may be presented to the Customer Support Representative through a user interface which may typically be web based on a fixed PC workstation however may also be implemented on a mobile unit such as a mobile phone.
The primary purpose of each component will now be detailed.
SEC: The STB Embedded Component runs on each Set Top Box. It's role is to detect faults and gather data from the box, and implement diagnostic and repair related functionality. The SEC agent initiates connections with the SEC Server in order to report its status, and to allow the SEC Server to invoke functions implemented by the agent.
SEC Server: The SEC Server is responsible for gathering data from SEC Agents, and using this to maintain the information for each STB which is stored in the Database.
Database: The Database stores fault, status and statistical information for each STB managed by the server.
SEC Application Server: The SEC Application Server implements web applications which make use of the data stored in the Database to feed into the process of a variety of end users (e.g. allowing a customer support agent to view faults on an STB). Web applications may also allow end users to directly interact with individual STB's.
Browsers: Standard web browsers may be used to access web applications on the SEC Application Server. Once the CSC component establishes communication with the STB Embedded Component (SEC) it may retrieve information from the SEC and update a status record (SR) for the status of this STB.
This SR, which may be provided to the CSR through their use interface may include details on, for example:

    
    
        Set top box identification.
        HDMI Television Make and Model for connected, and previously connected Televisions.
        CA Card (presence, serial number etc.)
        Front-ends (signal strength etc.)
        Peripherals
        NVRAM
        System resets
        Hard disk temperature and other SMART data
        Network configuration
        Modem status
        Power state
        Timing of time spent in each power state in a given time period (and since last report)
        Tuner statistics such as historical SNR, BER etc. since last status report
        STB software configuration parameters
        Temperature
        STB software error log
        Network statistics such as connection speed, round-trip-time, dropped packets, ping time etc since last status report
        Current software version information (used to reconcile against known latest version of system software that is “on-air” and should be on the STB).
    
    


The CSC may be configured enable a CSR through their interface to cause instructions to be sent to the STB to cause the SEC to:

    
    
        refresh the SR and provide the updated SR to the CSC
        Obtain a copy of the On-Screen Display and provide this to the CSC to allow the CSR to view the OSD presented at the remote location where the STB is located
        Issue remote control commands to the STB to cause changes in the STB state by sending them over the internet interface and having them processed by the SEC to simulate them having been received from the physical IR remote control unit.
        The CSC browser application may present a number of different methods to the CSR to allow them to send remote control commands. It may present in pictorial form a regular remote control with all of the buttons normally available to a normal user of the remote control. Each button may be selected by the user by ‘clicking’ on the button. It may also present a set of predefined actions which are the most typical operations which need to be performed during a service call. These often involve multiple keypresses on the remote control to get to the appropriate menu option but may be presented to the CSR as a single “shortcut”. The CSC may store a copy of all remote control commands issued and OSD screens captured during the time of any single connection between the CSC and the SEC. The CSR may also be allowed to enter call session textual notes which may be synchronised with the most recent OSD screen retrieved from the STB.
    
    


To optimise the use of bandwidth between the CSC and the SEC, the SEC\CSC may be configured so that a new OSD screen grab image may only be sent from the SEC to the
CSC after the final IR command has been processed on the SEC side. This implies that intermediate OSD states during the processing of a number of keypresses caused by a single shortcut may not be transmitted from the SEC to the CSC.
The CSC may use the network statistics retrieved from the STB to inform the SEC of the appropriate compression level to be used to encode OSD images prior to dispatch to the CSC. This setting can be varied on the fly by the CSR if required to observe certain fine grain detail in the event that the situation justifies a longer duration waiting for the OSD screen image to upload.
In another application, the SEC or indeed another application specific component may be used to provide an indirect measure of power consumption. In this method, the SEC may employ various timers to measure and report on the time that the STB spends in various power states. The timers are configured to measure an aggregate time that the STB is in a state rather than the duration that the STB is currently in the state. The power state may be for the entire STB (e.g. standby or active) and\or also for critical components within the STB such as the hard drive, individual tuners, AV outputs etc. The timing data when reported back to the CSC may be cross referenced against power consumption data taken for the same or a similar reference STB. In this way, time spent in various states may be converted into accurate power usage measurements. This data may be aggregated across all of the boxes in the operators network to arrive at very accurate figures for the overall power consumption of large numbers of Set Top Boxes. It will be appreciated that a significant advantage of this approach over alternative approaches to power measurement is that it does not require dedicated power measurement equipment to be integrated into each STB. It may be retro-fitted as part of a field upgrade to STB in the field today and into the future. It may be easily adapted to interface directly to any sub-system power efficiency technology present in the STB which may allow more discrete control over which components of the STB are powered-up at any point in time. Other advantages are that it does not require the end-user of the STB to do anything unlike most other measurement technologies and it does not add to the hardware bill of materials cost of the STB.
The measurement data may be uploaded periodically by the SEC to the CSC. The periodicity of this reporting may be algorithmically controlled to ensure that all STBs do not report at the same point in time in the event of a power failure which results in a large population of STBs powering up at the same time.
Having a set of all SR records for the entire population of STBs allows network operators to gain significant insight into the performance of their network.
It may be possible using this data to analyse which STBs are likely to display faults to the subscriber and pre-emptively take actions to avoid this including updating the firmware, contacting them via customer support and/or sending out a field engineer.
A typical CSC software architecture may be represented as shown in FIG. 7.
CSC—Communication Component
This is a software application which communicates with both the SEC and CSC UI Components using TCP/IP sockets.
The SEC communication channel is setup following a request from the SEC. Once the communication channel has been setup commands may be sent to the SEC, for example sending a keypress, requesting status or requesting an OSD snapshot.
OSD snapshots files received from the SEC are stored on the file system for later retrieval by the CSC UI Component.
STB status records received from the SEC are stored in the CSC Database Component.
The communication channel to the CSC UI Component is a request-response type interface.
CSC—Database Component
The CSC Database Component is a standard database application used to store STB status and other measurements retrieved from the STB(s) with which the CSC has communicated.
CSC—UI Component
The CSC UI Component is an application that the end-user interacts with allowing them to study the STB data stored the database and to take control of an individual STB by sending key-press commands, requesting STB status updates and presenting OSD snapshots via the CSC Communication Component.
One possible implementation of the CSC UI Component uses a standard web application architecture consisting of a web server application, a set of server-side php scripts and a set of client-side Javascript scripts. The server-side component communicates with the CSC Database and SEC Communication Components and presents data to a client-side web browser via http. The web-browser then uses the client-side scripts to render the UI on the client computer.
In the foregoing specification, the application has been described with reference to specific examples of embodiments. It will, however, be evident that various modifications and changes may be made therein without departing from the broader spirit and scope of the invention as set forth in the appended claims. For example, the connections may be any type of connection suitable to transfer signals from or to the respective nodes, units or devices, for example via intermediate devices. Accordingly, unless implied or stated otherwise the connections may for example be direct connections or indirect connections. Thus as an example, whilst the present application has been described primarily with reference to situations where the diagnostic middleware responds to an external device, it will be appreciated that it may operate independently and respond to changes in state on the set top box, including for example a timer for periodic reporting, and upload the diagnostic results to an external computing system.
Because the apparatus implementing the present invention is, for the most part, composed of electronic components, circuits and devices known to those skilled in the art, circuit details will not be explained in any greater extent than that considered necessary as illustrated above, for the understanding and appreciation of the underlying concepts of the present application and in order not to obfuscate or distract from the teachings of the present application.
Thus, it is to be understood that the architectures depicted herein are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In an abstract, but still definite sense, any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality.
Furthermore, those skilled in the art will recognize that boundaries between the functionality of the above described operations are merely illustrative. The functionality of multiple operations may be combined into a single operation, and/or the functionality of a single operation may be distributed in additional operations. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be altered in various other embodiments.
However, other modifications, variations and alternatives are also possible. The specifications and drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense. For example, whilst the present application has been described with respect to a set top box, it will be appreciated that the functionality may be integrated within another device. Accordingly, the present application extends beyond application to set top boxes and accordingly wherever a reference is made herein to set top box, it should be taken to extend to and include any ‘multimedia device’, which is operable to receive an incoming digital television signal and cause it to be displayed on a display which may be integrated to or connected with the ‘multimedia device’. This connection may be a physical one, for example a SCART, HDMI, S-Video or similar cable connection or a wireless connection such as Bluetooth or Wi-Fi. Accordingly, it will be appreciated that the present application is applicable not just to set top boxes but to other multimedia devices including for example integrated digital televisions, portable computing devices and mobile phones. Similarly, it will be appreciated that whilst the present application has been described with reference to an exemplary situation in which a television is selected as the display device, it will be appreciated that the application is not so limited and alternative displays may be employed. For example, a computer monitor may be employed as a display device. Similarly, the display device may be a computing device with a integrated display. The computing device may be portable for example a laptop or tablet computer. In this arrangement, the set top box may stream the decoded television content to the computing device over a local wireless connection.
It will be appreciated that references herein to an “Installer” and “Field Engineer” are used interchangeably herein and that the usage will depend on the function being carried out by the Field Engineer. Thus when a field engineer is installing a STB, they will be an installer but when they are repairing a STB they are not.
In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word ‘comprising’ does not exclude the presence of other elements or steps then those listed in a claim. Furthermore, the terms “a” or “an,” as used herein, are defined as one or more than one. Also, the use of introductory phrases such as “at least one” and “one or more” in the claims should not be construed to imply that the introduction of another claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an.” The same holds true for the use of definite articles. Unless stated otherwise, terms such as “first” and “second” are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements. The mere fact that certain measures are recited in mutually different claims does not indicate that a combination of these measures cannot be used to advantage.

## Claims

1. A set top box, comprising:
a detector to detect signals from a remote control device;
a diagnostic component, at least partially implemented in hardware, to:
establish communication with a user device via a communication channel,
the communication channel using a different form of communication than the signals detected by the detector;

receive diagnostic test instructions from the user device over the communications channel;
emulate at least one command as if received from the remote control device via the detector based on the diagnostic test instructions to execute a diagnostic test,
the diagnostic test including tuning to a range of signal bands used to receive television programming and horizontal and vertical polarization signals;

generate a result of the diagnostic test based on emulating the command; and transmit the result.

2. The set top box of claim 1, where the diagnostic component, when emulating the command, is to:
inject one or more simulated keypresses on the remote control device, associated with the command, into a remote control interface based on the diagnostic test instructions.

3. The set top box of claim 1, where the communication is a wireless communication.

4. The set top box of claim 1, where the diagnostic test instructions include information indicating simulated keypresses on the remote control device; and
where the diagnostic component, when emulating the command, is to:
emulate the command based on the simulated keypresses.

5. The set top box of claim 1, where the diagnostic component, when transmitting the result, is to:
transmit the result to at least one of the user device or a server device.

6. The set top box of claim 1, where the result includes at least one image captured from media generated based on emulating the command.

7. The set top box of claim 1, where the diagnostic test instructions indicate a test to be performed by the set top box,
where the diagnostic component is further to:
determine whether the test was passed or failed based on emulating the command,
the result indicating whether the test was passed or failed.

8. A device comprising:
a memory;
a computing component, at least partially implemented in hardware and operatively connected to the memory, to:
establish communication with a set top box via a connection,
the connection using a different form of communication than a remote control device uses to send commands to the set top box;

determine diagnostic test instructions to transmit to the set top box,
the diagnostic test instructions causing the set top box to emulate a command as if received from the remote control device to perform a diagnostic test;

transmit the diagnostic test instructions to the set top box via the connection to cause execution of the diagnostic test,
the diagnostic test including tuning to a range of signal bands used to receive television programming and horizontal and vertical polarization signals; and

receive a result of the diagnostic test from the set top box based on transmitting the diagnostic test instructions.

9. The device of claim 8, where the computing component is further to:
format the diagnostic test instructions to simulate keypresses on the remote control device.

10. The device of claim 8, where the device is a handheld user device, and
where the connection is a local wireless connection.

11. The device of claim 8, where the computing component is further to:
determine a software version of software installed on the set top box; and
send an instruction to the set top box that triggers a software upgrade on the set top box based on the software version not being up to date.

12. The device of claim 8, where the computing component is further to:
determine a full test suite, including a plurality of tests, is not complete based on the result;
select a test in the full test suite that has not been completed by the set top box; and
transmit other diagnostic test instructions to the set top box that cause the set top box to execute the test that has not been completed.

13. A method comprising:
establishing, by a set top box, communication with a user device via a communication channel,
the communication channel using a different form of communication than signals from a remote control device detected by a detector included in the set top box;

receiving by the set top box, diagnostic test instructions from the user device over the communications channel;
emulating, by the set top box, at least one command as if received from the remote control device via the detector based on the diagnostic test instructions to execute a diagnostic test,
the diagnostic test including tuning to a range of signal bands used to receive television programming and horizontal and vertical polarization signals;

generating, by the set top box, a result of the diagnostic test based on emulating the command; and
transmitting, by the set top box, the result.

14. The method of claim 13, where the diagnostic test instructions include instructions for a plurality of diagnostic tests, including the diagnostic test, and
where generating the result includes:
determining an outcome for each of the plurality of diagnostic tests based on emulating the command; and
generating the result to indicate the outcome for each of the plurality of diagnostic tests.

15. The method of claim 13, where the diagnostic test includes:
performing network tests on a network connection to provide a performance parameter,
the performance parameter including at least one of bandwidth, packet loss, latency, or jitter.

16. The method of claim 13, where the diagnostic test includes:
validating that the set top box is tuned and locked to each of a plurality of tuned signals and that signal parameters are within a tolerance for at least one of signal strength, bit error rate, or packet loss.

17. The method of claim 13, where the diagnostic test includes:
verifying a non-volatile electronic storage is working properly by at least one of reading information from or writing information to the non-volatile electronic storage of the set top box.

18. The method of claim 13, where the diagnostic test includes:
verifying that a display device of the set top box is operating properly by turning on display elements of the display device in a particular sequence.

19. The method of claim 13, where emulating the command includes:
injecting one or more simulated keypresses on the remote control device, associated with the command, into a remote control interface based on the diagnostic test instructions.

20. The method of claim 13, where the diagnostic test includes:
tuning to signals at a low end and a high end of a carrier spectrum.