M5Stamp Picoでできること 〜スケッチが書き込めない原因

これまで「M5Stamp Pico」を何台か購入し、さまざまな用途のIoTデバイスとして使ってきました。

今回、再度「M5Stamp Pico」を購入したのですが、いざ使おうと思ったところ、Arduino IDEからスケッチが書き込めないという問題が生じました。
書き込み中に以下のようなエラーメッセージが表示されます。

Serial port /dev/cu.usbserial-XXXXXXXX
Connecting........_____....._____....._____....._____....._____....._____.....____スケッチの書き込み中にエラーが発生しました
_

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

今回購入したのは4台ですが、いずれも書き込みができません。

私は「MacBook Pro(Monterey)」でArduino IDEを使っています。
以前、「M5StickC」でも同様の問題が発生したことがありました。その際は、MacのOSバージョンに依存する現象だったため、今回も同様に、Macに特化した問題ではないか?と考えました。

スケッチの書き込みには、「M5Stamp Pico DIY Kit」に付属している「ESP32-DOWNLOADER」を使っています。
「ESP32-DOWNLOADER」には「CP2104」「CH9102F」のいずれかが搭載されていますが、私の持っているものに搭載されているのは「CP2104」です。

まずは、この「CP2104」用のUSBドライバを再インストールしてみました。
こちら のページから最新版のドライバをダウンロードしてインストールしたのですが、状況は変わりませんでした。

このダウンローダを使っている限りは、どうにも対処のしようがないのでは?と考え、別の方法で書き込んでみることにしました。

以前、「ESP-WROOM-32 DIP化キット」にスケッチを書き込むために、書き込み装置をつくったことがあります(記事は こちら)。
この書き込み装置を使ってみることにしました。
ブレッドボードで同じ回路をつくり、「M5Stamp Pico」をつないでみたのですが、状況は変わらず、書き込みできませんでした。

これ以外の対策を思いつかないため、泣く泣くMacの利用を諦め、Windows PCでスケッチを書き込むことにしました。
しかし、わざわざWindows PCでArduino IDEの環境構築を行い、スケッチを書き込んでみたにも関わらず、なんと、これでも書き込みができませんでした。

ここまで、Macに特化した問題だと考え、色々と悩んでいましたが、結局そうではなく、「M5Stamp Pico」側の問題だということになります。

ところで、「M5Stamp Pico」とパソコンをつなぎ直したりして、いろいろと試していたところ、Arduino IDEのシリアルモニタに「何も表示されない」「初期状態でインストールされているプログラムのメッセージが表示される」「強制リブートを繰り返しているようなメッセージが表示される」など、表示内容がまちまちなことに気付きました。
もしかしたら、端子の接触の問題かもしれません。

「M5Stamp Pico」では、基板にあいている穴(スルーホール)にダウンローダの端子を差し込むことで両者を接続します。
このような接続方法では接触が不安定になるため、この部分で接続の問題が起きている可能性があります。

試しに、スケッチの書き込み中に、ダウンローダを「M5Stamp Pico」にギュッと押しつけるようにすると、スケッチを半分ぐらい書き込んだ後にエラーとなりました。
これまでとは状況が変わっており、やはり接触の問題のようです。

より確実に接続するための方法を色々考えましたが、どれもうまくいきません。
仕方がないので、「M5Stamp Pico」にピンソケットをはんだづけすることにしました。

ダウンローダをつなぐ6ピン側のみ、ピンソケットを取り付けました。

この状態で確認したところ、4台とも安定して書き込みができるようになりました。

色々と悩んでいましたが、結局は非常に初歩的な問題でした。
同時に購入した4台とも同じ症状だったため、当初はまさかデバイス側の問題だとは思いませんでしたが、今回購入したものが全て同じロットで、そのロットではスルーホールが大きめに仕上がっており、その結果接触不良が起きやすくなっている、とかいう原因かなぁ?と思います。


なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。


このサイトで書いている、M5Stackシリーズ(M5Stack、M5StickCなど)に関するブログ記事を、「さとやまノート」という別のブログページに、あらためて整理してまとめました。

他のM5Stackシリーズの記事にも興味のある方は「さとやまノート」をご覧ください。