Jetson TX1 - INA226 (Power Monitor with i2C Interface)

I need to monitor/log the Jetson TX1 power consumption. I have interfaced with the three INA3221 and the TMP451 on the kit. However, I cannot find the INA226 on I2C Gen2 bus at address 7’h40. Does anyone know the correct bus/address to access INA226?

Alternatively, does anyone know where in the file system these values are located? I looked through /sys/devices and /sys/dev, but nothing stood out.

Thank you!

For now it will need to be measured from the carrier or power supply. The INA (current measurement) support is being added in a later version of the module

The INA226 on bus i2C Gen2 at address 0x46 (not 0x40, typo in original post) should be removed from the schematic or have a note.

What is the release date for the module version that will support the INA226?

Dear MoonJP,

I was able to interface with INA3221x on my Jetson. But when I check in sys/bus/i2c/devices/
I am able to see only the folders 1-0042 and 1-0043 and I want to be able to access 1-0040 which has information regarding VDD_IN, VDD_GPU and VDD_CPU.
Did you encounter such an issue? Could you please advice what I may be missing.

Thank you.

Hello Fido32,

You need to read directly from the i2c bus to access address 0x40. I used python and the smbus library.

Good luck!

Jetson TX1 (revision 300 or greater) enables use of INA monitors for the module and Developer Kit carrier board. Note that Developer Kits may have an earlier revision of the module, in which case only INA monitors related to the carrier board are available.

HOWTO

1. Verify L4T (Linux for Tegra) is version 24.2 or higher

The L4T version can be determined with this command:

$ head -1 /etc/nv_tegra_release

If your L4T version is not at least 24.2, please download the latest JetPack installer from Embedded Developer Zone and update your Jetson TX1.

2. Verify Jetson TX1 module is revision 300 or higher

The feature to enable use of INA monitors was added starting with revision 300 of Jetson TX1. For example, SKU 699-82180-1000-300 (note the “-300”) has the feature.

The module SKU can be determined with the i2cdump command:

$ sudo i2cdump -y -r 0x14-0x26 2 0x50 b

3. Read the information via sysfs nodes

INA3221 monitors are readable via sysfs nodes. Where N is a channel number (0 – 2):

rail_name_N exports rail name
in_currentN_input exports rail current in mA
in_voltageN_input exports rail Voltage in mV
in_powerN_input exports rail power in mW

The INA driver may additionally present other nodes, but you must not modify any INA sysfs node value. Modifying these values could result in damage to your device.

The Jetson TX1 module has a 3-channel INA3221 monitor at I2C address 0x40. The sysfs nodes to read rail name, voltage, current & power can be found at:

/sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/

These are the rail names for I2C address 0x42:

Channel-0: VDD_IN
    main module power input
Channel-1: VDD_GPU
    GPU Power rail
Channel-2: VDD_CPU
    CPU Power rail

The Jetson TX1 Development Kit carrier board has 3-channel INA3221 monitors at I2C addresses 0x42 and 0x43. The sysfs nodes to read rail name, voltage, current & power can be found at:

/sys/devices/platform/7000c400.i2c/i2c-1/1-0042/iio_device/
/sys/devices/platform/7000c400.i2c/i2c-1/1-0043/iio_device/

These are the rail names for I2C address 0x42:

Channel-0: VDD_MUX
    main carrier board power input
Channel-1: VDD_5V_IO_SYS
    main carrier board 5V supply 
Channel-2: VDD_3V3_SYS
    main carrier board 3.3V supply

These are the rail names for I2C address 0x43:

Channel-0: VDD_3V3_IO (name on schematics is VDD_3V3_SLP)
    carrier board 3.3V Sleep supply
Channel-1: VDD_1V8_IO (name on schematics is VDD_1V8)
    main carrier board 1.8V supply
Channel-2: VDD_M2_IN  (name on schematics is VDD_3V3_SYS_M2)
    3.3V supply for M.2 Key E connector

Examples:
To read INA3221 @ 0x40 channel-0 rail name (i.e., VDD_IN):

$ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/rail_name_0

To read VDD_IN voltage, current & power:

$ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/in_current0_input
$ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/in_voltage0_input
$ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/in_power0_input

Hello,

I have ordered TX1 on September 27th 2016 and I received it on 3rd of October. Considering the date of this post by @ctichenor I assumed that I should receive the latest and greatest from Nvidia. But, when I try to check the module number is 100. Am I right?

ubuntu@tegra-ubuntu:~$ head -1 /etc/nv_tegra_release
# R24 (release), REVISION: 2.1, GCID: 7791156, BOARD: t210ref, EABI: aarch64, DATE: Thu Sep 29 00:59:21 UTC 2016

ubuntu@tegra-ubuntu:~$ sudo i2cdump -y -r 0x14-0x26 2 0x50 b
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
10:             36 39 39 2d 38 32 31 38 30 2d 31 30        699-82180-10
20: 30 30 2d 31 30 30 20                               00-100

Thanks

This feature enabling use of INAs was not part of the original Jetson TX1 specification. Therefore, earlier modules are not subject to RMA or automatic exchange because they lack this feature.
If you need to measure module INAs, please purchase a production module

Please, can you tell me about “You need to read directly from the i2c bus to access address 0x40. I used python and the smbus library”. i can’t understand it
i know jetson tx1 don’t have a INA226

Does the tx1 dev kit you are currently selling (on your website) carry the latest module?

If not, where to purchase the latest tx1 module?

I checked on https://www.arrow.com/en/products/900-82180-0001-000/nvidia

The part number is 900-82180-0001-000. Is this the latest tx1 module that supports INA monitors on the module?

I use https://github.com/cezs/jtx1inst in order to directly access module’s (revision below 300) INA3221 and read CPU’s and GPU’s power consumption values.

thanks for the code and sharing, can you please take a look(on GitHub) at the issues I am facing while compiling the lib, I have opened the issue in your Github repo.

Thanks again.