hardware
Read and control I2C and SPI peripherals on Sipeed boards (LicheeRV Nano, MaixCAM, NanoKVM).
适合你,如果你在用 Sipeed 开发板控制外设
npx oh-my-skill add sciclaw/sciclaw/hardwarecurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- sciclaw/sciclaw/hardwarenpx oh-my-skill verify sciclaw/sciclaw/hardware怎么用
商店整理自技能原文 · 版本 5d19464 · 表述以原文为准装上后,Claude 可以读取和控制连接在 Sipeed 开发板(如 LicheeRV Nano、MaixCAM、NanoKVM)上的 I2C 和 SPI 外设,例如传感器、显示屏等。
当你需要与 I2C 或 SPI 设备通信时触发,例如扫描总线、读取传感器数据或配置外设。
技能原文 SKILL.md
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 sensors: AHT20, BME280, SSD1306 OLED, MPU6050 IMU, DS3231 RTC, INA219 power monitor, PCA9685 PWM, and more.
Troubleshooting
| Problem | Solution | |---------|----------| | No I2C buses found | modprobe i2c-dev and check device tree | | Permission denied | Run as root or add user to i2c group | | No devices on scan | Check wiring, pull-up resistors (4.7k typical), and pinmux | | Bus number changed | I2C adapter numbers can shift between boots; use i2c detect to find current assignment | | WiFi stopped working | I2C-1/SPI-2 share pins with WiFi SDIO; can't use both simultaneously | | devmem not found | Download separately or use busybox devmem | | SPI transfer returns all zeros | Check MISO wiring and device power | | SPI transfer returns all 0xFF | Device not responding; check CS pin and clock polarity (mode) |