"I2C" is a low-level device communication protocol for devices connected directly to the processor running the Wolfram Language.
I2C is a half-duplex bus protocol for devices that allows many devices to be attached to a single device with only two wires, the Serial Data Line (SDA) and Serial Clock Line (SCL). The SDA is used for communicating data, while the SCL synchronizes the data as it is sent from device to device.
There are two classes of devices that are compatible with I2C, master devices and slave devices. Master devices facilitate all communication on the bus, but slave devices are not allowed to communicate on the bus unless explicitly permitted by the master. The Wolfram Language implementation of I2C designates the device that is running the Wolfram Language as the master on the I2C bus.
The I2C clock speed is derived from the Linux kernel and defaults to 100 kHz on the Raspberry Pi.
The system may need to be set up prior to using the I2C kernel; see "I2C Setup" for more information.
The I2C bus can only be accessed when running the Wolfram Language on the Raspberry Pi.
Note: On Raspbian versions lower than Jessie, to access GPIO you must be logged in as root or be running the Wolfram Language as root. All higher versions do not need root access.
I2C devices are discovered automatically. Use FindDevices to list the devices currently on the I2C bus.