hardware

Read and control I2C and SPI peripherals on Sipeed embedded boards.

Updated Jun 24, 2026
One-click install
npx skills add https://github.com/qiushido/picoclaw-lite --skill hardware-qiushido
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hardware
Source: https://github.com/qiushido/picoclaw-lite/tree/main/workspace/skills/hardware
Command: npx skills add https://github.com/qiushido/picoclaw-lite --skill hardware-qiushido

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Interacting with sensors, displays, and other peripherals on Sipeed boards (LicheeRV Nano, MaixCAM, NanoKVM) requires low-level bus configuration, pinmux setup, and device-specific register knowledge that is tedious to handle manually. ## Core Features & Use Cases - I2C Bus Operations: Detect buses, scan for connected devices, and read or write registers on sensors like AHT20, BME280, MPU6050, and DS3231. - SPI Device Access: List SPI devices and transfer data with peripherals such as MCP3008 ADCs and W25Q128 flash chips. - Pinmux Guidance: Provides board-specific pinmux commands (devmem, pinmap) and safety constraints like 7-bit address validation and write confirmation. - Use Case: Connect an AHT20 temperature sensor to a LicheeRV Nano, stop WiFi to free the shared pins, configure pinmux, scan the I2C bus, and read live temperature and humidity values. ## Quick Start Use the hardware skill to scan I2C bus 1 and read the temperature from the AHT20 sensor at address 0x38.

Frequently Asked Questions about hardware

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I read an I2C sensor on a LicheeRV Nano?

First stop WiFi since I2C-1 shares pins with SDIO, then set pinmux with devmem and load i2c-dev. Run i2c detect to find the bus, i2c scan to locate the device, then i2c read with the bus, address, register, and length.

How to scan for connected I2C devices on Sipeed boards?

Use i2c detect to list available buses, then run i2c scan with the bus number to enumerate connected device addresses. Addresses are validated to the 7-bit range 0x03-0x77.

Why does I2C stop working when WiFi is enabled?

On LicheeRV Nano, I2C-1 and SPI-2 share physical pins with the WiFi SDIO interface, so both cannot operate simultaneously. Stop WiFi with /etc/init.d/S30wifi stop before using those buses, or use the software I2C-5 bus instead.

Which sensors are supported by the I2C tools?

The reference documentation covers AHT20, BME280/BMP280, SSD1306 OLED, MPU6050, DS3231 RTC, INA219 power monitor, PCA9685 PWM controller, and AT24C256 EEPROM, including register maps and init sequences.

Why does my SPI transfer return all zeros or all 0xFF?

All zeros usually indicates a MISO wiring or device power problem, while all 0xFF means the device is not responding. Check the CS pin connection and verify the clock polarity matches the required SPI mode (0-3).

What are the transfer size limits for I2C and SPI?

I2C transactions are limited to 256 bytes per operation and SPI transfers to 4096 bytes. Write operations additionally require explicit confirmation with the confirm parameter set to true.