コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2026年9月23日 >>> 2026年9月10日
link もっと後

2026年9月23日

Arduino CLIでM5Stamp C3に書き込む - ROCK 5Bでのコンパイル失敗

目次: Arduino

前回(2026年9月20日の日記参照)Arduino CLIをセットアップしました。今回はROCK 5Bでコンパイルしましたが、タイトルでネタバレしている通りうまくいきませんでした。無念です。

コンパイルのテストのため何もしないスケッチhello.inoを用意します。Arduinoはディレクトリ名と一致するソースコード名が必要で、例えばhelloディレクトリならhello/hello.inoが存在しないとエラーになります。スケッチには最低でもloop()関数とsetup()関数が必要ですから、とりあえず空の関数を書いておきます。

hello/hello.ino

void loop(void) {
}

void setup(void) {
}

Arduino CLIのcompileコマンドはボードのFQBN(Fully Qualified Board Name)を指定する必要があります。board listallで検索すると、M5Stamp C3用のFQBNは"m5stack:esp32:m5stack_stamp_c3"だそうです。

M5Stamp C3用のFQBN

$ ./bin/arduino-cli board listall | grep C3

M5StampC3      m5stack:esp32:m5stack_stamp_c3

これで必要な情報が揃いました。

コンパイル

さっき調べたFQBNとhello.inoを指定してcompileコマンドを実行すると……segmentation faultでクラッシュしました。えー、そんな。

ROCK 5Bでコンパイル、ダメそう
$ ./bin/arduino-cli compile -b m5stack:esp32:m5stack_stamp_c3 hello

Used platform Version Path
m5stack:esp32 3.3.9   /home/katsuhiro/.arduino15/packages/m5stack/hardware/esp32/3.3.9
Error during build: signal: segmentation fault

PCにインストールしたArduino CLIだとコンパイル成功するので、スケッチは無罪です。コンパイラ自体に何か問題が起きていそうです。

PC Linuxでコンパイル
$ ./bin/arduino-cli compile -b m5stack:esp32:m5stack_stamp_c3 hello

最大1310720バイトのフラッシュメモリのうち、スケッチが272094バイト(20%)を使っています。
最大327680バイトのRAMのうち、グローバル変数が13340バイト(4%)を使っていて、ローカル変数で314340バイト使うことができます。

ROCK 5Bはコンパイルが遅いかもなあ?くらいは想定していましたが、まさかコンパイラがクラッシュするとは思いませんでした。どうしようこれ。

編集者:すずき(2026/10/09 03:04)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2026年9月20日

Arduino CLIでM5Stamp C3に書き込む - Arduino CLIセットアップ

目次: Arduino

今まで家にあるM5Stack系ボード(M5Stack Core2やM5Stamp C3)にバイナリを書き込む際、WindowsからArduino IDEを使ってスケッチをコンパイルして書き込んでいました。しかしいつのタイミングかよくわかりませんが、コンパイルが死ぬほど遅くなってやってられなくなったためArduino CLIを試すことにしました。

環境はROCK 5BのDebian 13 Trixieにインストールしてみます。やる前から若干無謀な気がしていますが……これもコンパイルが遅すぎてやってられないようならバイナリだけLinux PCでコンパイルし、書き込みだけROCK 5Bで行う方法を探そうと思います。

セットアップ

初めにarduino-cliをインストール(Installation | Arduino Documentation)します。ディレクトリ名は適当で良く、カレントディレクトリのbinにインストールされます。

Arduino CLIインストール
$ mkdir arduino
$ cd arduino

$ curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh

Installing in /home/katsuhiro/share/projects/arduino/bin
ARCH=ARM64
OS=Linux
Using curl as download tool
Downloading https://downloads.arduino.cc/arduino-cli/arduino-cli_1.5.1_Linux_ARM64.tar.gz
install.sh: arduino-cli not found. You might want to add "/home/katsuhiro/share/projects/arduino/bin" to your $PATH
arduino-cli  Version: 1.5.1 Commit: 01f3d4f2b Date: 2026-06-05T10:22:11Z installed successfully in /home/katsuhiro/share/projects/arduino/bin

次にM5Stackのボードコンフィグを追加します。configの追加の仕方は色々あるみたいです(Configuration | Arduino Documentation)が、YAMLに設定を書き込むconfig init, config addが簡単そうです。デフォルトのコンフィグを変えてしまってよければ、config initを飛ばして最初からconfig addすれば良いようです。

現在の設定を確認するにはYAMLを直接見てもいいし、config dumpコマンドでも表示することができます。コンフィグYAMLファイルは~/.arduino15/arduino-cli.yamlにあり、M5Stackの設定ファイルはpackage_m5stack_index.jsonという名前ですね。

Arduino CLIにM5Stack用ボードコンフィグを追加
$ ./bin/arduino-cli config add board_manager.additional_urls https://static-cdn.m5stack.com/resource/arduino/package_m5stack_index.json


$ ls ~/.arduino15/

arduino-cli.yaml  library_index.json      package_index.json      package_m5stack_index.json  staging
inventory.yaml    library_index.json.sig  package_index.json.sig  packages                    tmp


$ cat ~/.arduino15/arduino-cli.yaml

board_manager:
    additional_urls:
        - https://static-cdn.m5stack.com/resource/arduino/package_m5stack_index.json

次はインデックス更新(Getting Started | Arduino Documentation)です。core update-indexコマンドを実行するだけです。インデックスがダウンロードされてズラズラ〜とパッケージの一覧が表示されます。

Arduino CLIインデックス更新
$ ./bin/arduino-cli core update-index

Downloading index: library_index.tar.bz2 downloaded
Downloading index: package_index.tar.bz2 downloaded
Downloading index: package_m5stack_index.json downloaded
Downloading missing tool builtin:mdns-discovery@1.1.0...
builtin:mdns-discovery@1.1.0 downloaded
Installing builtin:mdns-discovery@1.1.0...  
Skipping tool configuration....
...(略)...
builtin:dfu-discovery@0.1.2 installed
Downloading index: package_index.tar.bz2 downloaded
Downloading index: package_m5stack_index.json downloaded

次はM5Stack用のコア(という名前なのか?)をインストールします。今回用事があるのはM5Stack用のコアなので、m5stack:esp32をインストールします。もしその他のボードも持っているのであれば、core searchで探しましょう。core upgradeで古いコアをアップデートできます。

Arduinoは「ボードのブランド:マイコンのブランド or RTOS名」がコアの命名規則だと思われますが、あまり統一感がないですね。core searchの引数を指定しなければ全コアが表示されますので、名前を眺めてみると面白いかも。

M5Stack用のコアをインストール
$ ./bin/arduino-cli core search m5

ID            Version Name
m5stack:esp32 3.3.9   M5Stack


$ ./bin/arduino-cli core install m5stack:esp32

Downloading packages...
m5stack:esp-x32@2601 downloaded
m5stack:xtensa-esp-elf-gdb@16.3_20250913 downloaded
...(略)...
Installing arduino:dfu-util@0.11.0-arduino5...
arduino:dfu-util@0.11.0-arduino5 installed
Installing platform m5stack:esp32@3.3.9...
Platform m5stack:esp32@3.3.9 installed


$ ./bin/arduino-cli core upgrade

All the cores are already at the latest version


$ ./bin/arduino-cli board listall | grep C3

M5StampC3      m5stack:esp32:m5stack_stamp_c3

最後にboard listallコマンド(変な名前……)でM5Stamp C3がリストにあるか確かめます。左がボード名、右がFQBN(Fully Qualified Board Name)でcompileコマンドの-bオプションに指定する文字列です。ちなみにboard listコマンドは接続中のボードを表示する全く別のコマンドなので混同しないようにしましょう。M5Stamp C3が一覧に出ていれば、C3向けにコンパイルできるはずです。

次はコンパイルに挑みます。

編集者:すずき(2026/10/09 03:07)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2026年9月23日 >>> 2026年9月10日
link もっと後

管理用メニュー

link 記事を新規作成

<2026>
<<<09>>>
日月火水木金土
--12345
6789101112
13141516171819
20212223242526
27282930---

最近のコメント5件

  • link 26年7月26日
    すずきさん (08/06 12:27)
    「ダイバート便以外もバスなんですよねえ。私...」
  • link 26年7月26日
    hdkさん (08/06 08:41)
    「あの規模の空港だとダイバート便にまでボー...」
  • link 26年7月14日
    すずきさん (07/31 11:48)
    「補充して乗れるのはまあそうなんですけど、...」
  • link 26年7月14日
    hdkさん (07/22 08:37)
    「冷却水漏れなんて、修理するまでは補充して...」
  • link 26年1月23日
    すずきさん (01/29 09:48)
    「おおー、そんな昔からなんですね。歴史感じ...」

最近の記事3件

  • link 23年6月2日
    すずき (10/11 02:50)
    「[Arduino - まとめリンク] 目次: ArduinoM5Stackとesp32とArduinoM5Stamp C3のA...」
  • link 26年10月4日
    すずき (10/11 02:50)
    「[Xfce4の設定をCUIから読み書きする方法] 目次: ArduinoもはやArduino全然関係ないですが、Arduino...」
  • link 26年10月2日
    すずき (10/11 01:28)
    「[ROCK 3C + Debian 12 + Xfce4にアップデート] 目次: Arduino以前作ってTarget-1で稼...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 2026年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 10/11 02:50