【初心者向け】ArduinoIDEでコンパイル(ビルド)や書き込みができない時に見てください
-
ArduinoIDEを使っている場合に、インターネットで公開されているスケッチやM5Stackライブラリのサンプルをビルドしようとしてもできないという場合があります。バグの可能性もありますが、多くはスケッチが作成された日時が古く、対応しているボードのバージョンやライブラリのバージョンが合わないという場合が多いです。
その場合は下記の対処をしてみてください。
①スケッチやArduinoIDEを格納するフォルダに日本語を含むものを使わない。
日本語を含むフォルダ名を使用すると、予期せぬ動きをすることがあります。ユーザー名に日本語を使ってしまっている場合はZip版をダウンロードしてポータブル版を利用することをおススメします。(※ポータブル版はArduinoIDE 1.xのみの機能でArduinoIDE2.0では使用できないので注意してください。)
②コンパイルエラーの対処
(1)ArduinoIDEの自動アップデート機能に注意
ArduinoIDEには起動時に、ボードとライブラリのバージョンを自動的に確認して、メッセージを表示し全てをアップデートしてしまうという機能があります。
ボードのバージョン(ボードマネージャーで管理できます。)
むやみにバージョンを上げる必要はありません。Arduino-esp32や使われているESP-IDFの機能はバージョンアップが激しく、バグも存在しているのでバージョンアップしてしまうとコンパイルができなくなったり、動かなくなることもあります。
ライブラリのバージョン(ライブラリマネージャーで管理できます。)
ライブラリも開発が活発なものがあり、仕様変更が多いものもあります。その場合はバージョンを下げてみてください。
(2)ボードやライブラリのバージョンアップの目安
スマホやPCのOSやアプリのようにむやみにアップデートする必要はありません。下記の項目に当てはまる場合のみで大丈夫です。(新機能を絶えず追いかけたいという方やエラーメッセージを読んで対処できる方は別です。)
-
自分が遭遇した不具合が解消された時
-
自分が使いたい機能が実装された時
③書き込みエラーの対処
(1)デバイスが見つからない
デバイスがPCに認識されない場合は下記の点をチェックしてみてください。
USBケーブルの裏表を逆にしてみる
オカルトのようですが、USB-TypeCのコネクタを裏返すと書き込める場合があります。
USBケーブルを変えてみる
たまに品質の悪いケーブルがあるようなのでUSBケーブルを変えて試してみましょう。特にUSB-TypeC - USB-TypeCケーブルは機能しない場合が多いようです。
接続するポートを変えてみる
USB3.0ポートやUSB Type-Cポートだと書き込めず、USB2.0だと書き込めた場合もあるようです。
デバイスドライバを変更する。
OS標準のドライバで認識しない場合もあるので、下記のリンクからデバイスドライバをダウンロードして入れ替えてみてください。
(2)ポートが使用中でエラーになる
他のソフトでシリアル通信を使っている場合、ポートが使用中です・Access is denied.といったエラーが表示される場合があります。
-
3Dプリンタのスライサー Curaは要注意。起動しているだけでエラーが出たり書き込みが不安定になります。
-
USB機器を最低限にする。
USBの機器でシリアル通信を阻害するタイプの物もあるようです。可能な限りUSB機器を最小限にして書き込みを行ってみてください。 -
他の開発ソフトでシリアルポートを開いている。
VisualStudioCode+PlatformIOやを併用しているしている場合に、VSCodeでシリアルモニターを接続していたり、他のソフトでシリアルポートを開いていると書き込みできません。他のソフトを確認してみてください。
(3)デバイスにプログラムを転送中にエラーが出る。
M5Stack系
- 書き込む直前にリセットをかける。
- 書き込む直前にリセットボタンを2秒以上長押しする。
④壊れたかな?と思ったとき(文鎮化してしまったとき)
M5BurnerかEasyLoaderを使って一旦Eraseした後に、その機種のFactoryTestを書き込んでみてください。M5BurnerにFactoryTestが無い場合はそれぞれのドキュメントページにEasyLoaderがあるのでダウンロードしてください。
④それでも解決しない場合は新しいトピックを作成して質問してください。
以下の情報を用意してフォーラムでTopicを作成してください。
- エラーメッセージ(コード)の詳細
画面に表示しきれない場合もありますので分からない場合はなるべく全部をコピペしてください。 - ArduinoIDEのバージョン
- ボード(esp32やM5Stack)のバージョン
- 使用しているライブラリのバージョン
-