import i2c
The i2c module exposes the firmware I2C bus for sensors, displays, expanders, and other bus devices. It supports scanning, raw reads and writes, and common register helpers.
Quick example
import i2c i2c.begin(21, 22, 100000) devices = i2c.scan() data = i2c.read_reg(0x40, 0x00, 2)
importi2c
I2C native Berry module.
The i2c module exposes the firmware I2C bus for sensors, displays, expanders, and other bus devices. It supports scanning, raw reads and writes, and common register helpers.
i2c.begin(sda: int, scl: int, frequency: int) -> any
i2c.begin(sda: int, scl: int, frequency: int) -> anyInitialize the I2C bus.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
sda |
int |
positional or keyword | Yes | GPIO used for SDA. |
scl |
int |
positional or keyword | Yes | GPIO used for SCL. |
frequency |
int |
positional or keyword | Yes | Bus frequency in hertz. |
any Native initialization result.
i2c.scan() -> list
i2c.scan() -> listScan the I2C bus for devices.
list List-like native value of detected device addresses.
i2c.write(address: int, data: list) -> any
i2c.write(address: int, data: list) -> anyWrite bytes to an I2C address.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
address |
int |
positional or keyword | Yes | 7-bit I2C device address. |
data |
list |
positional or keyword | Yes | Bytes, string, or list-like payload accepted by firmware. |
any Native write result.
i2c.read(address: int, length: any) -> bytes
i2c.read(address: int, length: any) -> bytesRead bytes from an I2C address.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
address |
int |
positional or keyword | Yes | 7-bit I2C device address. |
length |
any |
positional or keyword | Yes | Number of bytes to read. |
bytes Bytes-like native value.
i2c.write_read(address: int, data: list, read_length: any) -> bytes
i2c.write_read(address: int, data: list, read_length: any) -> bytesWrite a payload and then read a response without releasing the bus.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
address |
int |
positional or keyword | Yes | 7-bit I2C device address. |
data |
list |
positional or keyword | Yes | Bytes, string, or list-like payload to write first. |
read_length |
any |
positional or keyword | Yes | Number of bytes to read after the write. |
bytes Bytes-like native response.
i2c.read_reg(address: int, register: int, length: any) -> bytes
i2c.read_reg(address: int, register: int, length: any) -> bytesRead bytes from a device register.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
address |
int |
positional or keyword | Yes | 7-bit I2C device address. |
register |
int |
positional or keyword | Yes | Register address. |
length |
any |
positional or keyword | Yes | Number of bytes to read. |
bytes Bytes-like native value.
i2c.write_reg(address: int, register: int, data: list) -> any
i2c.write_reg(address: int, register: int, data: list) -> anyWrite bytes to a device register.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
address |
int |
positional or keyword | Yes | 7-bit I2C device address. |
register |
int |
positional or keyword | Yes | Register address. |
data |
list |
positional or keyword | Yes | Bytes, string, integer, or list-like payload. |
any Native write result.
i2c.deinit() -> any
i2c.deinit() -> anyDeinitialize the I2C bus.
any Native deinitialization result.