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
댓글
댓글 쓰기