Translate

M5Stack Core2を使っていて遭遇したエラー。単純にケーブルの問題とCOMポートの問題だった。

M5Stack Core2を使用している中で、一つエラーに遭遇したので備忘録として残しておきます。M5Stack Core2は手軽にArduinoを扱えるのですが、普段pythonでやっている感覚とはなんか違うエラーが出るので、毎回調べるのに時間がかかります。正直マイコンとかArudino(C++)は初心者なので行き当たりばったりです。

今回はコンパイルを走らせてすぐに発生したエラーでUSBケーブルが原因だったケースについて簡単に紹介したいと思います。


コンパイルを走らせてすぐのエラー。原因はケーブルとCOMポートの番号だった。



実際に遭遇したエラーコードは以下の内容でした。

Connecting.... Chip is ESP32-D0WDQ6-V3 (revision v3.1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: ec:64:c9:a0:a5:a0 Uploading stub... Running stub... A fatal error occurred: Invalid head of packet (0x0A): Possible serial noise or corruption. Failed uploading: uploading error: exit status 2

使用機器はいつものM5stack Core2をつないで書き込みを走らせたところでした。そうすると上記のエラーが書き込みを開始してすぐに発生してどうしようと悩みました。普段のエラーだと該当箇所のコードがハイライトされるのですが、今回はそれが表示されなかったので、それ以前のパートで起こっているエラーであることが想定されます。Uploading error とか書かれているので、そもそものM5stack Core2との通信がうまくいっていないような気がする。

思い当たる部分としてちょうどデスクトップPCで作業するにあたって、直前にUSB-TypeCのケーブルを長いの変更していたのですが、そこがどうも怪しい。

ということで、USBケーブルを別のものにして実施。するとまだ同じエラーが出現していました。

M5stack Core2を一度抜き差ししていたので、該当するCOMポートが変わってしまっていたのが原因でした。再度COMポートを指定し直して実行したところ、問題なく書き込みが走るようになりました。

あんまり意識していなかったのですが、USBケーブルには充電だけに対応しているものと、充電と通信にも対応しているものがあるらしく、今回のエラーのメインの原因はそこにあったといえます。かなり初歩な部分でエラーを起こしてしまったようだった。

長いUSBケーブルになればなるほど、充電専用になっているものが多い印象があるので、実際にArudinoの書き込みにリーチが長くて使いやすいからという理由で、安易に使用するのは気を付けたほうがいいかもしれません。最も確実なのはM5stack Core2を購入時の同梱しているUSBケーブルを使うのが間違いないですね。コネクタの部分にM5と彫られているのですぐにわかると思います。

思えば昔Kinectに長いUSBケーブルをつないだ時にも同じような現象に遭遇していました。

なにはともあれ、無事にM5stack Core2の書き込みが走るようになったので良しとしよう。