현재까지 아두이노 IDE 2는 포터블을 지원하지 않고 있어서 소스코드를 분석을 통해 포터블로 수정할 수 있는지 확인해 보았습니다.
얼마나 많은 분들이 Arduino IDE를 포터블로 사용하는지는 모르겠습니다만 제 경우 무조건 포터블 버전으로 사용하고 있습니다.
왜냐하면 Arduino IDE의 설정 파일 뿐만 아니라 추가적인 보드들의 파일들이 기본적으로 C 드라이브에 설치가 되어 C 드라이브를 포맷하거나 또는 롤백하는 경우 이 설정 파일들도 모두 삭제되기 때문입니다.
그래서 저는 아래의 방법을 사용하여 Arduino IDE 1.x 버전을 포터블 버전으로 사용하고 있는데 Arduino IDE 2에서는 어떻게 사용할 수 있는 방법이 있는지 살펴보았습니다.
Arduino IDE 1.x 포터블 버전 설정
아래 이미지는 Arduino IDE 1.x 버전을 설치 후의 환경설정 창인데 스케치북과 환경 설정 파일이 모두 C:\User 밑에 위치하고 있습니다.
모든 스케치 및 설정 파일이 C:\User\<사용자명> 아래 폴더에 생성 및 저장되는 구조입니다.
만약 아두이노 IDE 1.x 버전을 포터블 형태로 사용하고자 한다면 Arduino IDE가 설치된 폴더 안에 “portable”이란 이름의 폴더를 생성하면 됩니다.
이렇게 portable 폴더를 생성 후 Arduino IDE를 재실행하여 환경 설정창을 다시 확인해 봅니다.
그러면 아래 이미지와 같이 스케치북과 환경 설정 파일인 preferences.txt 파일이 Arduino IDE가 설치된 portable 폴더 아래에 저장되도록 변경된것을 확인 할 수 있습니다.
이후 새로 설치되는 라이브러리와 각종 보드 관련 파일들도 이곳에 설치가 되며 만약 다른 컴퓨터를 사용하더라도 이 portable 폴더만 가져오면 이전과 동일한 환경에서 작업이 가능하여 편리합니다.
이런식으로 USB에 Arduino IDE를 옮기거나 다른 PC 혹은 드라이브에 옮기면 모든 환경을 이전과 동일하게 사용할 수 있습니다.
이렇게 설정함으로써 Arduino IDE 1.x를 완전한 포터블 형태로 사용이 가능합니다.
Arduino IDE 2.x 포터블 미지원
아래는 Arduino IDE 2인데 기본적인 UI는 비슷하나 여러 가지 기능들이 추가되고 코드를 완전히 새로 작성하여 버전업을 하였다고 합니다.
실행해 보니 처음 로딩시 조금 오래 걸리긴 하지만 빠른 빌드와 업로드 속도로 매우 만족스럽게 사용하고 있습니다.
이렇게 버전업된 Arduino IDE 2의 포터블 버전은 지원하지 않는것으로 보입니다.
아래 포럼의 내용을 보면 개발자가 추후에 portable 버전을 고려해 보겠지만 현재는 지원이 안된다고 합니다. (https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833)
제 경우 포터블이 아니면 많이 불편해서 어떻게 사용할 수 있는 방법은 없는지 github에서 아두이노 IDE 2.x 소스를 다운로드 받아 좀 살펴 보았습니다.
Arduino IDE 2.x 포터블 사용을 위한 소스 분석 실패
Arduino IDE 1.x 버전과는 달리 Arduino IDE 2.x 버전에서는 Arduino-CLI 와 Arduino-IDE 두개의 프로그램이 서로 연동되는 구조로 되어 있습니다.
사용하는 언어도 Arduino-CLI는 GO 언어를 Arduino-IDE는 JavaScript, HTML and CSS 언어를 사용한 electron을 베이스로 사용하고 있습니다.
게다가 위 2개의 프로그램 내에서 개별적으로 C:\Users\<사용자명> 폴더를 엑세스하여 여러 설정 파일들을 생성 및 사용하는 구조로 되어 있어서 이 두개의 프로그램을 모두 변경해야만 포터블 형식으로 만들수 있는것으로 보입니다.
그래서 이 두개의 프로그램에서 각 각의 설정 파일을 읽고 쓰는 부분의 코드를 수정하여 실행해 보니 아두이노 IDE 프로그램이 무한 재실행되며 제대로 실행이 되지 않았습니다.
며칠 후 정확하지는 않지만 검색을 통해 두개의 다른 프로그램인 Arduino-CLI 와 Arduino-IDE간의 프로세서 통신을 위해 gRPC(Google Remote Procedure Call)을 사용하는데 두 프로그램의 설정이 안맞아서 그런거 같은데 정확한 원인을 모르겠습니다.
이 문제는 추후 천천히 분석해 봐야할 것 같아 Arduino IDE 2.x 버전의 포터블 버전은 포기하고 아래 차선책을 사용하는 방법으로 선회를 하였습니다.
아두이노 IDE 2 포터블 차선책
처음 시도해 본 방법은 VScode와 포터블용 Arduino-CLI로 빌드 환경을 구성하는 방법입니다.
이전에 분석했던 Arduino-CLI의 소스에서 설정 파일 생성부분을 C:\Users가 아닌 Arduino-CLI.exe가 있는 프로그램 디렉터리 내에 생성하도록 소스를 수정하여 포터블 전용 arduino-cli.exe 실행 파일을 생성후 VSCode에서 이 실행 파일을 사용하여 빌드와 업로드가 되도록 구성하였습니다.
이 방법은 GUI를 사용할 수 없지만 진정한 포터블 형식으로는 사용할 수 있는 방법입니다.
그러나 이 방법은 프로젝트별로 .vscode를 생성후 task.json을 만들어야 하고 각 보드별 FQBN(Fully Qualified Board Name) 이름을 설정해야 하며 CLI 관련 명령어도 상당히 알고 있어야 해서 사용이 불편합니다.
Arduino IDE를 사용하면 모두 GUI를 통해서 사용했던것들을 모두 타이핑으로 해결하려고 하니 너무 불편하여 몇 개의 프로젝트 테스트후 이 방법은 포기하였습니다.
두번째 방법은 Arduino IDE 2 프로그램은 그대로 사용하면서 설정 파일의 위치만을 옮기는 방법으로 현재 사용중인 환경입니다.
Arduino IDE 2를 실행하면 C:\User 밑의 디렉터리 여러곳에 아래 이미지의 4개의 설정관련 디렉터리들이 생성됩니다.(붉은색 사각형 참고)
이렇게 생성된 디렉터리들을 모두 Arduino IDE 2 디렉터리 안에 Settings 디렉터리를 만든후 모든 디렉터리들을 이동시켰습니다.
이렇게 이동시킨 후 원래의 디렉터리에 윈도우에서 지원되는 mklink를 사용하여 옮겨진 디렉터리로 심볼릭 링크<SYMLINKD>를 생성합니다. (아래 dir된 내용 참고)
c:\Users\xxx 디렉터리 2024-12-22 오전 11:13 <DIR> . 2024-12-22 오전 11:13 <DIR> .. 2024-12-22 오전 11:34 <SYMLINKD> .arduinoIDE [xxx\arduino-ide_2\settings\.arduinoIDE]
이런식으로 총 4개의 디렉토리 모두 심볼릭 링크를 생성하면 기존의 Arduino IDE 2를 그대로 사용할 수 있습니다.
만약 C 드라이브를 롤백하더라도 이 심볼릭 링크만 새로 생성하면 이전의 아두이노에서 사용했던 환경으로 복구할 수 있습니다.
간단한 방법으로 아두이노 IDE 2 프로그램을 정상적인 사용하면서도 설정 파일들을 유지 할 수 있어서 매우 편리한것 같습니다.
물론 진정한 포터블은 아니지만 제 환경에서는 최선의 방법인듯 싶어 현재 이러한 환경을 구성하여 사용하고 있습니다.