I2C Interface Overview

I2C Communication

I2C, or Inter-Integrated Circuit, is a chip-to-chip interface supporting two-wire communication. Instrument Control Toolbox™ I2C support lets you open connections with individual chips and to read and write over the connections to individual chips.

The Instrument Control Toolbox I2C interface lets you do chip to chip communication using an Aardvark or NI-845x host adaptor. Some applications of this interface include communication with SPD EEPROM and NVRAM chips, communication with SMBus devices, controlling accelerometers, accessing low-speed DACs and ADCs, changing settings on color monitors using the display data channel, changing sound volume in intelligent speakers, reading hardware monitors and diagnostic sensors, visualizing data sent from an I2C sensor, and turning on or off the power supply of system components.

The primary use cases involve the fread and fwrite functions. To identify I2C devices in the Instrument Control Toolbox, use the instrhwinfo function on the I2C interface, called i2c.

Supported Platforms for I2C

You need to have either a Total Phase Aardvark host adaptor or a NI-845x adaptor board installed to use the i2c interface. The following sections contain the supported platforms for each option.

Using Aardvark

The I2C interface is supported on these platforms when used with the Aardvark host adaptor:

  • Linux® – The software works with Red Hat Enterprise Linux 4 and 5 with kernel 2.6. It may also be successful with SuSE and Ubuntu distributions.

  • Microsoft® Windows® 64-bit


For R2018b and R2018a, you cannot use the Aardvark adaptor for I2C or SPI interfaces on the platform. You can still use it on Windows and Linux. For releases prior to R2018a, you can use it on all three platforms, including the Mac.

Using NI-845x

The I2C interface is supported on these platforms when used with the NI-845x host adaptor:

  • Microsoft Windows 64-bit