hardware
Read and control I2C and SPI peripherals on supported boards (LicheeRV Nano, MaixCAM, NanoKVM).
14 stars
Best use case
hardware is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Read and control I2C and SPI peripherals on supported boards (LicheeRV Nano, MaixCAM, NanoKVM).
Teams using hardware should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
$curl -o ~/.claude/skills/hardware/SKILL.md --create-dirs "https://raw.githubusercontent.com/AbdullahMalik17/malikclaw/main/workspace/skills/hardware/SKILL.md"
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/hardware/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How hardware Compares
| Feature / Agent | hardware | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Read and control I2C and SPI peripherals on supported boards (LicheeRV Nano, MaixCAM, NanoKVM).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 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 supported boards. You must configure pinmux before use. See `references/board-pinout.md` for board-specific commands. **Common steps:** 1. Stop WiFi if using shared pins: `/etc/init.d/S30wifi stop` 2. Load i2c-dev module: `modprobe i2c-dev` 3. Configure pinmux with `devmem` (board-specific) 4. Verify with `i2c detect` and `i2c 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) |
Related Skills
We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.