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]>
35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
---
|
|
name: arduino-app-lab
|
|
description: Arduino App Lab concepts on the Uno Q — Apps, Bricks, and the dual-side (Python + sketch) project structure. Load this when the user mentions App Lab, Bricks, or how a Uno Q "app" is organized across the Linux and Arduino sides.
|
|
---
|
|
|
|
# Arduino App Lab (Uno Q)
|
|
|
|
App Lab is Arduino's environment for Uno Q projects that span **both** sides of the
|
|
board. A project ("App") bundles a Linux-side program (usually Python) and an
|
|
Arduino sketch, wired together over the Bridge.
|
|
|
|
## Structure
|
|
|
|
- **App** — the whole project (Python + sketch + metadata, e.g. `app.yaml`).
|
|
- **Bricks** — reusable building blocks (a sensor, an actuator, a UI panel) you
|
|
compose into an App.
|
|
- **Bridge** — the RPC glue between the Python (MPU) and sketch (MCU) halves (see
|
|
the `bridge` skill).
|
|
|
|
The uno-q-bridge app that ZeroClaw deploys (`zeroclaw peripheral setup-uno-q`) is
|
|
itself an App Lab app: a `sketch/` on the MCU plus a `python/` socket server on the
|
|
Linux side exposing GPIO over TCP :9999.
|
|
|
|
## How this maps to ZeroClaw tools
|
|
|
|
- Flashing an App's sketch → `uno_q_flash` (compile + SWD flash).
|
|
- The Python side's GPIO service → `gpio_read` / `gpio_write`.
|
|
- You do not need the App Lab GUI to flash from ZeroClaw — `uno_q_flash` drives
|
|
`arduino-cli` + OpenOCD directly.
|
|
|
|
## Pitfalls
|
|
|
|
- An App's two halves run on different processors — pins live on the MCU, network
|
|
and AI on the MPU. Don't try to reach Arduino pins from Python except via Bridge.
|