M5Stamp Picoを触ってみた治具作成&リフローしてみた


到着

スイッチサイエンスさんに注文したM5Stampが届きました。

書込みツールが付属したDIY KITが品切れだったので、モジュールのみ(mate)を3個購入しました。シールに従ってUSBシリアル変換アダプターとケーブルを接続してTeraTarmなどで119200bpsで接続すると起動メッセージが出て、そこにAPIKEYが表示されます。

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:5280
ho 0 tail 12 room 4
load:0x40078000,len:12908
load:0x40080400,len:3512
entry 0x4008063c

       _  __ _
 _   _(_)/ _| | _____      __
| | | | | |_| |/ _ \ \ /\ / /
| |_| | |  _| | (_) \ V  V /
 \__,_|_|_| |_|\___/ \_/\_/

APIKEY: ????????
MAC: ????????????

Arduinoで書込み

M5シリーズは基本的にESP32が使われており、電源投入時に特定のピン(G0)をGNDと接続することでUART Download Modeに入ります。このモードにするために3Dプリンタで治具を作りました。

f3d/stlファイルはこちらです
https://github.com/NaohiroIIDA/M5StampJig

Fusion360を使って、プログラム中にM5Stampがグラグラ動かないように枠を作ります。セットしたM5Stampとの接続にはポゴピンを使います。内蔵されたバネの力で端子を押し付けることで、パッドとの接続を保ちます。(amazonで購入できます)

結線

この様に結線しました。

USBシリアル変換 スイッチ M5Stamp
DTR - -
RxD - Tx
TxD - Rx
VCC - 3v3
CTS - -
GND - GND
- SW1 EN(Reset)
- SW2 G0

2個のボタンはそれぞれEN(Reset)とG0ピンに繋がっていて、押す事でGNDと接続されます。G0をGNDと接続した状態でリセットすることでUART Download Modeに入ります。
組み立てるとこんな感じに。

Arduino IDEの設定

公式ページに従って進めます。
https://docs.m5stack.com/en/arduino/arduino_development

インストールを進めると、ボードマネージャーから『STAMP-PICO』が選べる様になります。

スケッチを描いて、治具のUSBシリアルモジュールのポートも設定します。書き込む直前にEN,G0両方のボタンを押したまま、EN(Reset)のボタンを先に外します(そのあとでG0ボタンも離してOK)。これでUARTダウンロードモード状態になるので、ArduinoIDEの書き込みボタンを押すと書き込みが出来ます。

ちなみにですが、出荷されたM5Stampには最初からUiFlowのファームが書き込まれています。Arduinoで書き込むとUiFlowのファームは消えてしまいますので、再度使う時にはM5Burnerを使って書き込む必要があります。

基板も作ってリフローしてみた

M5Stampは耐熱プラスティックの外装やリフロープロファイルも公開されている。せっかくなので基板実装してみた。まずEagleでライブラリを作成して、赤外線リモコン信号を送信する基板をデザインしてみた。その後インクジェットプリンタを使ってフォトマスクを作成して、サンハヤトの感光基板を使って作成してみました。
Qiita:ハッカソンなのにエッチングで基板を量産する


作成したM5Stamp_Pico.lbrはこちらです



M5Stampをこのままリフロー炉に入れても問題なく実装でき、一発で動作しました。
ちなみにこれは、『自宅のM5Atomのボタンを押すと数キロ離れた事務所のエアコンがONになる装置』です。

感想:とても使いやすい

コンパクトで値段も安価かつSMT実装が出来るのは、試作や少量生産を行う自分にはとてもありがたい。開発はVSCode+PlatformIOでもMicroPythonでもOKだし、例えばM5Atomで試作したものをプリント基板に起こして30セット作るとか・・・そんな案件で使ってみたいです。

余談:バネが強すぎた