Difference between revisions of "Jetson/Jetson TK1 Power"

From eLinux.org
Jump to: navigation, search
(Controlling the performance and power draw: Moved & linked the root privileges info to the performance page)
(Reducing the performance settings: Rephrased the CPU perf options)
Line 47: Line 47:
  
 
=== Reducing the performance settings ===
 
=== Reducing the performance settings ===
The power draw of the [[Jetson TK1]] board and the Tegra K1 SOC processor are very tightly related to the performance of the Tegra processor, so if you want to reduce power of your board then read the [[Jetson/Performance|Performance]] page for info on how to tweak the performance settings to get your ideal combination of performance & power draw. For example, you might want to force all CPU cores to a low-speed to reduce the power, or turn off some of the CPU cores for even better power reduction, or turn off the main "GP" general-purpose CPU multi-core cluster and force all CPU code to run on the low-power "shadow" CPU companion core instead, for maximum power reduction.
+
The power draw of the [[Jetson TK1]] board and the Tegra K1 SOC processor are very tightly related to the performance of the Tegra processor, so if you want to reduce power of your board then read the [[Jetson/Performance|Performance]] page for info on how to tweak the performance settings to get your ideal combination of performance & power draw.
 +
 
 +
As a general guide, the different options for CPU perf/power are listed here, sorted from highest power draw to lowest power draw:
 +
* Force all 4 CPU cores to max performance by disabling the hot-plug scaling mechanism.
 +
* Just use everything with default settings (it will automatically switch on/off each of the 4 main CPU cores & the 5th low-power companion core, at runtime).
 +
* Limit the clock-rate of the 4 main CPU cores to a low speed to reduce the power (it will still automatically switch to the 5th low-power companion core when suitable).
 +
* Turn off all 4 main CPU cores to force all CPU code to run on the 5th "LP" low-power shadow companion core instead, for maximum power reduction.
 +
 
 +
(These are all described in the [[Jetson/Performance|Performance]] page).
  
 
=== Turning off the HDMI port if a display isn't required ===
 
=== Turning off the HDMI port if a display isn't required ===

Revision as of 09:41, 8 August 2014

Typical power draw of Jetson TK1

The Tegra K1 SOC in Jetson TK1 is aimed at tablets and thus typically uses between 0.6W to 3W of power during normal use and rarely uses more than 4W, but is able to reach 15W if you manage to push the CPU, GPU, camera ISP's and codec hardware to their limits. Meanwhile, the rest of the Jetson TK1 board uses between 1.5W to 45W depending on what you plug into it (through USB, mini-PCIe, SATA, SD-card, HDMI, audio, GPIO, expansion port, etc). The absolute max power draw of Jetson TK1 if you push everything to the limit and use every port including SATA and PCIe is 58W (4.8A @ 12V). So a 10W to 15W power supply is enough for powering Jetson TK1 in most cases, but a 60W power supply will ensure you always have enough power in all cases.

Here are some measurements of the total power draw for the whole Jetson TK1 board (when running on 12V and without any power reduction customizations):

Operation Total Jetson TK1 power
booting up ~3.6W (for ~2 minutes of booting)
using the command-line through ethernet ~1.6W (starts at 2.3W but gradually ramps down over ~10 minutes)
running a disk-intensive search command 1.6W - 4.7W
using the graphical Unity desktop ~2.2W (if controlled through ethernet, or ~3.2W if you plug in a USB keyboard & mouse)

As you can see from this table, the whole Jetson TK1 board including CPU & GPU and fan uses a total of 1.6W when you aren't really doing anything, while a graphical desktop adds roughly 0.6W for the HDMI port & GPU-accelerated desktop effects, and the eMMC disk can use about 5 Watts of additional power. As mentioned above, the Tegra SOC typically uses between 0.6W to 3W during normal use, but can potentially use much more than this in extreme cases. More detailed power measurements during different loads are shown in the Power draw during computer vision tasks section, where you can see the power draw when the CPU & GPU are pushed to their limit.

Replacing the fan with a heatsink

Warning: removal of the fan+heatsink will void the warranty.

The Jetson TK1 board comes with a large fan+heatsink combo attached to the SOC, to ensure the board is always safe to touch by humans even when running both the CPU & GPU at max performance for long durations. The fan is rated at 12V 1.4W, but the Jetson TK1 is only running it at 5V thus it's only using 0.4W of power. But some users may want to remove the fan and replace it with a passive heatspreader or heatsink, either to reduce power or increase dust-resistance or lifetime or simply to get rid of the fan noise. The fan+heatsink is clearly much larger than it needs to be, so it can be replaced by a small fan or large heatsink without a reduction in performance or safety.

The Tegra K1 SOC is designed for tablets that use a small heatsink or heatspreader plate, thus clearly it doesn't require a large fan. But tablets aren't expected to run at full performance for long periods, and you also can't touch the SOC of a tablet with your bare fingers, so NVIDIA decided to use a large surplus fan for Jetson TK1. If you wish to replace the fan with a heatsink, take into account that if you will be pushing the SOC to its limits for long durations, the SOC might be using upto 10W - 15W of power that you must dissipate with a large heatsink and/or external fan and/or attaching a heatspreader to the metal case of your overall device, otherwise the internal Tegra thermal management may reduce the performance to ensure it won't overheat.

NVIDIA has tested a simple 2" x 2" heatspreader (a thin flat sheet of Aluminium) and found it to be fine for most use-cases. They ran an intense Optical Flow computation on the GPU using ~7 Watts of power in the Tegra K1 SOC and found that the heatspreader got warm but not too hot to touch. Thus for most light & medium workloads, a heatspreader is good enough. If you are expecting to run heavy workloads (eg: 4 threads of efficient NEON SIMD CPU code, or efficient CUDA code using the entire GPU) for hours of continuous use, then a heatsink as mentioned above (or obviously the fan-heatsink that comes with Jetson TK1) is recommended, to ensure there is enough cooling of the Tegra SOC.

Known working passive heatsinks

The Connectland 1504002 Heatsink attached to a Jetson TK1.

It hasn't been tested by NVIDIA, but rough estimatations suggest that a 1.5" x 1.5" x 0.8" Aluminium heatsink (such as an Aluminium Malico MBH33002 or Copper Malico CMBA054949 north-bridge heatsink) would allow pushing Tegra K1 to its limits for long durations while not getting hot enough for the SOC to reduce the performance or burn human skin.

An alternative for European users (as finding suitably sized heatsinks in Europe is very tough) is the Connectland 1504002 Heatsink which is a dual heatpipe copper finned design from a French company. It can be found on Amazon UK for around £10, as well as on eBay and some other EU mail order retailers. This model comes with tongue and groove links which let you attach the heatsink to the existing holes on the Jetson TK1, see the image on the right for an example.

Temperatures of the CPU as reported by /sys/devices/virtual/thermal/thermal_zone0/temp with the Connectland 1504002 Heatsink were as follows:

Ambient temperature Idle with stock fan Idle with 1504002 After an hour of burnCortexA9 with 1504002
25.8C 33.5C 37.5C 48.5C

Controlling the performance and power draw

Reducing the performance settings

The power draw of the Jetson TK1 board and the Tegra K1 SOC processor are very tightly related to the performance of the Tegra processor, so if you want to reduce power of your board then read the Performance page for info on how to tweak the performance settings to get your ideal combination of performance & power draw.

As a general guide, the different options for CPU perf/power are listed here, sorted from highest power draw to lowest power draw:

  • Force all 4 CPU cores to max performance by disabling the hot-plug scaling mechanism.
  • Just use everything with default settings (it will automatically switch on/off each of the 4 main CPU cores & the 5th low-power companion core, at runtime).
  • Limit the clock-rate of the 4 main CPU cores to a low speed to reduce the power (it will still automatically switch to the 5th low-power companion core when suitable).
  • Turn off all 4 main CPU cores to force all CPU code to run on the 5th "LP" low-power shadow companion core instead, for maximum power reduction.

(These are all described in the Performance page).

Turning off the HDMI port if a display isn't required

If no HDMI monitor is plugged in during bootup, then the Jetson TK1 board will use less power since various display related features won't be enabled. Also, turning off the HDMI port can slightly reduce the power usage of the board. Run this as root (see the section below on how to get root privileges):

echo -1 > /sys/kernel/debug/tegra_hdmi/hotplug
echo 4 > /sys/class/graphics/fb0/blank

How to run a command with root privileges temporarily or on every bootup

Moved to the performance page.

Powering the Jetson TK1 board with a battery

The Jetson TK1 accepts a standard 2.1mm DC barrel plug (center-pin is positive while the outer ring is negative) and is rated for 12V DC input, but will actually work with any input voltage between 9.5V to 13.5V. Note that SATA disks require a fairly precise 12V, so you shouldn't be using voltages at those ranges if you will power SATA hard drives from the Jetson TK1. It is known that the Jetson TK1 board won't turn on at less than 9.5V and it will likely be damaged at 16V or above. It may also be possible to power the Jetson TK1 board somewhere in the 13.5V to 16V range but NVIDIA has not tested this.

Since Jetson TK1 needs a voltage between 9.5V to 13.5V, there are several options for powering the Jetson TK1 by batteries:

Direct connection to a rechargeable battery pack

A battery pack made of several battery cells in series to have roughly 12V can power the Jetson TK1 board directly. The voltage output of a battery varies quite a lot when it is fully charged compared to fully drained, so you need to make sure the voltage will always be within the recommended voltage range. Several good battery options are:

  • Lithium Ion or Lithium Polymer: Any 3S rechargeable Lithium battery pack (3 x Li-Ion or Li-Po cells in series) can power a Jetson TK1 directly. A Li-Ion/Li-Po "3.7V" rechargeable battery is roughly 3.7V on average but actually gives 4.2V when charged and around 3.3V when discharged. (The battery is likely to be damaged whenever it falls below 3.0V per cell). Thus an "11.1V" battery made from 3 Li-Ion/Li-Po cells gives 9.9V - 12.6V. An example of a 3S battery pack is Turnigy 3S 2200mA for $8.50 giving roughly 6 hours of moderate use (0.8 efficiency * 2.2Ah * 11.1V / 3W), and battery chargers include the popular Turnigy Accucell-6 for $23. Note: for longer Li-Po battery life, if your LiPo battery has a small connector giving you access to the individual cell voltages then you should use a 3S Li-Po Battery Monitor for $2 to check if one of the 3 cells is drained faster than the others.
  • Nickel-Cadmium or Nickel-Metal-Hydride: 10 x rechargeable NiCad or NiMh AA or AAA batteries can power a Jetson TK1. Because a NiCad or NiMh AA "1.2V" rechargeable battery gives about 1.35V when fully charged and drops to about 1.0V when consumed. Thus 10 NiCad/NiMh cells gives 10V - 13.5V. Decent NiMh batteries are rated at 1800mAh - 2400 mAh, thus 10 x AA rechargeables should last roughly 6 hours of moderate use (0.8 efficiency * 2.0Ah * 12V / 3W). The easiest way to recharge 10 NiMh batteries at once is to use a universal battery charger such as Turnigy Accucell-6 for $23. Note: a non-rechargeable AA battery gives ~1.5V per cell whereas a rechargeable AA gives ~1.2V per cell, so if you want to use non-rechargeable consumable batteries for some reason then you should use 8 x AA instead of 10 x rechargeable AA batteries.

Step-down voltage regulator

A voltage regulator can produce a stable 12V DC voltage from a higher voltage, thus allows some battery options:

  • Lead-Acid (car battery): A car or motor-cycle or SLA battery is roughly 12V but the actual voltage can reach upto 14.4V. So if you want to plug the Jetson TK1 into your car battery then it is highly recommended to use a 12V voltage regulator to ensure the voltage to the board will not be too high. You should also use a fuse to ensure nothing catches on fire if there is a short-circuit! You could even use a 24V truck battery if your voltage regulator allows it. A small 40Ah car battery would power Jetson TK1 roughly 5 days of moderate use (0.8 efficiency * 12V * 40Ah / 3W).
  • Li-Ion or Li-Po 4S battery pack: A voltage regulator can allow you to use any higher voltage battery that you might already happen to have available, such as a 14.8V 4S LiPo battery pack or anything higher.
MyzharBot, the crawler robot
The MyzharBot crawler robot is powered by a Turnigy 5000mAh 4S 30C Lipo Pack battery (varying between 16.8V for a full charge to 12.8V at warning voltage). The battery powers motors directly while the Jetson TK1 & microcontroller logic are powered by a USB-programmable DC-DC converter (normally used for automotive applications).
Programmable DC-DC converter
Programmable DC-DC enclosure

DC-DC step-up converter with a single-cell battery

A DC-DC step-up converter can convert a low voltage into a stable 12V DC thus allows using a single-cell battery. Some suitable step-up converters range from a 20W step-up converter for $4 (that might be enough for some use cases but not others) to a 60W step-up converter for $14 (that is always able to push Jetson TK1 to its full limits). Both of these step-up converters will work from a single LiIon/LiPo battery cell or a few AA batteries or a 5V USB portable charger. (Note that most USB portable chargers can only produce 5W to 10W, so are unlikely to power the whole Jetson TK1 board unless if you replace the fan, don't run intensive code, and disable many ports).

Measuring the power draw and battery level

If you are doing a one-off test then you can simply attach a multimeter (such as a Backlit Digital Multimeter for $7) across the positive & negative of the battery to measure its voltage, or in between the battery positive and the Jetson TK1 positive wire to measure its current (make sure you plug your test lead into the 10A port of your multimeter instead of the 200mA-fused port!). If you want an onboard display, you can attach a small inline meter (such as a Voltage & Current Monitor for $5) onto your robot or device so you can easily check it at any time, and see when the battery voltage is too low and thus needs recharging. Current meters such as those above will show the total current draw of the device, so to get the power draw, multiply the Current (Amps) by the Voltage (Volts) to get Power (Watts). For example, if you are powering your Jetson TK1 from a 3S LiPo battery pack, then it is roughly 11.1V on average, and if you are measuring 0.3A (or 300mA) on your current meter then 11.1V * 0.3A = 3.3W and thus your whole board is currently using roughly 3.3 Watts of power draw. (This changes a lot depending on what you are running on your Jetson at the time).