sipeed/picoclaw/workspace/skills/hardware/SKILL.md
hardware
Read and control I2C and SPI peripherals on Sipeed boards (LicheeRV Nano, MaixCAM, NanoKVM).
- Source repository stars
- 29,812
- Declared platforms
- 0
- Static risk flags
- 0
- Last source update
- 2026-07-30
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
Use the i2c and spi tools to interact with sensors, displays, and other peripherals connected to the board.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/sipeed/picoclaw --skill "workspace/skills/hardware"Inspect the Agent Skill "hardware" from https://github.com/sipeed/picoclaw/blob/49183d7e8daed0dba89ddbb6fcb60089401d9680/workspace/skills/hardware/SKILL.md at commit 49183d7e8daed0dba89ddbb6fcb60089401d9680. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Quick Start
Review the “Quick Start” section in the pinned source before continuing.
Review and apply the “Quick Start” source section. - 02
Before You Start — Pinmux Setup
Most I2C/SPI pins are shared with WiFi on Sipeed boards. You must configure pinmux before use.
Stop WiFi if using shared pins: /etc/init.d/S30wifi stopLoad i2c-dev module: modprobe i2c-devConfigure pinmux with devmem (board-specific) - 03
1. Find available buses
Review the “1. Find available buses” section in the pinned source before continuing.
Review and apply the “1. Find available buses” source section. - 04
2. Scan for connected devices
Review the “2. Scan for connected devices” section in the pinned source before continuing.
Review and apply the “2. Scan for connected devices” source section.
Permission review
Static risk signals and limitations
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 83/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 29,812 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- sipeed/picoclaw
- Skill path
- workspace/skills/hardware/SKILL.md
- Commit
- 49183d7e8daed0dba89ddbb6fcb60089401d9680
- License
- MIT
- Collected
- 2026-08-04
- Default branch
- main
View the original 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) |