--- 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.