Files
apress/deploy/uno-q/skills/flashing/SKILL.md
T
Omar SobhandClaude Opus 4.8 62c435c648 feat(uno-q): bundle the granular skill set alongside arduino-uno-q on every node
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]>
2026-07-16 09:32:11 -07:00

34 lines
1.5 KiB
Markdown

---
name: flashing
description: How to compile and flash sketches to the Arduino Uno Q MCU over SWD using the uno_q_flash tool. Load this whenever the user asks to upload, flash, run, program, or build a sketch on the Uno Q.
---
# Flashing the Uno Q MCU
Use the **`uno_q_flash`** tool. The MPU programs the MCU's flash directly over
SWD (bit-banged GPIO via OpenOCD `linuxgpiod`) — no USB cable, no SSH.
## How to use it
- `action = "upload"` + `code` (full `.ino`) — compile then flash. The sketch
runs immediately (`reset run`). **This is what you call to make a sketch run.**
- `action = "compile"` + `code` — verify it builds, don't flash.
- `action = "detect"` — list boards.
When the user asks to upload/flash/run a sketch, CALL the tool with
`action="upload"`. Do not explain the steps in prose. Always provide the
complete sketch (`setup()` + `loop()`).
## Under the hood (for context, not for the user)
- Compile: `arduino-cli compile --fqbn arduino:zephyr:unoq --export-binaries`.
- Flash: OpenOCD writes the image to the bank-2 partition at **`0x8100000`**
(the correct sketch address; `0x80F0000` is reserved and never executes).
- Requires on-device `arduino-cli` and `/opt/openocd` with `openocd_gpiod.cfg`.
## If it fails
- Compile errors come back in the tool result — fix the sketch and retry.
- "OpenOCD not found" → the Zephyr core's OpenOCD isn't installed at `/opt/openocd`.
- Remember the 3.3 V rule and that PWM is only D3/D5/D6/D9/D10/D11.