M5StackがUSB経由で書き込みできなくなった時
おそらく稀なケースだと思われるのですが、私が使っていたCore2 awsがUSB経由でパソコンに繋いでも、シリアルとして認識されないようになってしまいました。
今回、MBUSに出ているシリアルを利用して、ファームウエアの書き込みができたので、備忘録的に書いておきます。
以下は、Core2 awsで確認しました。
この文章の内容は非保証です。作業は自己責任で行なってください。
MBUSをUSBシリアル変換器につなぐ
以下のようにUSBシリアル変換器をMBUSに接続します。
TXとRXは入れ替えて結線することに注意してください。
table:USBシリアル結線
MBUS GPIO USBシリアル変換器
5V - 5V
GND - GND
TXD0 GPIO1 RX
RXD0 GPIO3 TX
例えばCore2のピン配置は、以下のようになっています(図はM5Stack公式M5Core2から引用、改変)。 GNDは、3つある端子のどれに繋いでも構いません。
https://gyazo.com/afaa0b466e8772afb45a01c05a377ef4
私の場合、以下のように結線しました。
https://scrapbox.io/files/66a0a16ffebc3b001cb73392.svg
シリアルの動作確認
接続が終わった後で、最初にM5Burnerシリアルモニターでシリアルが動作していることを確認します。
ハンバーガーメニューからSerial Monitorを選択して、シリアルモニターを起動します。
https://gyazo.com/6505bc1b3f611c5dc8b9fb20bc7cd7f0
正しく接続されていると、リセットを押した時に、例えば以下のように起動メッセージが表示されるはずです。
表示されない場合は、特にTXとRXの結線が反対になっていないか注意して確認してください。
https://gyazo.com/eb1a757f43c6df97aeb97b4ec172d8a6
ファームウエアの書き込み
この状態でファームウエアを書き込みしようとしても、"Connecting..."から進まない場合があります。
https://gyazo.com/980555cdc02891c69bd3de4a208cb961
この時は、強制的にダウンロードモードにしてください。
強制的にダウンロードモードにするには、以下のようにGPIO0とGNDを接続して起動します。
https://gyazo.com/50e1efce0a00764887d08c917264eb1d
この状態で起動すると、ダウンロードモードになり、ファームウエアの書き込みができる状態になります。
おまけ:アプリケーションをSDカードから読み込むBinpacks
このようにMBUS経由でファームウエアを書き換えることができるようになったのですが、アプリケーションを書き換えるたびにMBUSにシリアルを接続して…という作業を行うのは大変です。
標準的なアプリケーション以外にも自分で対応するアプリケーションを作成することができます。
参考文献