M5Stackの拡張基板を作って販売して、深センまで届けに行った話

こんばんは。普段は神奈川の中央付近でハードウエアエンジニアをやっているMasawo Yamazaki(tomorrow56)です。

本業のかたわら「ThousanDIY」という名前で同人ハードを設計・販売したりしています。

https://thousandiy.wordpress.com/

今年はともかくM5Stack沼、特に拡張ボードを作ることにどっぷりはまってしまいました。
11月に開催された「ESP32開発ボードLT祭り」でも紹介した「拡張ボード作成」とそれをM5StackのCEOのJimmyさんに届けに深センに行った話を書きたいと思います。

# やさしい拡張基板の作り方

まず、拡張基板を作るのにどのようにしたかを簡単に書きます。

## 回路図の入手
何はともあれ、まずは最初にオフィシャルサイトから回路図を入手します。

http://www.m5stack.com/

回路図はサイトの「Download]->[M5-Core-Schematics]からダウンロードできます。

![Schematics_download.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/ae0dcec7-5830-befd-3eab-0b93cf55dd08.jpeg)

## 内部デバイスで使用しているポートの調査

回路図から内部デバイスで使用しているポートを必要なページを抜粋しつつ洗い出します。

![port_check.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/0fb6a9c3-db7d-6ac8-1578-efc2b19053ec.jpeg)

## ピンアサインの決定
上記で洗い出したポートを元にエクセルでポートリストを作成します。
作成したポートリストより、競合しないように拡張ボードで使用するピンを選択します。
本年は「USB Host(MAX3421E)」「Motor Driver(L293D)」「Servo Driver(PCA9685)」の3種類の基板を作成しました。
これらの基板を「Stack」して同時に使えるようにピンアサインをしました。
この時に注意しなければいけないのが「Strapping pin」です。
Strapping Pinとは、リセット解除時にHまたはLとする事で起動モードを変える様に設定されているピンです。例えば、ESP32の書き込みモードに入れるための"GPIO0"ピンがそれにあたります。
以下にStarapping Pinのリストを示します。
![Strapping_pins.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/ac01a525-cf53-6949-66bd-0ac7493e4e34.jpeg)

上記の内容を踏まえて最終的に決定したピンアサインが以下となります。
![port_list.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/35dfa2c6-edc1-547a-4cb8-8aaca15e054b.jpeg)

## 基板設計
使用するデバイスとピンアサインが決定したら、回路図を作成し、プリント基板のアートワークを行います。CADソフトはオープンソースの「KiCad」(http://kicad-pcb.org/) を使用しました。
今回は「USB Host Shield」を例に説明していきます。

![schematics.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/090490d7-4ba7-b590-4cb5-ee70eda6c29e.jpeg)

KiCadの基板レイアウトエディタは密かに3D表示が出来てちょっとカッコイイです。
外形寸法はオフィシャルな資料が見つからなかったので現物を実測しました。
![board.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/0d418628-cc72-1f91-d487-2a329726f1c3.jpeg)

## 基板発注と実装
基板レイアウトが完成したら、基板メーカーに発注します。自分はいつも深センの"ELECROW"に発注しています。
![elecrow_top.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/b4f1fa77-ad64-7b00-e1a7-137bd26a6680.jpeg)

ELECROWの場合は10cm*10cm*10枚でUSD4.9です。特徴としては発送方法にANA系のビジネス便である”OCS”(10cm*10cm*10枚の場合でUSD
13.66)が選択できて、約1週間で基板が到着します。

![elecrow_order.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/8ffc6993-7b3d-f0a5-3352-033eb1e6dbf4.jpeg)

"ELECROW (https://www.elecrow.com/) "や"FUSION PCB (https://www.fusionpcb.jp/) ”、"PCBGoGo (https://www.pcbgogo.jp/) ”は日本から手配するための情報も多く初めて基板手配にチャレンジする場合はおすすめです。(個人の感想です(笑))

基板が到着したらひたすら実装します。
![assemble.jpg](https://qiita-image-store.s3.amazonaws.com/0/120903/ba87d06f-9718-deeb-4af3-0294a5e961fd.jpeg)

そして出来上がったのがこちら。
![USBHost.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/a2d29671-7c44-ecbe-9b87-6d32fceb5d93.jpeg)

同様に「Motor Driver(L293D)」「Servo Driver(PCA9685)」も起こしました。
![MotorDriver.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/fac71148-eb5c-ab25-1a56-77cde0a14d0a.jpeg)

![Servo.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/d332a30c-edf7-7479-e013-6601b2888216.jpeg)

## スイッチサイエンスで委託販売する
今回作成した「USB Host Shield」については、スイッチサイエンスへ委託販売の審査をお願いし、OKがでましたので販売しました。

![SwitchSciense.jpg](https://qiita-image-store.s3.amazonaws.com/0/120903/65b08127-db61-21ac-f4da-6704f239c20c.jpeg)

実際に自分の作ったハードウエアを販売すると「値段をつけて継続して物を売る」という事の仕組み(値付けとか回転資金とは開発費用回収とか)がよくわかります。
スイッチサイエンスでは一定数を納品すると、受注・入金管理および梱包・発送までやっていただけるので非常に楽です。(以前、Etsyでショップを作ったのですがこれらを仕事の合間に個人でやって心が折れたので、スイッチサイエンスの手数料(ここでは書けません)は手間を考えるとすごく安いです。

## 深センに届けに行く
拡張基板を作っていることはFacebookやtwitterでM5StackのCEOであるJimmyさんにも報告していた、ということもあり、10月に深センまで届けに行って来ました。(マジでM5Stackに基板届けるのがメインでした！)
届けた時の様子はM5Stack公式のSNSで発信していただけました。感謝感激です。

![M5_Shenzhen.JPG](https://qiita-image-store.s3.amazonaws.com/0/120903/90ce4c92-54e4-22dc-38f9-4e1a1c60313c.jpeg)

# 今年のまとめ
思えば初めてM5Stackを触ったのは今年の3月でした。
それから、雑誌で紹介記事を書かせていただいたり、いろんなイベントでLTをしたり、ボードを販売したら予想以上に売れてしまい、毎日夜な夜な基板実装をして寝不足に悩まされたりと、楽しい1年でした。来年もまた色々と作っていきますので、よろしくお願いします！！