自作基板に Seeed XIAO RP2040 を組み込む

### マイコンが高くて買えない!

Webエンジニアです！

今回はWebの話ではなく、表題の通り電子工作の話です。2022年11月、まだまだ半導体不足ですよね。    
おまけに円安です。コロナ禍の前まで気軽に200円くらいでAVRやSTM32が買えてたのが遠い昔の出来事のようです。    
そんな状況の中、マイコン電子工作民にとっては[RP2040](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf)はかなり魅力的なマイコンです。 [2022/11/03現在、まだ130円で売ってます](https://akizukidenshi.com/catalog/g/gI-17056/)    

ただこのマイコン、IC単体で見るとAVRやSTM32などと比べていくつか使いにくい点があります。    

- FlashROMが搭載されていない。
- パッケージがQFN....

普通にWebエンジニアな私は、この2点でIC単体で組み込むことは諦めました。    
自宅にリフローオーブンとかないですし、多ピンのQFNを手はんだで頑張りたくありません。   

> [こんなの（MHP30という名前でアリエクやbangoodで売ってるUSBのちっちゃいホットプレート）](https://ja.aliexpress.com/item/1005001800667409.html)でリフローできないかな！？、という淡い期待はあるんですけど、今回はそういう話ではなく。
> ペーストハンダを食品と同じ冷蔵庫に入れたくないし、時々しか使わないペーストハンダのために専用冷蔵庫を買うのもいや。
> と、リフローを自宅でやろうとするとハードルがたくさん。    
> 最近のWebエンジニアはリフローくらい自宅でやるのかもしれませんが、私はまだまだ修行中の身なので持ってません！    

### 普通にRaspi Pico使えよ！

[Raspberry Pi PICO](https://akizukidenshi.com/catalog/g/gM-16132/) を使えば前述の問題は解決します。    
扱うための情報も多いので、大きなモノを作ったり、ブレッドボードで実験するだけならオススメです。    
ただ、これまでマイコンをIC単体で使ってた人にとっては、Raspi PICOは少々大きいのです。   

今回の目的は自作基板への組み込みなので、フットプリントは重要です。おもいっきり優先度が低い選択肢です。    

![0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/3274560d-bcca-7383-fdc9-30b7375c9098.png)

> 上が Seeed XIAO RP2040 下が Raspi PICO です。

### GPIO少なくていいなら XIAO RP2040だ

そこで、IC単体と同等、とまではいきませんが、Raspi PICOの半分くらいの大きさの [Seeed XIAO RP2040](https://akizukidenshi.com/catalog/g/gM-17044/) をよく使うようになりました。Raspi PICOと比べて使えるGPIOは激減しますが、いまのところ、意外になんとかなってます。    

STM32マイコンが100円で買えてた時代を懐かしんでも仕方ないので、このあたりで妥協しながら物作りを進めています。   

## Seeed XIAO RP2040の組み込み方

ようやく本題です。    

Seeed XIAO RP2040を自作基板に組み込む方法を *3つ* 紹介いたします。   

### ① 基板の上にXIAO RP2040に載せて端面スルーホールでハンダ付けする
XIAO RP2040は、自作基板などへ組み込みやすいよう下記仕様になっています。    

- 部品が上面にのみ搭載されていて、底面がフラット
- 端面スルーホール（スルーホールの側面にもハンダづけできる構造）

この構造を生かした最もスタンダードな組み込み方が、ずばり「基板の上にXIAOを乗せてハンダ付け」です。

こんな感じになります。

![1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/69ab9a1d-7cdb-a85b-5b31-0d1283e7067a.png)

### ② スルーホール経由で基板の上にXIAOを載せる

一方で、表面実装でハンダ付けしてしまうと、外すのが大変です。ホットプレートみたいなのが無いとほぼ無理です。    
取り外せる形で組み込みたい。という組み込みたいんだ組み込みたくないんだかわからんケースもたまにありますので、そんな時には①の方法は取れません。   

そんな時は、スルーホール基板を作って、その上に（ピンヘッダ/ピンソケット等を介して）載せるようにしましょう。

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/9709e2fd-11c2-1f23-bd22-0832ddbc2b93.png)

> 上の写真は、まだ基板側にピンソケットをつけてません。ピンソケットを基板側につけて接続します。

### ③ 基板の下にXIAO RP2040に載せて端面スルーホールでハンダ付けする

少しトリッキーですが3つ目は、XIAO RP2040を自作基板の下につける方法です。    
「逆さまにするだけでは？」と思ったあなた。不正解。それは①と同じです。    
写真のように、部品の出っぱり部分が通れるように基板に切り欠きを作り、裏から逆さまに端面スルーホールへハンダづけして固定します。

この方法のメリットは「上があまり出っぱらない」ことです。
作りたいモノによっては、こっちの方が良いこともあります。（ありました）

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/231aef2b-df4c-124e-8b6f-315e66b74854.png)

> ↑こんな感じで切り欠きのある基板を作って（これ裏面）↓XIAO RP2040を裏返してハンダ付けします。    

![3-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/2c67a7d1-5b42-8a67-fb8a-a27551dfb8cd.png)

> ↓表から見ると、こんな感じになります。    

![3-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/aa764b80-8011-f754-7463-1a7712431452.png)

> 今年のMaker Faire Tokyoで使った [mini midi コントローラー](https://github.com/tadfmac/mini-midi-controller) は、このようにして作りました！ （だって、できる限り薄くしたいよね！？）

![midi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/e691120e-4fb4-5184-1104-3b6cee5c9edc.png)

## まとめ

今回は、自作基板への Seeed XIAO RP2040の組み込み方を紹介しました。    

最後に今回紹介した基板を[Autodesk Eagle](https://www.autodesk.co.jp/products/eagle/free-download)で設計する際に利用できる [Seeed XIAO RP2040 ライブラリ](https://github.com/tadfmac/eagle-libraries/blob/main/xiao-rp2040.lbr) を作成しましたので、紹介します。

リフロー前提ではなく、手はんだできるようにランドの大きさを工夫してあるライブラリです。
よろしかったら使ってみてください。ライセンスはMITです。    

`xiao-rp2040.lbr` には、Deviceとして「XIAO-RP2040」のみが搭載されており、下記 `Variant` が含まれています。    

|Variant|説明|
|:---|:---|
|`HOLE`|スルーホール用（本記事の②で利用）|
|`FRONT-SMD`|表面配置端面スルーホール用（本記事の①で利用）|
|`BACK-SMD`|裏面配置端面スルーホール用（本記事の③で利用）|

※ `BACK-SMD` には、基板切り欠き用のDimensionは含まれておりませんが、代わりにガイドとして `Layer 37 tTest` にDimension用のガイドが入っています。BACK-SMDをご利用の際は、このガイドに沿ってboardデータ側で Dimensionを引くのを忘れないようお願いします。

それでは！