Jetson/Jetson TK1 Power

From eLinux.org
< Jetson
Revision as of 15:19, 16 May 2016 by Shervin.emami (Talk | contribs) (Added info on getting Jetson TK1 to boot up without pressing Power button)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 under different loads:


Replacing the fan with a heatsink

It is usually fine to remove the fan+heatsink combo that comes with Jetson TK1 and replace it with either a metal heat-spreader plate, or a heatsink. Read more info on the Thermal page.


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 (sorted from highest power draw to lowest power draw) are:

  • 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 max clock-rate of the 4 main CPU cores to a low speed to reduce the power (it will still automatically switch them on/off and switch to the 5th low-power companion core when suitable).
  • Turn some CPU cores on and some off, based on what you know works best for a particular use-case.
  • 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.

Increasing or changing the performance settings

(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).

To use an unique power source for both motors and logic units you can use a Pi Filter CLC like the one created for MyzharBot and fully tested onboard. Schematics and PCB design are available here.

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).


Powering devices or accessories from Jetson TK1

There are many ports or pins on the Jetson TK1 that can provide power for your devices & accessories:

  • The IDE / Hard-disk Molex port can provide 5V and generally 12V.
  • The full-sized USB 3.0 port can provide 5V @ 1.0A (even more than the 0.9A required for USB 3.0).
  • The micro-USB USB 2.0 port can provide 5V @ 0.5A (as required for USB 2.0).
  • There are many pins on the GPIO connectors that can provide various amounts of 5V, 3.3V, 1.8V, etc. Read the Jetson TK1 FAQ + official documents for more details.


Getting Jetson TK1 to always boot when it has power

Jetson TK1 has a capacitor in its power circuitry so it can keep track of the time & date even if electrical power is lost for upto 1 hour (eg: to protect it during a short black-out). This has the side-effect where if you unplug a Jetson TK1 and plug it back in within less than 1 hour, you need to press the "POWER" button for it to turn on. There are several ways to disable this behavior, in order to allow the Jetson TK1 to automatically boot up anytime power is applied. The only foolproof method seems to be using a basic electronic circuit (eg: an Arduino microcontroller or a simple Resistor-Capacitor filter) to send a signal to the Power pin on the Jetson TK1 expansion port (J1A1 header). Other solutions are to pull out the capacitor that is holding this 1 hour charge, or modify the software configuration to disable the feature. These are all discussed on the forum here and here.