Vendors the fork's 11 granular UNO Q skills (bridge, flashing, led-matrix, uno-q-hardware, sketch-patterns, modulino, linux-led, audio, vision, wireless, arduino-app-lab) next to the comprehensive arduino-uno-q skill, and installs the whole set into every agent's workspace on each board. Why both: the comprehensive skill is the rich cloud reference (read_skill → references); the granular skills are keyword-triggered and match the fork's eager skill-inliner rules, so the on-board Qwen auto-inlines them (no read_skill round-trip). flashing + led-matrix carry the exact uno_q_flash + frame-API / ArduinoGraphics-not-installed detail that makes flashing reliable. - push-skill.sh generalized: a single skill dir (has SKILL.md) OR a parent dir installs every skill under it; provision-fleet now ships all of skills/. - Verified on board 65301572: cloud/Sonnet-5 lists all 12 skills. Co-Authored-By: Claude Opus 4.8 <[email protected]>
40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
---
|
||
name: uno-q-hardware
|
||
description: Arduino Uno Q board pinout and voltage rules — PWM pins, 3.3V ADC limits, I2C/SPI/Serial pins, and the MPU vs MCU split. Load this before answering any question that names a pin (D0-D21, A0-A5) or a voltage, or before writing a sketch that uses analogRead/analogWrite/Wire/SPI/Serial.
|
||
---
|
||
|
||
# Arduino Uno Q Hardware
|
||
|
||
Two processors talk over an RPC Bridge:
|
||
|
||
- **MPU (Linux)** — Qualcomm QRB2210, 4× Cortex-A53. Runs ZeroClaw, the LLM,
|
||
arduino-cli, OpenOCD. MPU I/O is **1.8 V** and is **not** reachable from sketches.
|
||
- **MCU (Arduino)** — STM32U585, Cortex-M33, Zephyr + Arduino core. Runs `.ino`
|
||
sketches. **Every Arduino header (JDIGITAL, JANALOG, JSPI, Qwiic) is 3.3 V.**
|
||
|
||
Sketches always target the MCU (`arduino:zephyr:unoq`).
|
||
|
||
## Quick facts
|
||
|
||
- **PWM pins:** D3, D5, D6, D9, D10, D11 (the `~` pins). `analogWrite` only works here.
|
||
- **Built-in LED:** D13.
|
||
- **I2C2** (`Wire`): SDA = D20, SCL = D21. **I2C3** (`Wire1`): SDA = A4, SCL = A5.
|
||
**I2C4** = the Qwiic connector (plug-and-play Modulino sensors).
|
||
- **SPI (SPI2):** D10 = CS, D11 = MOSI, D12 = MISO, D13 = SCK.
|
||
- **Serial:** `Serial` = D0 (RX), D1 (TX).
|
||
- **DAC:** A0 = DAC0, A1 = DAC1 (12-bit; `analogWriteResolution(12)`).
|
||
- **CAN:** FDCAN1 on D4 (TX), D5 (RX) — needs a transceiver (e.g. TJA1051T/3).
|
||
|
||
## Voltage safety — call this out every time
|
||
|
||
- ADC inputs A0–A5 accept **0–3.3 V only** (abs max ~3.6 V). **5 V on A0–A5 damages
|
||
the STM32U585.** Unlike a classic 5 V Uno.
|
||
- `analogRead()` returns 0–1023; volts = `raw * 3.3 / 1023.0`.
|
||
- For a 5 V sensor, divide down: 5 V → 10 kΩ → A0 → 20 kΩ → GND.
|
||
|
||
## On-board LEDs
|
||
|
||
- RGB LED 1/2 are MPU-owned (`/sys/class/leds/*`, use the `sysfs_led` tool).
|
||
- RGB LED 3/4 are MCU-owned (`analogWrite`/`digitalWrite` in a sketch).
|
||
- All RGB LEDs are **active-low** (write 0 = on). `sysfs_led` inverts this for you.
|