arduino-cli-build-upload
End-to-end build and deployment flows for firmware binaries and programmers. Use when requests involve `arduino-cli compile`, `upload`, or `burn-bootloader`, including build properties, artifacts, ver
SKILL.mdskills/arduino-cli-build-upload/SKILL.md
GitHubWorkflow
- Compile with explicit
--fqbnand deterministic build flags. - Store or export binaries to predictable output locations.
- Upload with explicit port or programmer settings.
- Use verify and verbose flags only when needed for diagnosis.
Command Coverage
arduino-cli compilearduino-cli uploadarduino-cli burn-bootloader
Defaults
- Pass
--profilefor profile-managed projects. - Prefer
--output-diror--build-pathin automated pipelines. - Use
--uploadon compile only when a combined flow is intended.
ICL Examples (Captured 2026-02-14)
- Compile for Nano old bootloader with explicit FQBN and output directory.
arduino-cli --config-dir /tmp/arduino_cli_suite_icl_data compile -b arduino:avr:nano:cpu=atmega328old --output-dir /Volumes/trent/Documents/Arduino/Arduino_CLI_Codex_Skills/tmp/icl_capture/project/build_nano_old /Volumes/trent/Documents/Arduino/Arduino_CLI_Codex_Skills/tmp/icl_capture/project/icl_suite_demo_v2
Observed output:
Sketch uses 5332 bytes (17%) of program storage space.
Global variables use 402 bytes (19%) of dynamic memory.
- Upload compiled firmware to an explicitly selected port.
arduino-cli --config-dir /tmp/arduino_cli_suite_icl_data upload -p /dev/cu.usbserial-3120 -b arduino:avr:nano:cpu=atmega328old /Volumes/trent/Documents/Arduino/Arduino_CLI_Codex_Skills/tmp/icl_capture/project/icl_suite_demo_v2
Observed output confirmed target port: New upload port: /dev/cu.usbserial-3120 (serial).