skills/arduino/SKILL.md
This tool allows you to interact with the Arduino CLI to compile sketches, manage libraries/cores, and upload firmware to microcontrollers. It is the definitive tool for Arduino development in a headless or automated environment.
npx skillsauth add cantpr09ram/agent-staff arduinoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
--format json.The FQBN (Fully Qualified Board Name) is the primary identifier for any target hardware. You CANNOT compile or upload without it.
package:arch:board (e.g., arduino:avr:uno, esp32:esp32:esp32).board list or board listall.CRITICAL: Whenever performing discovery or search operations (listing boards, searching libraries), you MUST append --format json to the command.
The standard lifecycle for an Arduino task is:
core update-index (Run this once per session).board list --format json to identify the connected port and potential FQBN.sketch.yaml or install libs via lib install.compile --fqbn <FQBN> --export-binaries <SKETCH_PATH>.upload -p <PORT> --fqbn <FQBN> <SKETCH_PATH>.board listall <term> --format json and map to one exact FQBN before compiling.<package:arch>), then retry compile.--warnings all for better diagnostics before proposing code changes.--export-binaries. This copies the .hex or .bin artifact to the sketch directory for verification and reuse.board list returns null/unknown FQBN, infer the board type from the user's prompt (e.g., "I'm using an ESP32") and map it to a concrete FQBN with board listall <term> --format json.arduino-cli core update-indexarduino-cli board listall <search_term> --format jsonarduino-cli core search <search_term> --format jsonarduino-cli core install <package:arch>arduino-cli board list --format jsonarduino-cli compile --fqbn <FQBN> --export-binaries --warnings all <SKETCH_PATH>arduino-cli upload -p <PORT> --fqbn <FQBN> <SKETCH_PATH>testing
Use abstract principles to evaluate design and engineering decisions.
development
Use `uv` instead of pip/python/venv. Run scripts with `uv run script.py`, add deps with `uv add`, use inline script metadata for standalone scripts.
tools
Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.
tools
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.