Hardware (I2C / SPI)
Use the i2c and spi tools to interact with sensors, displays, and other peripherals connected to the board.
Quick Start
# 1. Find available buses
i2c detect
# 2. Scan for connected devices
i2c scan (bus: "1")
# 3. Read from a sensor (e.g. AHT20 temperature/humidity)
i2c read (bus: "1", address: 0x38, register: 0xAC, length: 6)
# 4. SPI devices
spi list
spi read (device: "2.0", length: 4)
Before You Start — Pinmux Setup
Most I2C/SPI pins are shared with WiFi on Sipeed boards. You must configure pinmux before use.
See references/board-pinout.md for board-specific commands.
Common steps:
- Stop WiFi if using shared pins:
/etc/init.d/S30wifi stop - Load i2c-dev module:
modprobe i2c-dev - Configure pinmux with
devmem(board-specific) - Verify with
i2c detectandi2c scan
Safety
- Write operations require
confirm: true— always confirm with the user first - I2C addresses are validated to 7-bit range (0x03-0x77)
- SPI modes are validated (0-3 only)
- Maximum per-transaction: 256 bytes (I2C), 4096 bytes (SPI)
Common Devices
See references/common-devices.md for register maps and usage of popular sens…