【M5】AtomicTFが2022年Arduino環境で動作しなくなった<昔の環境に戻す>

M5Stack社で販売しているマイクロSDカード(TFカード)ユニットが最近(2021年後半から?)のESP32環境で動作エラーが発生する問題にぶつかりました。1年ほど使ってなかったのですが、2022年11月の最新環境では、GPIOエラーがでてしまって、動作NGとなりました。
●発生したエラー
製品HPからGITに乗っているサンプルプログラムソースAtomic_TF.inoをコピーして、コンパイルします。
https://github.com/m5stack/M5-ProductExampleCodes/blob/master/AtomBase/AtomicTF/AtomicTF.ino
コンパイルが通ってUSBシリアルでモニターすると、下記のように、
E (82) gpio: gpio_set_level(226): GPIO output gpio_num error
がSPIのアクセス行で際限なく発生します。実行命令は動いていて、sdカードにファイルができているのですが、gpioのエラーコーションが再現なくでてくるので、プログラムとしては、NGとなってしまいました。
買ったときは、一発で動作した記事があります。2021年1月26日投稿
【M5】ATOMIC TFカードキットいじってみた<テストプログラム動作OK>
これを見ても、当時の環境バージョンを詳細に記録してなかったので、この当時に戻せなくなりました。

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13160
load:0x40080400,len:3036
entry 0x400805e4
M5Atom initializing…OK
E (82) gpio: gpio_set_level(226): GPIO output gpio_num error
E (83) gpio: gpio_set_level(226): GPIO output gpio_num error
E (84) gpio: gpio_set_level(226): GPIO output gpio_num error
E (89) gpio: gpio_set_level(226): GPIO output gpio_num error
・・・・・・・・・・・・・・・・延々とエラーが続きます。

●エラーの検索で事例がなかなか見つからない。
 検索しても、日本語での記事は皆無で、英語の記事でもなかなか当を得た内容の記事がありませんでしたが。
ようやく、見つかりました。
「ESP32 for Arduinoでの問題の話題」
ESP32ボードをTFTDISPLAYにSPIで接続した場合同様のエラーが発生した課題のやりとりです。
https://github.com/Bodmer/TFT_eSPI/issues/1851

なんと、ESP32for Arduino ver2.03ではこのエラーが発生するが、
ver 2.02では発生しないとの回答でした。

Bodmer commented on May 27

This is a problem associated with the latest 2.0.3 ESP32 board package.

Board package versions 2.0.2 and earlier do not have this problem.

It appears there is a new software team working on the ESP32 board package and recent changes are breaking many useful Arduino libraries that are unlikely to get updated for one rogue board package.

The issue has been raised here, the answer is to include a debug message switch for this case but we will have to see what happens.

In the meantime your solution is a valid workaround.

■製品としてまずいんじゃないかと思うのですが、中国製ではしょうがないと思う。
AtomicTFは、ここ三年間、プログラムもライブラリも更新されてないので、ESP32,Arduinoの最新版へ対応する作業を開発元がやってないのが原因だと思います。売れないモジュールなので、放置されたみたいです。
スイッチサイエンスさんに相談すれば、丁寧に対応してくれるかもしれませんが、これから買いもしないのに
いろいろ言うと、クレーマーだと思われてしまうので、今回は、自責で解決することにしました。
●eps32 for arduino ver2.02に戻す手順
動作していた当時の環境に全部戻すことにしました。現在のArduino関係全部けしました。
①設定>アプリ>ArduinoIDE 1.8.19をアンインストール。

②プログラムとライブラリーも消すか移動
よくある場所:C>User>ドキュメント>Arduino>の中を空っぽにしておく。

③旧バージョンのArduinoIDEをZIP形式でダウンロード(重要)
ここでは、Arduino 1.8.13です。ここにあります。
https://www.arduino.cc/en/software/OldSoftwareReleases#previous

④ZIPを解凍して、ArduinoIDEをインストールする。

⑤インストールが終わったら、ボード開発元のURLを追加で入力。
ここでは、esp32 for Arduinoを使うので、本家espressifのURLを登録します。
Espressif社がEsp32forArduinoのインストール方法を解説してあります。
https://espressif-docs.readthedocs-hosted.com/projects/arduino-esp32/en/latest/installing.html

このページに、ArduinoIDEに設定するURLが載ってますので、コピーして、下記のように
ArduinoIDE  ファイル>環境設定>追加のボードマネージャーのボックスにペーストします。
stableLink:は、下記です。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

⑥ボードマネージャーにesp32を登録(インストール)
ツール>ボード>ボードマネージャ>ライプ 全て esp32 とボックスに入力して、数分待って
by Espressif  Systems  バージョン2.02 となるように、バージョンを選ぶ のコンボボックスで2.02にして
インストールボタンを押すと、しばらくして
by Espressif Systems バージョン 2.02 installed  となっていれば完了です。

⑦ライブラリーのM5atomをインストール
上記までで、Esp32 for Arduino2.02をインストールしてEsp32系のマイコンボードをArduinoIDEで選択することが
できるようになりました。⑦では、AtomicTFで使うマイコンM5Atom liteのライブラリーをインストールします。
スケッチ>ライブラリーをインクルード>ライブラリーの管理 でM5Atomを探します。
ここでは、古いババージョンの0.0.8をインストールします。M5Atomと入力してでてきたら、バージョンを選ぶ
で0.08を選択してインストールを押して、数分待ちます。

by M5Stack バージョン 0.0.8 installed
となれば完了です。
M5AtomのM5Stack社の正式解説ページ https://docs.m5stack.com/en/quick_start/atom/arduino

⑧サンプルプログラムのコンパイル 書き込み
⑦までで、M5Atomのコンパイル環境ができましたので、開発元が提供しているサンプルプログラムを
コピペして、ソースファイル AtomicTF.inoをつくってコンパイルして、AtomicTFのM5Atom liteへ書き込みます。
AtomicTFの製品解説ページ:https://docs.m5stack.com/en/atom/atomictf?ref=xv1poiblbsh

サンプルソース:https://github.com/m5stack/M5-ProductExampleCodes/blob/master/AtomBase/AtomicTF/AtomicTF.ino

コンパイル書き込み完了したら、AtomicTFに16GB以下のマイクロSDカードを挿しておきます。
M5Atomの左ポチスイッチを押すと、リセット起動するので、
シリアルモニターで、書き込みテスト結果が出力されていればOKで、環境設定が完成したことが確認できます。
下記のような出力がでたら完成です。

One thought on “【M5】AtomicTFが2022年Arduino環境で動作しなくなった<昔の環境に戻す>”

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です