Arduino CLI 윈도우에서 포터블로 사용하기.

arduino-ide_2.3.6_Windows_64bit 기준으로 작성 했습니다.

이 문서는 다음 항목으로 구성 됩니다.
설치.
사용법.
명령어.

=======================================
설치.
=======================================
- Arduino CLI 다운로드.
https://www.arduino.cc/en/software/ 에서 arduino-cli_#.#.#_Windows_64bit.zip 을 다운로드 받아 압축을 풉니다. #는 버전번호로 최신버전을 받으면 됩니다.

- 이 다음부터는 아래 폴더구조라고 가정합니다. 
폴더는 아래 설정에 따라 설치 중에 자동으로 만들어 집니다.
 D:\Tools\ArduinoCLI\
  ├─ arduino-cli.exe        ← ZIP에서 꺼낸 실행 파일
  ├─ arduino-cli.yaml       ← 포터블 설정 파일(직접 만듦)
  ├─ data\                  ← 코어/툴/캐시(Arduino15 대체)
  ├─ user\            ← 스케치/라이브러리
  └─ libraries\               ← 실행용 배치파일(선택)

- arduino-cli.yaml 파일 생성.
arduino-cli.exe config init --config-file .\arduino-cli.yaml

- arduino-cli.yaml 편집. 
아래와 같이 편집해 주세요.
자세한 설명은 URL을 참조하세요.
https://docs.arduino.cc/arduino-cli/configuration/ 

아래 명령어로 설정을 확인할 수 있습니다.
arduino-cli --config-file arduino-cli.yaml config dump

D:\Tools\ArduinoCLI\arduino-cli.yaml
board_manager:
    additional_urls:
daemon:
    port: "50051"
directories:
    data: .\data
    downloads: .\downloads
    user: .\user
    builtin.libraries: .\libraries
library:
    enable_unsafe_install: false
logging:
    file: .\arduino-cli.log
    format: text
    level: info

- arduino-cli.exe가 있는 폴더에서 터미널을 엽니다.
파워쉘 말고 명령프롬프트(cmd.exe) 로 여세요.

- !중요! 
명령어를 칠때 항상 arduino-cli.yaml를 지정해 줘야 합니다.
지정하지 않으면 %LOCALAPPDATA%\Arduino15 에 각종 파일이 설치됩니다.

예) 
arduino-cli --config-file arduino-cli.yaml core update-index
arduino-cli --config-file arduino-cli.yaml core upgrade

- 아두이노 코어 설치 및 보드 설치.
arduino-cli
참고로 data 폴더에 설치 됩니다.

arduino-cli --config-file arduino-cli.yaml core update-index
arduino-cli --config-file arduino-cli.yaml core install arduino:avr

설치 확인.
arduino-cli --config-file arduino-cli.yaml core list


- esp32 보드 코어 설치.
esp32 보드가 아니면 안해도 됩니다.

arduino-cli --config-file arduino-cli.yaml config set board_manager.additional_urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

arduino-cli --config-file arduino-cli.yaml core update-index
arduino-cli --config-file arduino-cli.yaml core install esp32:esp32

arduino-cli --config-file arduino-cli.yaml core list
arduino-cli --config-file arduino-cli.yaml core search esp32

- 설치 오류시.
다운로드 오류가 나면 arduino-cli.yaml 을 열어 아래 내용을 추가해 주세요.
네트워크 시간 늘림.
network:
  timeout: 300s 

아래 명령어로 다운로드만 받아 복사합니다.  
arduino-cli --config-file arduino-cli.yaml core download esp32:esp32 --verbose

--verbose 옵션으로 실행하면 실패한 파일의 URL이 보이는데 크롬이나 다른 브라우저에서 다운로드 받습니다.  arduino-cli.yaml에서 downloads: 옵션에서 지정한 폴더 안에 \packages 폴더에 다운로드 받은 파일을 복사합니다. 
다운로드에 실패할 때마다 위의 것을 반복합니다. 아마 arduino-cli 의 다운로드 기능에 문제가 있는거 같습니다.

모든 다운로드가 완료되었으면 아래 명령어로 설치합니다.
arduino-cli --config-file arduino-cli.yaml core install esp32:esp32 --verbose

이래도 안되면 버전을 지정해 봅니다.
arduino-cli --config-file arduino-cli.yaml core download esp32:esp32@3.3.2 --verbose
arduino-cli --config-file arduino-cli.yaml core install esp32:esp32@3.3.2 --verbose

=======================================
사용법.
=======================================

- 사용할 보드의 fqbn 찾기.
arduino-cli --config-file arduino-cli.yaml board listall | findstr /I "esp32s3"

ESP32S3 Dev Module                          esp32:esp32:esp32s3

여기서 esp32:esp32:esp32s3 를 기억 합니다.

- 연결된 보드 목록.
arduino-cli --config-file arduino-cli.yaml board list
여기서 COM7 포트를 기억 합니다.

- 생성.
arduino-cli --config-file arduino-cli.yaml sketch new sketchbook\Test

- 연결.
attach하면 sketch.yaml 파일이 생성되고 --fqbn이나 --port 플래그를 입력할 필요가 없습니다.
혹은 수동으로 해도 됩니다.
arduino-cli --config-file arduino-cli.yaml board attach -b esp32:esp32:esp32s3 -p COM5 "sketchbook\test"

- sketch.yaml 설정.
sketch.yaml 을 편집기에서 설정합니다. 아래 url을 참조하세요.
https://arduino.github.io/arduino-cli/1.3/sketch-project-file/

위에서 찾은 fqbn 보드의 설정을 보는 방법. 
arduino-cli --config-file arduino-cli.yaml board details -b esp32:esp32:esp32s3

이런 텍스트가 출력 되는데 오른쪽의 값 중에서 하나를 골라 설정합니다.
속도가 115200라면 UploadSpeed=115200 으로 설정합니다.
Option:        Upload Speed                                                                UploadSpeed
               921600                                         ✔                            UploadSpeed=921600
               115200                                                                      UploadSpeed=115200

간단한 sketch.yaml 설정.
default_fqbn: esp32:esp32:esp32s3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=cdc,PartitionScheme=huge_app,CPUFreq=240,FlashMode=qio,FlashSize=16M,PSRAM=opi  
default_port: COM7
default_port_config:
  baudrate: 921600
default_protocol: serial

프로파일을 사용한 sketch.yaml 설정.
코드는 하나 인데 보드가 여러가지인 경우 혹은 이외의 다양한 설정이 필요한 경우 프로파일을 여러개 설정해 사용할 수 있습니다.
!주의! 프로파일을 사용하면 전역으로 설치된 라이브러리가 무시되므로 따로 설정해야 합니다.
아래와 같이 프로파일 이름을 지정해 컴파일 합니다.
arduino-cli compile --profile esp32s3
혹은 default_profile: esp32s3 같이 기본 프로파일을 지정할 수 있습니다.


default_profile: esp32s3

profiles:
  esp32s3:
    notes: ESP32-S3-WROOM-1 N16R8 development configuration
    fqbn: esp32:esp32:esp32s3:USBMode=hwcdc,PartitionScheme=huge_app,CPUFreq=240,FlashMode=qio,FlashSize=16M,UploadSpeed=921600,PSRAM=opi    
    platforms:
      - platform: esp32:esp32
        platform_index_url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
    libraries:
      - dir: libraries/ESP32-audioI2S-master

    port: COM7
    protocol: serial
    port_config:
      baudrate: 921600


- 컴파일 + 업로드 + 모니터.
arduino-cli --config-file arduino-cli.yaml compile --export-binaries --upload --port COM7 "sketchbook\test" && arduino-cli --config-file arduino-cli.yaml monitor -p COM7 -c 921600 --timestamp


- 컴파일 - attach 했을때.
arduino-cli --config-file arduino-cli.yaml compile --export-binaries "sketchbook\test"
- 컴파일, 업로드 오류가 나면 --verbose 플래그를 추가하면 상세한 로그를 볼 수 있습니다.
프로젝트 폴더에 build 폴더가 생성됩니다. 여기에 바이너리가 추가 됩니다.
- 컴파일 - attach 안 했을때.
arduino-cli --config-file arduino-cli.yaml compile --export-binaries --fqbn esp32:esp32:esp32s3 sketchbook\test
- 업로드.
arduino-cli --config-file arduino-cli.yaml upload -p COM5 --fqbn esp32:esp32:esp32s3 sketchbook\test
- 컴파일, 업로드 동시 실행.
arduino-cli --config-file arduino-cli.yaml compile --export-binaries -u -p COM5 --fqbn esp32:esp32:esp32s3 sketchbook\test
- 클린.
arduino-cli --config-file arduino-cli.yaml compile --clean

- 모니터.
arduino-cli monitor -p COM7

arduino-cli monitor -p COM7
arduino-cli monitor -p COM7 -c 921600 --timestamp
arduino-cli monitor -p COM7 --config baudrate=921600
arduino-cli monitor -p COM7 -b esp32:esp32:esp32_family
arduino-cli --config-file arduino-cli.yaml monitor -p COM7 -c baudrate=921600

시리얼 포트 정보.
arduino-cli monitor -p COM7 --describe

=======================================
명령어.
=======================================

- arduino-cli upgrade.
ZIP로 설치했으면, 최신 ZIP을 받아서 실행 파일만 교체하면 됩니다.

- --config-file arduino-cli.yaml 로 설정파일을 지정하지 않으면 %LOCALAPPDATA%\Arduino15 폴더에 설치 됩니다.

- --verbose 플래그를 추가하면 세부 정보를 볼 수 있습니다. 컴파일, 업로드 등 오류 시에 유용.
arduino-cli --config-file arduino-cli.yaml core download esp32:esp32 --verbose

- 실행 옵션.
arduino-cli help
arduino-cli compile -h

- 버전.
arduino-cli --config-file arduino-cli.yaml version

- 설정.
arduino-cli --config-file arduino-cli.yaml config dump

- 설치된 코어 목록.
arduino-cli --config-file arduino-cli.yaml core list

- 설치된 보드 목록.
arduino-cli --config-file arduino-cli.yaml board listall

- 설치된 라이브러리 목록.
arduino-cli --config-file arduino-cli.yaml lib list

- 현재 연결된 보드 목록.
arduino-cli --config-file arduino-cli.yaml board list

- 업데이트.
arduino-cli --config-file arduino-cli.yaml update
arduino-cli --config-file arduino-cli.yaml upgrade
혹은
arduino-cli --config-file arduino-cli.yaml core update-index
arduino-cli --config-file arduino-cli.yaml core upgrade
arduino-cli --config-file arduino-cli.yaml lib update-index
arduino-cli --config-file arduino-cli.yaml lib upgrade

- 프로젝트 생성.
arduino-cli --config-file arduino-cli.yaml sketch new sketchbook\test

- 보드 정보. COM 포트 조회.
arduino-cli --config-file arduino-cli.yaml board details esp32:esp32:esp32s3

- 라이브러리 설치 방법.
조회.
arduino-cli --config-file arduino-cli.yaml lib search "ESP32-audioI2S"
설치.
arduino-cli --config-file arduino-cli.yaml lib install "ESP32-audioI2S"
설치 - 버전지정.
arduino-cli --config-file arduino-cli.yaml lib install "ESP32-audioI2S@3.4.2"
설치 - url.
arduino-cli --config-file arduino-cli.yaml lib install --git-url https://github.com/schreibfaul1/ESP32-audioI2S
설치 - zip.
arduino-cli --config-file arduino-cli.yaml lib install lib install --zip-path ""C:\Users\test\Downloads\ESP32-audioI2S-3.4.2.zip""

삭제.
arduino-cli --config-file arduino-cli.yaml lib uninstall "ESP32-audioI2S"
삭제 - 폴더 삭제.
arduino-cli.yaml의 directories.user 에 설정한 폴더에 libraries 폴더 삭제.

설치된 라이브러리 목록.
arduino-cli --config-file arduino-cli.yaml lib list



arduino-cli --config-file arduino-cli.yaml compile --export-binaries --upload --port COM7 "sketchbook\test" && arduino-cli monitor -p COM7 -c 921600

댓글

이 블로그의 인기 게시물

콘탁 Kontakt, KOMPLETE 저렴한 구입 방법.

대성 산업 탁상 시계 DS-173 메뉴얼

샤오신 패드 12.7 2025 사용기, 충전기에 대해.