Patent Description:
Data streaming devices may operate using power provided by other electronic devices. Because different electronic devices provide different amounts of power, a data streaming device may operate and stream content when connected to some electronic devices, but not others. When a data streaming device requires more power than an electronic device is able to provide, the data streaming device may shut down without providing a user with a warning that the data streaming device requires additional power to operate and stream content.

<CIT> discloses a streaming media device that includes a printed circuit board hosting components configured to access internet data. An audio/visual connector is linked to the printed circuit board, wherein the audio/visual connector is adapted for connection to an audio/visual device, wherein the audio/ visual connector is adapted to operate with a first audio/visual interface having sufficient power to fully operate the printed circuit board and a second audio/visual interface having insufficient power to fully operate the printed circuit board. A power connector is linked to the printed circuit board, wherein the power connector selectively receives power based on the audio/visual connector utilizing one of the first audio/visual interface and the second audio/visual interface. <CIT> discloses systems, methods, and apparatuses for controlling current in an electronic device that involve sensig a first voltage representing a battery voltage.

The first voltage can be compared to a cutoff voltage. A current may be provided to power a display based on the comparison of the first voltage to the cutoff voltage.

According to a first aspect of the present invention there is provided a data streaming device as specified in claim <NUM>. The data streaming device may optionally be as specified in any one of claims <NUM> to <NUM>.

According to a second aspect of the present invention there is provided a computer-implemented method as specified in claim <NUM>. The computer-implemented method may optionally be as specified in any one of claims <NUM> to <NUM>.

According to a third aspect of the present invention there is provided a non-transitory computer-readable medium as specified in claim <NUM>.

Further features and advantages of embodiments, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings. It is noted that the embodiments are not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.

Provided herein are system, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for determining and preventing a brown out condition that may occur when a data streaming device does not receive sufficient power to operate from another electronic device or another power source. Also provided herein are system, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for calibrating components of the data streaming device so that the data streaming device is able to operate using available power.

<FIG> is a block diagram of a system <NUM> where example embodiments may be implemented. System <NUM> streams content, such as multi-media content, over a network. To stream content, system <NUM> includes multiple content sources <NUM> and content display devices <NUM>. Network <NUM> connects content sources <NUM> and content display devices <NUM>.

In an embodiment, content sources <NUM> generate and distribute content. To distribute content, content sources <NUM> are connected to network <NUM> directly or via one or more content servers. Together with content servers, content sources <NUM> store, access, process, and/or distribute content over network <NUM> to content display devices <NUM>.

In an embodiment, content display devices <NUM> receive and display content. To display content, content display devices <NUM> request or are connected to devices that request content from content sources <NUM>. In response, content sources <NUM> provide the requested content to content display devices <NUM>.

In an embodiment, content display devices <NUM> may be portable or non-portable electronic devices, such as, desktops, a laptops, smartphones, tablets, television sets, set-top boxes, or media players to name a few non limiting examples.

In an embodiment, network <NUM> serves as a medium that provides content from content sources <NUM> to content display devices <NUM>. Network <NUM> may be a wired and/or wireless network, including a network having interconnected computer networks, referred collectively as the Internet. In an embodiment, network <NUM> may include private, public, academic, business, and government networks that include access to extensive amounts of information and resources. Network <NUM> may also include cellular and/or other wired or wireless communication mediums. In an embodiment, network <NUM> may be a combination of local area networks (LANs) and wide area networks (WANs).

In an embodiment, different types of content may be transmitted over network <NUM>. Content may be static content or streaming content. Static content may be transmitted at once to content display device <NUM> and viewed on content display device <NUM>. Streaming content may be viewed using content display device <NUM> at the same time as another portion of streaming content is transmitted over the network <NUM>. In an embodiment, the streaming content may also be stored on content display device <NUM> or another device and viewed at a later time.

In an embodiment, content may include media content, video content, audio/visual content, textual documents, images, games, music, software, real-time games, and other forms of media that may be transmitted over network <NUM>.

In an embodiment, system <NUM> also includes a data streaming device <NUM>. Example data streaming device <NUM> may be a streaming stick or a streaming player. Data streaming device <NUM> connects to network <NUM> and provides content to content display device <NUM>, such as a television, that does not have access to network <NUM> and can display content display content using television compatible formats (as described below). In an embodiment, data streaming device <NUM> may be part of or integrated with content display device <NUM>.

In an embodiment, data streaming device <NUM> may be a portable device that may be transported to different locations and be connected to different content display device <NUM> at different locations. Once connected to content display device <NUM> and network <NUM>, data streaming device <NUM> is able to receive and display content over network <NUM> and provide content for display on content display device <NUM>.

To display content, data streaming device <NUM> may be a Wi-Fi enabled device. A person skilled in the art will appreciate that Wi-Fi is a local, wireless connection to network <NUM>. Data streaming device <NUM> may connect to network <NUM> using Wi-Fi and receive content over network <NUM>.

Data streaming device <NUM> provides content to content display device <NUM>. In an embodiment, prior to providing content to content display device <NUM>, data streaming device <NUM> processes content and converts content into a format viewable on content display device <NUM>. For example, data streaming device <NUM> may receive content over network <NUM> in compressed, non-viewable format. Data streaming device <NUM> may convert the received content into video and audio data format that can be presented on content display device <NUM>.

In an embodiment, data streaming device <NUM> may connect to content display device <NUM> using a high definition multimedia interface (HDMI). The HDMI may include an HDMI cable and/or HDMI port that connect data streaming device <NUM> to content display device <NUM>. The HDMI allows data streaming device <NUM> to provide content to content display device <NUM> in a viewable HDMI format, such as uncompressed video/audio formal. For example, data streaming device <NUM> may receive content in compressed format over network <NUM>. Data streaming device <NUM> may convert content into the viewable form, such as uncompressed video data, and compressed or uncompressed digital audio data that is compliant with HDMI. Data streaming device <NUM> may transmit the HDMI compliant content to content display device <NUM> over the HDMI cable/port. A person skilled in the art will appreciate that the above example utilizing HDMI is exemplary and that other cables and interfaces that transmit content between data streaming device <NUM> and content display device <NUM> may also be used.

In embodiments, data streaming device <NUM> requires power to operate. To obtain power, data streaming device <NUM> may be connected to a power source <NUM>. Power source <NUM> provides power to data streaming device <NUM> and enables data streaming device <NUM> to receive content over network <NUM> and provide content to content display device <NUM>. Example power source <NUM> may be a battery or an electrical outlet.

In embodiments, data streaming device <NUM> also receives power from content display device <NUM>. In an embodiment, to obtain power from content display device <NUM>, data streaming device <NUM> may connect to a universal serial bus (USB) port of content display device <NUM> and receive power over the USB connection. A USB cable may be plugged into a USB port of content display device <NUM> and into a receiving port or end of data streaming device <NUM>. Also, data streaming device <NUM> may be connected directly into the USB port of content display device <NUM>. In this embodiment, content display device <NUM> may be connected to power source <NUM> and may receive power from power source <NUM> for both content display device <NUM> and data streaming device <NUM>.

In an embodiment, content display device <NUM> may be a primary source of power for data streaming device <NUM>, while power source <NUM> may be a secondary source of power. As such, power source <NUM> may provide power to data streaming device <NUM> when content display device <NUM> is unable to provide sufficient power for data streaming device <NUM> to operate and stream content. When content display device <NUM> is unable to provide sufficient power, a user may connect the power connector of data streaming device <NUM> to power source <NUM>.

In an embodiment, data streaming device <NUM> may be wirelessly coupled to a remote control <NUM>. Remote control <NUM> may provide instructions to data streaming device <NUM>. Example instructions may turn data streaming device <NUM> on, indicate content or channel selection to data streaming device <NUM>, indicate volume selection, etc. In an embodiment, remote control <NUM> may communicate with data streaming device <NUM> using network <NUM> (not shown) or another communication method, such as, a radio frequency interface, cellular, Bluetooth, etc..

In an embodiment, remote control <NUM> may have a display screen. The display screen may display messages generated by data streaming device <NUM>, configure settings on data streaming device <NUM>, select channels and/or volume, etc..

In an embodiment, content display devices <NUM> may distribute a limited amount of power to data streaming device <NUM>. In this case, data streaming device <NUM> may also be connected to power source <NUM>. In some instances, content display device <NUM> may initially have sufficient power to fully operate and distribute to data streaming device <NUM>, but then run out of sufficient power as data streaming device <NUM> and content display device <NUM> begin to operate to stream and display content. In this case, data streaming device <NUM> may be required to reduce functionality or terminate one or more of its components to conserve power until data streaming device <NUM> is connected to power source <NUM>. In another embodiment, data streaming device <NUM> may display a message or an indication to the user to connect data streaming device <NUM> to power source <NUM>. <FIG> provide different embodiments that enable data streaming device <NUM> to function using limited power distributed by content display device <NUM>.

<FIG> is a block diagram <NUM> of a data streaming device, according to an embodiment. Data streaming device <NUM> in block diagram <NUM> streams content received over network <NUM> to content display device <NUM>.

In an embodiment, data streaming device <NUM> includes a power receiver <NUM> or another interface. In an embodiment, power interface <NUM> can be a USB interface that receives power <NUM> from content display device <NUM>. Power <NUM> may be power or a component of power used to calculate power (such as current or voltage), collectively referred to as power <NUM>, that content display device <NUM> or another device provides to data streaming device <NUM>.

In an embodiment, data streaming device <NUM> includes a measuring module <NUM>. Measuring module <NUM> measures power <NUM> or component of power received from content display device <NUM>. For example, content display device <NUM> may provide current (a component of power <NUM>) to data streaming device <NUM>. Measuring module <NUM> measures the received current and determines whether the amount of current is sufficient for data streaming device <NUM> to operate and stream content. One way to determine whether content display device <NUM> provides a sufficient amount of current is to predefine or preconfigure a current threshold in measuring module <NUM>, where the current threshold is the minimum amount of current that data streaming device <NUM> requires to stream content using a pre-set frame rate, resolution, processor clock rate, etc. Measuring module <NUM> may compare the current provided by content display device <NUM> to the current threshold. When the current provided by content display device <NUM> is below the current threshold, data streaming device <NUM> may be unable to stream content to content display device <NUM> (or suffer other limitations, such as having to discontinue certain functions) and require additional power from power source <NUM>.

One embodiment of measuring module <NUM> may be a power grid regulator. A power grid regulator is a hardware component that has input voltage and output voltage, where the input voltage is greater than the output voltage. Both input voltage and output voltage or the ranges for the input voltage and the output voltage may be preconfigured in the power grid regulator. The power grid regulator generates output voltage from the input voltage using a current load provided by content display device <NUM>. In this embodiment, when the power grid regulator receives a current load that results in the input voltage being too low to generate a preconfigured output voltage, power grid regulator determines that there is insufficient power to operate data streaming device <NUM> and stream content to content display device <NUM>.

In embodiments, data streaming device <NUM> also includes a controller <NUM>. Controller <NUM> controls one or more components of data streaming device <NUM>. Controller <NUM> may be the same or different hardware component as a processor that executes on data streaming device <NUM> and processes content (not shown). A processor is described in detail in <FIG>. Controller <NUM> generates instructions to hardware and software components <NUM> of data streaming device <NUM>. Example instructions cause components <NUM> of data streaming device <NUM> to connect to network <NUM>, control Wi-Fi, set bandwidth of the connection, convert content stream received from content source <NUM> into format compliant with content display device <NUM>, determine resolution and/or frame rate of content stream, control processor clock rate, etc..

In an embodiment, controller <NUM> also generates instructions that may decrease the amount of power required for data streaming device <NUM> to function. For example, controller <NUM> may issue instructions that disable connectivity to network <NUM>, such as Wi-Fi, and thus reduce power consumption. In another example, controller <NUM> may generate instructions that reduce frame rate or resolution of the media component of content stream, and also reduce power consumption. In yet another example, controller <NUM> may issue instructions that reduce central processing unit (CPU) or graphics processing unit (GPU) clock speed and thus reduce power consumption of data streaming device <NUM>. A person skilled in the art will appreciate that the above examples are nonlimiting, and that controller <NUM> may also issue instructions to other components <NUM> in data streaming device <NUM> and reduce power consumption.

In an embodiment, controller <NUM> may issue instructions that warn user that data streaming device <NUM> requires more power than power <NUM> provided by content display device <NUM>. For example, data streaming device <NUM> may include an LED light <NUM> or another light. LED light <NUM> comprises one or more LEDs. Controller <NUM> may issue instructions that activate LED light <NUM>. LED light <NUM> may act as a warning to a user that data streaming device <NUM> does not receive enough power <NUM> from content display device <NUM>, and that a user should connect data streaming device <NUM> to power source <NUM>. In yet a different embodiment, LED light <NUM> may be lit in different colors. Each color may indicate the amount of available power on data streaming device <NUM>. For example, a red light may indicate that controller <NUM> is about to shut down or disable Wi-Fi on data streaming device <NUM> and must be connected to power source <NUM>. An orange light may indicate that data streaming device <NUM> has just enough available power to operate and should be connected to power source <NUM> eminently. And a green LED light <NUM> may indicate that data streaming device <NUM> has sufficient amounts of power to operate and stream content.

In a further embodiment, controller <NUM> may issue instructions that enable network connectivity with network <NUM>, increase frame rate, increase resolution, and clock speed of CPU or GPU when data streaming device <NUM> is connected to power source <NUM>.

In another embodiment, controller <NUM> may issue instructions to remote control <NUM>. The instructions may cause remote control <NUM> to display a message to a user indicating to operate and should be connected to power source <NUM>. The instructions may also cause remote control <NUM> to activate an LED light on remote control <NUM> as an indication that data streaming device <NUM> requires more power.

In a further embodiment, data streaming device <NUM> may include a memory <NUM>. Memory <NUM> may be one of memories described in <FIG> or NAND flash memory. In an embodiment, memory <NUM> may store the amount of power <NUM> that data streaming device <NUM> receives from content display device <NUM>. Controller <NUM> may then read memory <NUM> for the value of power <NUM> and determine whether the value is above or below the threshold power required to operate data streaming device <NUM>. If the amount of power <NUM> is insufficient, data streaming device <NUM> may activate LED light <NUM> or display a message on remote control <NUM>.

In another embodiment, data streaming device <NUM> may read or access data from content display device <NUM> that indicates the amount of power <NUM> that content display device <NUM> is able to provide to data streaming device <NUM>. Example data may be stored in a data structure of content display device <NUM>, such as an extended display identification data (EDID) data structure. The EDID may indicate the amount of power <NUM> available from content display device <NUM>. Data streaming device <NUM> may read the data indicating the amount of power from EDID and store the data in memory <NUM>. Further, when data streaming device <NUM> is connected to different content display devices <NUM>, memory <NUM> may be supplemented with different readings of power from different content display devices <NUM>. In this case, when data streaming device <NUM> is connected to content display device <NUM> or a model of content display device <NUM> that data streaming device <NUM> was previously connected to, controller <NUM> may determine the amount of power <NUM> from content display device <NUM> that content display device <NUM> is able to provide by reading the data in memory <NUM>.

Controller <NUM> runs a boot test on data streaming device <NUM>. The boot test is a stress test designed to determine the amount of power required for data streaming device <NUM> to function and determine whether the amount of power <NUM> is sufficient to operate data streaming device <NUM>. The boot test may require controller <NUM> to activate components <NUM> of data streaming device <NUM> in sequence or in parallel, and/or maximize processing throughput of components <NUM>. For example, controller <NUM> may issue instructions that enable maximum bandwidth connectivity with network <NUM>, maximum resolution and/or frame rate for streaming content, and maximum CPU and/or GPU clock speed. As more and more components <NUM> are activated, components <NUM> draw more and more power <NUM> from content display device <NUM> in order to operate and process content. In an embodiment, controller <NUM> may incrementally store the amount of power <NUM> drawn by the activated components <NUM> in memory <NUM>. In this way, if content display device <NUM> or data streaming device <NUM> shuts down during the boot test (due, for example, to insufficient power <NUM>), data streaming device <NUM> does not need to restart the boot test upon power-up, but can restart the boot test using components <NUM> that alone or in combination consume the greatest amount of power stored in memory <NUM> prior to shut down.

<FIG> is a block diagram <NUM> of a data streaming device that prevents a brown out condition, according to an embodiment. A brown out condition is a shut-down of data streaming device <NUM> or a reduction of processing or functionality on data streaming device due to insufficient power. For example, data streaming device <NUM> may be shut-down without providing a warning to a user that data streaming device <NUM> is receiving insufficient power.

Data streaming device <NUM> in block diagram <NUM> may include some or all components of data streaming device in <FIG>. Data streaming device <NUM> in block diagram <NUM> includes one or more power supplies, such as power supplies 302A, 302B, and 302C, collectively referred to as power supplies 302A-C. Power supplies 302A-C receive power <NUM> from content display device <NUM> (see <FIG>) and provide some or all power to one or more components <NUM> of data streaming device <NUM>.

In an embodiment, power supplies 302A-C may have different priorities. The priorities indicate whether data streaming device <NUM> may function with or without the respective power supply 302A-C and the order for controller <NUM> to shut down the respective power supply 302A-C. For example, if power supply 302A has a high priority and data streaming device <NUM> does not receive enough power <NUM> to power supply 302A, then data streaming device <NUM> shuts down. In another example, if power supplies 302C and 302B have a low priority and data streaming device <NUM> does not receive enough power <NUM>, data streaming device <NUM> may disable one or both of power supplies 302B and 302C and continue to operate using limited power. Additionally, while operating using limited power, data streaming device <NUM> may generate a warning indicating that data streaming device <NUM> requires more power.

In an embodiment, each power supply 302A-C may have a power grid pin, such as respective power grid pins 304A-C. For example, power supply 302A may have power grid pin 304A, power supply 302B may have power grid pin 304B, and power supply 302C has power grid pin 304C. Power grid pins 304A-C measure power received by power supplies 302A-C and indicate to measuring module <NUM> whether respective power supplies 302A-C receives enough power to operate on data streaming device <NUM>.

When one of power grid pins 304A-C indicates to measuring module <NUM> that respective power supply 302A-C do not have enough power to operate, measuring module <NUM> causes controller <NUM> to issue instructions. The instructions may either shut down data streaming device <NUM> or disable one or more components <NUM> of data streaming device <NUM>. In an embodiment, controller <NUM> determines the type of instructions to issue based on priority of power supplies 302A-C. Priority of power supply 302A-C may be stored in memory <NUM> of data streaming device <NUM> as priority 308A-C. Priority 308A may be priority of power supply 302A, priority 308B may be priority of power supply 302B, and priority 308C may be priority of power supply 302C.

As discussed above, controller <NUM> may receive an indication that one or more power supply 302A-C are not receiving enough power because available power <NUM> from content display device <NUM> is limited on data streaming device <NUM>. Based on the indication, controller <NUM> accesses priority 308A-C of a corresponding power supply 302A-C and determines whether to shut down data streaming device <NUM> or components <NUM> of data streaming device <NUM> based on the priorities 308A-C. For example, when controller <NUM> receives an indication that power supply 302A does not receive enough power, controller <NUM> access priority 308A in memory <NUM>. In the above example, based on priority 308A, controller <NUM> determines that power supply 302A is a core power supply without which data streaming device <NUM> cannot operate, and shuts down data streaming device <NUM>. In another example, when controller <NUM> receives an indication that power supply 302C does not receive enough power, controller <NUM> access priority 308C in memory <NUM>. Based on priority 308C, controller <NUM> determines that power supply 302C is a secondary power supply in data streaming device <NUM> and disables or reduces activity of one or more components <NUM> of data streaming device <NUM>. For example, controller <NUM> may reduce or disable network connectivity components, reduces CPU clock rate, reduce or disable content processing components which control resolution and/or frame rate of content, etc. Because controller <NUM> disables or reduces functionality of components <NUM>, data streaming device <NUM> is able to operate using less power that is provided as power <NUM>. In an embodiment, data streaming device <NUM> may operate on less power until data streaming device <NUM> is connected to power source <NUM>.

<FIG> is a flowchart of a method <NUM> that reduces power consumption on a data streaming device and prevents a brown out condition, according to an embodiment. Method <NUM> may be implemented using processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof.

At operation <NUM>, power is received at a data streaming device. For example, data streaming device <NUM> receives power <NUM> from content display device <NUM>. Power <NUM> is distributed to power supplies 302A-C. Power grid pins 304A-C detect the power supplied to power supplies 302A-C. Measuring module <NUM> then determines whether the power detected by power grid pins 304A-C is sufficient to operate components <NUM> connected to power supplies 302A-C. In another embodiment, power grid regulator may determine whether each power supply 302A-C can provide a predetermined amount of output voltage based on some or all of power <NUM>. If sufficient amount of power is supplied to power supplies 302A-C, method <NUM> ends. Otherwise, method <NUM> proceeds to operation <NUM>.

At operation <NUM>, a priority of one or more power supplies is determined. For example, controller <NUM> determines priority 308A-C for respective power supplies 302A-C. If the priority for a given power supplies 302A-C is high, method <NUM> proceeds to operation <NUM>, otherwise to operation <NUM>. The high and low priorities described here are exemplary and there may be additional actions taken based on other priorities that are not shown in method <NUM>.

At operation <NUM>, data streaming device is shut down. For example, a high priority, such as priority 308A, may indicate that data streaming device <NUM> cannot operate without power supply 302A, which is a core power supply. As a result, because power <NUM> does not provide a sufficient amount of power to power supply 302A, controller <NUM> shuts down data streaming device <NUM>.

At operation <NUM>, one or more components <NUM> of data streaming device are disabled. For example, a low priority, such as priority 308C, may indicate that data streaming device <NUM> can operate without power supply 302C. In this case, controller <NUM> disables power supply 302C which either disables or reduces functionality of one or more components <NUM> until data streaming device <NUM> is connected to power source <NUM>.

At operation <NUM>, data streaming device generates a message. For example, controller <NUM> generates an indication to remote control <NUM> that instructs the user to connect data streaming device <NUM> to another power source, such as power source <NUM>. In another example, controller <NUM> activates LED light <NUM> that indicates to a user to connect data streaming device <NUM> to power source <NUM>.

<FIG> is a block diagram <NUM> of a data streaming device <NUM> that detects whether the data streaming device <NUM> receives sufficient amount of power to operate, according to an embodiment. Data streaming device <NUM> in block diagram <NUM> may include some or all components of the data streaming device shown in <FIG> and <FIG>. As discussed above, data streaming device <NUM> requires a predefined amount of power to operate. And, as discussed above, content display device <NUM> may or may not provide sufficient power to operate data streaming device <NUM>.

In an embodiment, content display device <NUM> provides current <NUM> to data streaming device <NUM>. Data streaming device <NUM> uses current <NUM> to generate power using power supplies <NUM>.

In an embodiment, data streaming device <NUM> includes current limit device <NUM>. Current limit device <NUM> measures current <NUM> when current <NUM> enters data streaming device <NUM>. In an embodiment, current limit device <NUM> may be a type or a component of measuring module <NUM>.

In an embodiment, current limit device <NUM> may measure current <NUM> to determine the amount of power that is being provided by content display device <NUM>. In a further embodiment, current limit device <NUM> may measure current <NUM> before current <NUM> is distributed to power supplies <NUM>. In a further embodiment, current limit device <NUM> may be coupled to a capacitor (not shown) such that the capacitor stores charge corresponding to current <NUM> before dissipating current <NUM> to power supplies <NUM>.

In an embodiment, current limit device <NUM> may include a current indicator pin <NUM>. Current indicator pin <NUM> measures the amperage of current <NUM>. When current limit device <NUM> determines that content display device <NUM> provides current <NUM> that is sufficient to generate power greater than the amount of power required to fully operate data streaming device <NUM>, data streaming device <NUM> begins to operate. The determination may be based on a preconfigured current threshold that is a minimum amount of current that data streaming device <NUM> requires to operate. When current limit device <NUM> determines that content display device <NUM> does not provide sufficient current to power data streaming device <NUM>, controller <NUM> may generate a message to remote control <NUM>. Controller <NUM> may also generate a message when current limit device <NUM> determines that there is just enough current <NUM> to power data streaming device <NUM> because current <NUM> may become insufficient when data streaming device <NUM> begins to process content. Current limit device <NUM> may determine that there is just enough current <NUM> when current <NUM> is approximately at the preconfigured current threshold.

In an embodiment, the message may indicate that content display device <NUM> does not provide enough current <NUM>, or provides just enough current <NUM> for data streaming device <NUM> to operate, and that to ensure further and continuous operation data streaming device <NUM> should be connected to power source <NUM>. In a different embodiment, controller <NUM> may also cause data streaming device <NUM> to light the LED light <NUM> that indicates to a user to connect data streaming device <NUM> to power source <NUM>.

In this way, current limit device <NUM> provides a warning to a user to connect data streaming device <NUM> to power source <NUM> before a brown out condition described in <FIG> occurs and data streaming device <NUM> disables one or more components <NUM>. In another embodiment, controller <NUM> may also reduce functionality of components <NUM> that cause a reduction in resolution, slow down the frame rate of the streaming content, turn down Wi-Fi capability, etc., so that data streaming device <NUM> continues to function.

<FIG> is a flowchart of a method <NUM> that determines whether a data streaming device receives sufficient amount of power to operate, according to an embodiment. Method <NUM> may be implemented using processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof.

At operation <NUM>, the current provided to data streaming device is measured. For example, current limit device <NUM> detects current <NUM> provided by content display device <NUM> via USB port. Once detected, current indicator pin <NUM> indicates the amount of current <NUM> provided by content display device <NUM>.

At operation <NUM>, a determination is made whether the provided current is sufficient to generate sufficient power for data streaming device. For example, the amount of current required to operate data streaming device <NUM> may be preconfigured. If current limit device <NUM> determines that current <NUM> exceeds the preconfigured current, the flowchart proceeds to operation <NUM>. Otherwise, if current limit device <NUM> determines that current <NUM> is less than the preconfigured current, the flowchart proceeds to operation <NUM>.

At operation <NUM>, content is processed. For example, data streaming device <NUM> processes streaming content received from network <NUM> and provides the streaming content to content display device <NUM>.

At operation <NUM>, an indication is displayed. For example, data streaming device <NUM> may indicate via LED light <NUM> or a message displayed on remote control <NUM> that data streaming device <NUM> may have insufficient power and should be connected to power source <NUM>.

At operation <NUM>, data streaming device reduces power consumption. For example, data streaming device <NUM> may slow down content resolution, decrease frame count etc., until data streaming device <NUM> is connected with power source <NUM>. In an embodiment, such a reduction of power may allow data streaming device <NUM> to operate and stream content in a less than optimal mode until data streaming device <NUM> is connected to power source <NUM>. In an embodiment, operation <NUM> may occur before or in parallel with operation <NUM>.

<FIG> is a block diagram <NUM> of a data streaming device that calibrates components to stream content using available power, according to an embodiment. Data streaming device <NUM> in block diagram <NUM> may include some or all components of data streaming device in <FIG>, <FIG>, and <FIG>. Data streaming device <NUM> in block diagram <NUM> includes a measuring module <NUM>. Measuring module <NUM> measures power <NUM> that content display device <NUM> provides to data streaming device <NUM>. In an embodiment, measuring module <NUM> may be a current limit device, such as current limit device <NUM> discussed in <FIG>.

In an embodiment, data streaming device <NUM> includes a calibration module <NUM>. Calibration module <NUM> may operate in conjunction with controller <NUM> (discussed in <FIG>) and calibrate components <NUM> of data streaming device <NUM> so that components <NUM> operate using available power <NUM>.

In an embodiment, calibration module <NUM> may reduce functionality of components <NUM> in order for components to operate using available power <NUM> and for data streaming device <NUM> to continue to operate and stream content. For example, calibration module <NUM> may cause a network connectivity component to decrease the bandwidth or network speed with network <NUM>. This would cause a slower delivery of content to data streaming device <NUM> from network <NUM>, but will also allow data streaming device <NUM> to operate using less power. In another example, calibration module <NUM> may cause a component associated with content processing to decrease resolution of the content, and process content having less pixels as a result. Although this would decrease resolution of the content, data streaming device <NUM> would be able to operate using less power. In another example, calibration module <NUM> may cause component associated with content processing to decrease the frame rate. The decrease frame rate would slow down the transfer of content to content display device <NUM>. But a decrease in frame rate would also allow data streaming device to operate using available power <NUM>.

In an embodiment, calibration module <NUM> may decrease processing of a single component or multiple components <NUM> so that data streaming device <NUM> is able to operate using power <NUM>. Additionally, calibration module <NUM> may also decrease processing of other components not mentioned above to reduce power consumption of data streaming device <NUM>.

In an embodiment, one or more components <NUM> may be calibrated to different levels, where each level operates using a preconfigured amount of power. Component <NUM> may use more power operating at one level than at another level. The identifier for component <NUM>, the level of operation, and the preconfigured amount of power associated with each level may be stored in memory <NUM>. Example levels may be various frame rates, various content resolutions, and various CPU and/or GPU clock speeds. Calibration module <NUM> may access the level and the associated preconfigured amount of power for each component <NUM> and calibrate each component <NUM> so that components <NUM> are able to operate using power <NUM>.

In an embodiment, calibration module <NUM> may calibrate components <NUM> when data streaming device <NUM> is connected to content display device <NUM> using USB port and content display device <NUM> begins to supply power <NUM> to data streaming device <NUM>. In this way, calibration module <NUM> calibrates components of data streaming device <NUM> before data streaming device <NUM> begins to stream content. Additionally, controller <NUM> may also generate instructions using LED light <NUM> or a message to remote control <NUM> to connect data streaming device <NUM> to power source <NUM>.

In a further embodiment, calibration module <NUM> may increase network bandwidth, and resolution and/or frame rate of content when data streaming device <NUM> is connected to power source <NUM>.

In an embodiment, calibration module <NUM> allows data streaming device <NUM> to be calibrated in order to provide content to different content display devices <NUM>. For example, content display device <NUM> manufactured by different manufactures may provide different amounts of power <NUM> to data streaming device <NUM>. Calibration module <NUM> can adjust components <NUM> of data streaming device <NUM> to operate using different amounts of power <NUM> as provided by different content display devices <NUM>.

<FIG> is a flowchart of a method <NUM> that calibrates components of data streaming device to operate using available power, according to an embodiment. Method <NUM> may be implemented using processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof.

At operation <NUM>, available power is determined. For example, measuring module <NUM> determines power <NUM> that data streaming device <NUM> receives from content display device <NUM> via, for example, a USB cable.

At operation <NUM>, a component of data streaming device is calibrated. For example, calibration module <NUM> calibrates one or more components <NUM> so that components <NUM> are able to operate using available power <NUM>. Example calibration may include decreasing network bandwidth or speed, decreasing content resolution or decreasing frame rate.

At operation <NUM>, a data streaming device is operated. Once one or more components <NUM> are calibrated, data streaming device <NUM> operates using calibrated components <NUM> and power <NUM>.

Embodiments shown in <FIG>, including content sources <NUM>, content display devices <NUM>, data streaming devices <NUM> and components or subcomponents thereof, can be implemented, for example, using one or more well-known computer systems or one or more components included in computer system <NUM> shown in <FIG>. Computer system <NUM> can be any well-known computer capable of performing the functions described herein.

One or more processors <NUM> may each be a graphics processing unit (GPU). In an embodiment, a GPU is a processor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU may have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, videos, etc..

Computer system <NUM> also includes a main or primary memory <NUM>, such as random access memory (RAM). Main memory <NUM> may include one or more levels of cache. Main memory <NUM> has stored therein control logic (i.e., computer software) and/or data.

Removable storage unit <NUM> may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/or any other computer data storage device.

According to an exemplary embodiment, secondary memory <NUM> may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system <NUM>. Such means, instrumentalities or other approaches may include, for example, a removable storage unit <NUM> and an interface <NUM>. Examples of the removable storage unit <NUM> and the interface <NUM> may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

In an embodiment, a tangible apparatus or article of manufacture comprising a tangible computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system <NUM>, main memory <NUM>, secondary memory <NUM>, and removable storage units <NUM> and <NUM>, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system <NUM>), causes such data processing devices to operate as described herein.

Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use embodiments of the invention using data processing devices, computer systems and/or computer architectures other than that shown in <FIG>. In particular, embodiments may operate with software, hardware, and/or operating system implementations other than those described herein.

While the invention has been described herein with reference to exemplary embodiments for exemplary fields and applications, it should be understood that the invention is not limited thereto. Other embodiments and modifications thereto are possible, within the scope of the following claims. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.

Also, alternative embodiments may perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.

References herein to "one embodiment," "an embodiment," "an example embodiment," or similar phrases, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic.

Claim 1:
A data streaming device (<NUM>), comprising:
a port to be operatively coupled to a content display device (<NUM>) and configured to receive power from the content display device;
a first component configured to provide a first functionality to the data streaming device, wherein the first component is configured to consume a first amount of power from the content display device;
a second component configured to provide a second functionality to the data streaming device, wherein the second component is configured to consume a second amount of power from the content display device; and
a controller (<NUM>) operatively coupled to the first component and the second component, wherein the controller is configured to:
determine the first amount of power and the second amount of power consumed by the first component and the second component, respectively, based on a boot test using the first component and the second component,
store the first amount of power and the second amount of power consumed by the first component and the second component, respectively, in a memory (<NUM>), and
determine an amount of power received from the content display device is not sufficient to operate the data streaming device based on the first amount of power and the second amount of power.