現時点の情報です。最新情報はM5StickC非公式日本語リファレンスを確認してみてください。
概要
M5StickCが動かないことがたまにありますが、調査方法と解決方法をまとめてみました。
MacなどでType-CしかないパソコンでType-C to Type-Cケーブルを利用しようとすると、青ネジありバージョンでないとケーブルが認識しません。本体に付属しているType-A to Type-CケーブルをUSB Hubなどを利用して接続してみてください。
電源編
M5StickCは電源が入っているか非常にわかりにくいです。液晶の初期化をしていない場合にはバックライトも光らないので、電源が入っていても気が付かない場合があります。
確認方法
電源ON、OFFの方法

電源ボタンはM5のホームボタンの左側面にあるボタンです。
- 電源ON:1秒以上ボタンを押す
- 電源OFF:6秒以上ボタンを押す
どっちの状態かわからないので、電源ボタンを10秒ぐらい押して、確実のOFFにしてから、再度3秒程度押して確実の電源ONの状態になっていることを確認してください。
電源状況の確認方法(3.3V出力確認)
M5StickCは電源ONのときのみ3.3V出力がされます。3.3V出力があれば電源が入っていることが確認できます。

あまり、おすすめはできない方法ですが、LEDを使って起動確認ができます。LEDの足の長い方(プラス)を3V3の端子にさして、短い方(マイナス)をその右の5V INにさしこみます。(本当はGNDに入れるのが正しい)

ちょっと画像ではわかりにくいですが、ほんのり光れば電源がはいっています。ちなみに抵抗なしでLEDを使っているので、LEDが壊れる可能性があります。5V出力に接続すると確実に壊れると思います。
電源状況の確認方法(パソコン接続)
パソコンに接続してみて、認識すれば電源が入っています。電源OFFの状態でもパソコンに接続することで自動起動します。
しかしながら、最後にいれたスケッチが自動的にディープスリープしたり、起動直後に再起動を繰り返す場合にはうまく認識しない可能性があります。
対策
USBケーブルを他のものに変える(or反対にさす)
付属のUSBケーブル以外を利用している場合には、付属してきたUSBケーブルを使ってみてください。付属以外のUSBケーブルの場合パソコンに認識しにくい傾向があります。

手元の環境で試したところ、Type-Cの充電器からは充電することができませんでした。パソコンとType-C to Type-Cのケーブルで接続したところ、上の写真で左側にある青いRTC表記があるバージョンでのみ接続ができました。それ以外の古いバージョンでは認識も充電もしませんでした。
Type-Cしかないパソコンの場合にはUSB Hubや変換コネクタなどを利用して、付属してきたType-A to Type-Cケーブルを利用してみてください。
上記に検証結果が書いてあります。USB Hubか、他のデバイスを先に認識させる必要があります。
また、USB Type-Cなのでケーブルコネクタに方向はないはずですが、180度回転させてさしてみてください。ケーブルにより接触不良があるようで、どちらか接続しにくい方向がある場合があります。
充電してみる
一度使えた状態で動かなくなった場合に最初にためすのは充電です。最後に利用してから時間がたったM5StickCはバッテリーが放電してしまって、起動しない場合があります。
その場合には1時間程度充電した状態で、再度起動を試してみてください。
BATとGNDをショートさてUSB接続
バッテリー過放電時に、保護回路がはたらいて起動できなくなる場合があるそうです。その場合にはBAT端子とGND端子をショートさせて、USBケーブルでパソコンに接続すると復活するとのことです。
ただし、古いM5StickCのみで起こる問題であり、最近にものは対応されているみたいです。
ショートは抵抗なしでも保護回路があるので問題ありませんが、1KΩなど適度な抵抗を入れたほうが安全とのことです。
The reason is the voltage of battery is too low, it will lock itself, u can short bat and gnd, it will unlock again. We fix this problem at now version, u can check our new model.
— M5Stack (@M5Stack) December 6, 2019
ショートしてからUSBを接続するとすぐにリセットされるとのことでした。
※(2020/09/17追記)手元の比較的新しい固定用の穴があるバージョンで画面がつかなくなる事象が発生しました。動作確認したところ、IMUなどは正常でAXP192のみおかしくなっています。この状態だと液晶に電源が供給されずに画面がついていないようです。BAT端子とGNDをジャンパー線で直結してからUSBをパソコンに接続すると、バックライトがつくのが確認できますので、直結しているジャンパー線を外すと復活しました!
認識編
M5StickCはパソコンに接続しても、認識しないことがあります。
確認方法
M5Burner
上記サイトからダウンロードできる、M5Burnerが確認にはおすすめです。M5Stack社標準のファームウエア転送ソフトであり、WindowsとMac、Linux用のアプリがあります。

Windowsで起動した直後の状況です。M5StickCを接続していない状態でCOMを選択してみてください。このパソコンではCOM1が標準でありました。

この状態でM5StickCを接続すると、COM3が増えました。このときM5StickCは電源が切れている状態でも、接続することで自動的に電源が入ります。このパソコンはCOM3が増えましたが、環境により連番で追加されるので他の番号で認識されることがあります。
Windows以外はでCOMの名前は違いますが、動きは同じはずです。
Windowsデバイスマネージャー
Windowsの場合にはデバイスマネージャーを起動することで、内部的な状態を確認することもできます。

上記がM5StickCを接続していない状態です。私のパソコンはCOM1が標準でありました。

M5StickCを接続するとCOM3が増えました。このパソコンはCOM3が増えましたが、環境により連番で追加されるので他の番号で認識されることがあります。
ちなみにCOMの番号が書いていない、USB Serial Port以外が増えた場合には、認識がうまくいっていないので対応が必要です。
対策
USBドライバを入れてみる
- Virtual COM Port Drivers(FTDI)
Arduino IDEを入れている環境であれば、通常標準ドライバが同時に入っているはずですが、上記のドライバを入れ直すことで認識するようになる場合があります。
Windows環境の場合には「setup executable」を使うのがかんたんだと思います。
USBケーブルを変える
とくにMacBookなどの、Type-Cしかない環境の場合、本体に付属しているケーブル以外を利用していると思います。
M5StickCは5V INが青い最新バージョン以外はType-C to Type-Cケーブルでは認識しないみたいです。できれば付属のType-A to Type-Cケーブルを変換などして試してみてください。

このM5Stack Intfで認識されている場合が、典型的なケーブルの相性問題です。付属以外のケーブルか、延長ケーブルやUSB HUB、USB電圧電流チェッカーなどの間に挟んだものによって、信号が弱くなっているなどの場合があります。
USBケーブルの裏表を変える
USB Type-Cなのでケーブルコネクタに方向はないはずですが、180度回転させてさしてみてください。ケーブルにより接触不良があるようで、どちらか接続しにくい方向がある場合があります。
他の場所にさしてみる
別のUSBポートにケーブルをさしかえてみるのも試してみるといいと思います。パソコンによっては本体直結のUSBポートと、内部でUSB HUBを経由しているポートなどがわかれている場合があります。
Windowsで試す
おおくの場合MacOSで問題がでています。UIFlowなどのように一度しか転送しないものであれば、Windowsなど他の環境でためしたほうが簡単に利用できるはずです。
MacOSの場合にはType-Cポートしかない関係で、本体付属USBケーブルを使っていないケースと、シリアルドライバの関係で書き込みモードに入れない問題などがあります。
ファームウエア転送編
M5StickCでは、ファームウエアを転送しようとするとタイムアウトしてしまい、転送できない場合があります。
確認方法
M5Burner
Arduino IDEなどファームウエアを転送できるツールならばなんでもいいのですが、ボタンを押すと即転送できるM5Burnerが確認しやすいです。

ツールの使い方ですが、左側から転送するプログラムを選択します。上記ではUIFlow-v1.4.5を転送しようとしています。UIFlowの一番新しいものマウスカーソルを乗せると現れる↓矢印ボタンを押すと、ファームウエアをパソコンにダウンロードして、M5StickCに転送できるようになります。
右側のCOMを接続しているM5StickCのCOMに変更し、SeriesをStickCに選んでからBurnをおします。
Connectingと出て、…がたくさん表示されています。私のパソコンの場合にはCOM3がM5StickCのシリアルポートなので、上の画像のようにCOM1を選択しても転送はできません。

正常に書き込めると、上記のようにどんどん表示が進んでいって、最後に「Hard resetting via RTS pin…」と表示されて、M5StickCがリセットされてUIFlowの画面が表示されます。
対策
ESP32では、ファームウエアの転送をする場合には再起動してから、GPIO0をGNDに落とすことで、書き込みモードに設定しています。
通常は自動的に書き込みモードに設定されるのですが、環境によっては書き込みモードにはいらない場合があります。
電源を入れ直す
Connectingと出て、…がたくさん表示されているときに、M5StickCの電源ボタンを6秒以上押して、電源OFFにしたあとに再度電源ボタンを1秒以上押して、電源ONにします。
おもったより6秒は長いので、少し長めにボタンを押しているのがコツとなります。転送待ちのときに再起動をすると、かなりの確率で書き込みモードになり、転送が成功します。
Windowsで試す
おおくの場合MacOSで問題がでています。UIFlowなどのように一度しか転送しないものであれば、Windowsなど他の環境でためしたほうが簡単に利用できるはずです。
MacOSの場合にはType-Cポートしかない関係で、本体付属USBケーブルを使っていないケースと、シリアルドライバの関係で書き込みモードに入れない問題などがあります。
GPIO0とGNDをショートさせる

起動時にGPIO0がGNDに落ちていると、書き込みモードとして起動します。接続した状態で書き込みを試すと成功するはずですが、COMが認識されているが、転送が成功しない場合には電源を入れ直すと同じようにConnectingと出て、…がたくさん表示されているときに、M5StickCの電源ボタンを6秒以上押して、電源OFFにしたあとに再度電源ボタンを1秒以上押して、電源ONにします。
転送が完了したあとには線を抜いてから、再起動しないと通常起動しませんので注意してください。
(MacOS)USBコントローラーファームウエアアップデート
MacOSの場合、USBコントローラーのファームウエアを更新することで、書き込みができるようになるそうです。
上記ページに対応ファームウエアが公開されております。
chmod +x ch552Updater_FW20200114_A2_BTV231
コマンドですがページでは+とxの間にスペースが入っていますが、本来は入らないはずです。
Arduino IDEで書き込めない
M5Burnerで書き込めるが、Arduino IDEで書き込めない場合には最新バージョンのArduino IDEを利用してみてください。
MacOSの場合には、とくに書き込めないケースが目立ちます。
まずは最新版をいれてみて、だめだった場合には右下にあるBETA BUILDSのバージョンも試してみてください。
MacOSバージョンアップの関係で、BETA版でないと動かないなどの報告がでています。
液晶編
起動やファームウエアの転送ができるが、画面がおかしい場合があります。
一番端のラインが表示されない
画面ぎりぎりにケースがあり、一番端っこのラインは表示されないM5StickCが多いと思います。これは回避しようがないので、外周に重要な情報はあまり出さないようにしてください。
画面(バックライト)がつかない
バックライトを管理しているAXP192の保護回路が動いた場合、バックライトがつかなくなることがあるそうです。
USBに接続した状態でBAT端子とGND端子をショートさせると、保護回路がリセットされるとのことでした。
ショートは抵抗なしでも保護回路があるので問題ありませんが、1KΩなど適度な抵抗を入れたほうが安全とのことです。
画面表示がおかしい、画面が表示されない
画面が表示されなかったり、表示が荒れるなどの症状がでている人がいるようです。確実に動くファームウエアを転送しても画面がおかしい場合にはハードウエア起因のトラブルと思われます。
M5StickC本体内部にある磁石が衝撃ではずれて、内部の別の場所に移動して、回線をショートさせたり、内部の配線が断線しているパターンなどがあるそうです。いずれにしてもなかなか対応は難しいので、サポートに連絡して交換してもらうか、新しい本体を購入し直すかしかないと思います。
パソコンのマウス暴走編
M5StickCなどをWindowsパソコンに接続すると、パソコンのマウスが暴走することがあります。
まずは原因と思われるM5StickCなどを取り外します。
その後デバイスマネージャーを開き、表示メニューの中にある「非表示のデバイスの表示」でマウスの項目を確認します。

上記のようにMicrosoft Serial BallPointとMicrosoft Serial Mouseがある場合には、接続したデバイスのシリアル出力がマウスとして認識されてしまっています。
そのため、この2つのドライバをアンインストールすると暴走しなくなります。接続したタイミングでシリアル出力されている文字などにより、シリアルマウスと誤認識するみたいです。
レジストリを編集することで、今後シリアルマウスとして認識しないようにすることは可能みたいです。
特定機能が動かない(RTCなど)
パソコンに認識していて、スケッチの転送はできるがプログラムが起動しない場合があります。
初期化スケッチ
上記のような設定を初期化するスケッチを動かすことで、問題が解決する場合があります。このスケッチでWi-Fi設定とRTCの時間が進まない問題は解決するはずです。
M5Burnerでフラッシュ初期化

M5BurnerでCOMを選択してから、右上にある「Erase」ボタンを押すと、フラッシュの内容がすべて初期化されます。
フラッシュにおかしなデータが入っている場合にはEraseをすることで復活する可能性があります。Erase後に他のファームウェアやスケッチを転送し直してためしてみてください。
ボタン故障
ボタンの調子が悪い場合には物理故障の場合があります。この場合には対応方法が無いかな、、、
その他故障
ファクトリーテストで確認
各種スケッチで初期化を確認してNGの場合、その部品が壊れている可能性があります。AXP192などが初期化できないケースが確認できていますが、ハードウエア故障は対処できないとは思います。
予防編
使い終わったら上書き
画面の初期化をしていないコードを動かしたままだったり、再起動を繰り返す状態でM5StickCを保存したりすると、起動したときに問題が起こりやすいです。
特にUSBキーボードやマウス動作をする状態で保存しておいて、あとで接続すると急にパソコンがおかしな動きをしているように見えるので初期化しましょう。
上記のような初期化スケッチか、販売時に入っているファクトリーテスト、もしくはUIFlowなどの画面がでて確実に起動したことがわかるファームウエアに上書きしてから保管しておくことをおすすめします。
定期的に起動(充電)する
M5StickCには内蔵RTCがあり、時刻を保存するために電源OFFでもバッテリーを消費します。そのため、たまに起動したり充電したりすると問題が起きにくいです。起動時のトラブルは、バッテリーの過放電に起因する問題が非常に多いです。
参考サイト
上記サイトにもまとまっているので、参考にしてみてください。
まとめ
それなりの頻度で書き込めない話題がでていましたので、把握している限りの対処方法を記述してみました。
コメント