ぷるぷるの雑記

低レイヤーがんばるぞいなブログ. 記事のご利用は自己責任で.

ArduinoIDEのフォルダ構成

環境

項目 説明
OS Windows11
ArduinoIDE 2.1.0

esp32パッケージv2.0.6を別途インストールしています

全般的なファイル・フォルダ

フォルダ 説明
C:\Users\<ユーザー名>\AppData\Local\Programs\Arduino IDE\Arduino IDE.exe Arduino IDE本体
C:\Users\<ユーザー名>\AppData\Local\Arduino15\package_index.json インストール可能なパッケージとリポジトリ情報
C:\Users\<ユーザー名>\AppData\Local\Arduino15\library_index.json インストール可能なライブラリとリポジトリ情報
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages インストール済みのパッケージ(ビルドツールやプログラマやライブラリ)
C:\Users\<ユーザー名>\AppData\Local\Programs\Arduino IDE\resources\app\node_modules\arduino-ide-extension\Examples ビルトインスケッチのExamples
C:\Users\<ユーザー名>\AppData\Local\Programs\Arduino IDE\resources\app\node_modules\arduino-ide-extension\Examples\examples.json ビルトインスケッチのExamplesの表示内容やパス
C:\Users\<ユーザー名>\Documents\ArduinoData\preferences.txt 設定

パッケージ = ライブラリ + ビルドツール + プログラマ という感じ

余談

Arduino IDE.exeはElectronで作られてるっぽい. node_modulesフォルダ内にもフォルダが大量にある.

Arduino AVR Boards パッケージのファイル・フォルダ

項目 説明
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6 Arduino AVR Boardsパッケージのフォルダ
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\boards.txt ボード名やポートのアドレスやアップロード時のボーレートなど
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\platform.txt コンパイラプログラマの設定など
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\programmers.txt プログラマの設定
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\tools ビルドツールや書き込みツール
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\tools\avrdude 書き込みツール
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin\avrdude.exe 書き込みツールの実体
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc ビルドツール
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\lib\ldscripts リンカスクリプト
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\lib ビルド済みランタイム、標準ライブラリ

esp32 パッケージのファイル・フォルダ

項目 説明
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6 esp32パッケージのフォルダ
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\boards.txt ボード名やポートのアドレスやアップロード時のボーレートなど
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\platform.txt コンパイラプログラマの設定など
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\programmers.txt プログラマの設定
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\tools ビルドツールや書き込みツール
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\tools\esptool_py 書き込みツール
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.2.1\esptool.exe 書き込みツールの実体
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\tools\xxx-elf-gcc ビルドツール
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\tools\xxx-elf-gcc\gcc8_4_0-esp-2021r2-patch5\lib\ldscripts リンカスクリプト
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\esp32\tools\xxx-elf-gcc\gcc8_4_0-esp-2021r2-patch5\lib\gcc\xtensa-esp32s2-elf\8.4.0 ビルド済みランタイム、標準ライブラリ

boards.txt

主に以下の情報が定義されている. 実際はパッケージによって書かれている内容がまちまち.

  • Arduino IDE上に表示されるBoard名
  • プログラムのアップロード(書き込み)時に利用するツール

platform.txt

主に以下の情報が定義されている. 実際はパッケージによって書かれている内容がまちまち.

programmers.txt

主に以下の情報が定義されている. 実際はパッケージによって書かれている内容がまちまち.

  • Arduino IDE上に表示されるProgrammer名(ボード名の一つ上の階層の部分)
  • プログラムのアップロード(書き込み)の設定

パッケージの追加方法

パッケージを「C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages」に置くだけでArduino IDEが起動時に自動的にパッケージを認識してくれる. 例えば、esp32フォルダをコピーしてArduino IDEを起動すると、全く同じ項目が名前違いで2つ表示される.

packagesフォルダにパッケージを配置

名前こそ違うが、全く同じplatformが2つ表示される

まとめ

  • 各ボードごとのツール一式をパッケージという
  • ボードごとの情報はテキストファイルやjsonファイルに書かれている
  • ビルドツールと書き込みツールは各パッケージごとに含まれている

参考

qiita.com

synapse.kyoto

stupiddog.jp