pio-usb-hoboNicolaアダプターの作り方

概要

  • 自作のPCB、Seeed Studio XIAO RP2040、抵抗2本、USBコネクタを使った hoboNicolaアダプターの作り方をまとめた。
  • PCB はKiCAD (6.11) を使って設計し JLCPCB に製造を依頼した。KiCAD用の回路図、PCB、ガーバーおよびドリルデータはGitHUB のリポジトリ ( https://github.com/okiraku-camera/xiao_pio_usb2 ) に置いた。
  • なお、このアダプターは以前に投稿した hoboNicolaのPico-PIO-USB対応 で紹介したものと同じ回路、同じフォームウェアを利用している。動作メカニズムなどについては、以前の投稿を参照のこと。PCBを使ったハードウェアについての内容が抜けていたので、今回はそこに絞って記載している。
  • PCBが1枚500円としても、XIAO RP2040を含めて1台あたり2,000円以下で製作できるだろう。

材料

作成のためには以下の部品が必要になる。

必要な材料 XIAO RP2040, 7Pピンヘッダ、PCB、USBコネクタ、抵抗2本

PCB

PIO-USB hoboNicola という名前にした。KiCADのプロジェクト名が xiao_pio_usb2。今回作ったPCBは紫色にしてみた。

pio-usb-hoboNicola PCBのF面とB面。あっさりしている方がF麺。

スルーホールの抵抗を用いる場合はF面に、表面実装の抵抗を用いる場合はB面にはんだ付けする。XIAO自体はF面にはんだ付けする。

Seeed Studio XIAO RP2040 および 7Pピンヘッダ

Seeed Studio社で製造販売しているマイコンボードで、マイコンとして Raspberry Pi財団が独自開発した高性能・低コストな32ビットマイコンの RP2040を使っている 。

とても安価なことも特長の一つなのだが、このところの円安のため、日本で入手しようとすると 1,000円前後か。

基本的にXIAOにピンヘッダをはんだ付けし、ピンヘッダをPCBにはんだ付けする。

ピンヘッダについて

スルーホールの抵抗 (一般的な1/4Wの金属皮膜抵抗)を使う場合、抵抗はXIAOの直下に位置するので、金属皮膜抵抗の直径よりもハウジング高が大きなピンヘッダ使う必要がある。

pio-usb-hoboNicola 超小型サイズの1/4W 金属皮膜抵抗

たとえば、秋月電子で売っているXIAO RP2040には、ハウジング高が約2mmの7Pのピンヘッダが2本付属しているので、追加購入は不要。

XIAOを海外から輸入する場合、ピンヘッダ無しのパッケージが来ることがある。そのような場合には、ハウジング高が2mmのピンヘッダを用意する必要がある。なお、細ピンヘッダと呼ばれる製品はハウジング高が約1.5mmで小型金属皮膜抵抗の直径より低かったりするので注意が必要。

pio-usb-hoboNicola 超小型サイズの金属皮膜抵抗とピンヘッダ

表面実装抵抗を用いるならば、ピンヘッダは省略可能で、XIAOをPCBに直接面実装してもよい。

22Ωの抵抗を2本

先述のように、1/4Wの金属皮膜抵抗または表面実装(3216サイズ)の抵抗を用いる。

基板取付用のUSB Type-Aコネクタ

一般的な基板取付用のコネクタを用いる。秋月電子の 型番 5075AR-04-WH の製品などでよい。寸法などについてはこの商品ページのデータシートを参照のこと。

その他

回路図やPCBには、0.1uFのコンデンサを取り付けるためのパターンを用意しているが実装は不要。XIAOのボード上でVBUSは10uFでデカップリングされており、余計な容量性負荷は望ましくないようだ。

回路の保護用に、熱収縮チューブ (スミチューブ A20C) を使ってPCBとXIAOの全体をスミチューブで覆ってしまうこともできる。

あるいは、3Dプリンタなどで都合のよいケースを作って格納するのもいいだろう。

作り方

XIAOにピンヘッダをはんだ付け

マイコンボードにピンヘッダをはんだ付けするときは、ピンが垂直に立つようブレッドボードに差してから行うのがよい。

ブレッドボードにピンヘッダをさしておく
ピンヘッダにマイコンボードを乗せてからはんだ付け

はんだ付けの前に、マイコンボードを上からしっかり押してピンヘッダとボードの間に隙間ができないようにする。

XIAOとピンヘッダのはんだ付け結果は、後述するPCBとはんだ付けした写真を参照。

PCBに抵抗とUSBコネクタをはんだ付け

pio-usb-hoboNicola 抵抗とUSBコネクタをはんだ付け

PCBのパターンに抵抗やコネクタをはめてはんだ付けする。抵抗がPCBから浮かないように注意するとともに、USBコネクタがPCB側に傾かないよう気を付ける。

pio-usb-hoboNicola 抵抗とUSBコネクタをはんだ付け

裏から見るとこんな具合になる。

USBコネクタをPCBに取り付けるシールドタブ (コネクタのシャシーから伸びている爪のようなやつ) はUSBケーブルの抜き差しでコネクタが緩まないようPCBの内側に曲げ、十分にはんだを流しておく。

ピンヘッダをつけたXIAOをPCBにはんだ付け

まず、PCBにXIAO (ピンヘッダ)をはめる。裏返してPCBにしっかり押さえつけ、対角線上にある2つのピンだけをはんだ付けする。そして、裏面に突き出しているピンをPCB裏面から出っ張らない程度の位置で切断し、その後すべてのピンをはんだ付けする。

pio-usb-hoboNicola ほぼ完成 B面

各パッドが尖らないようにはんだ付けする。こうしておくことで、PCB裏面のピンがスミチューブを突き破るのを防げる。

pio-usb-hoboNicola ほぼ完成

上から見るとこんな具合になる。

スミチューブを被せる

この時点では、PCBの裏側もXIAO側も接点がむき出しですぐにでもショートしてしまいそうなので、回路保護用に熱収縮する内径20mmのスミチューブ (A20C) を被せ、ホットエアガンなどを使って収縮させる。

スミチューブはPCBと同じくらいの長さ (32mm) が必要。

pio-usb-hoboNicola スミチューブ収縮前 F面
pio-usb-hoboNicola スミチューブ収縮前 B面

熱風を浴びせることでチューブが収縮し、PCBやXIAOに密着する。

pio-usb-hoboNicola スミチューブ収縮後 F面
pio-usb-hoboNicola スミチューブ収縮後 B面

こういった具合にしておけば、ケーブルの途中でブラブラしていても接触による弊害が生じることもない。

この状態でも、XIAOに用意されている超小型のリセットおよびBOOT SELスイッチを爪先で押すことはできる。

表面実装部品を使った作成

今回のPCBはXIAO自体を面実装できるように設計した。メリットは、XIAOのピンヘッダが不要、という一点のみなのだが、そのように設計したので一つ作ってみる。

チップ抵抗の取付

チップ抵抗 22Ω 0805/2012

PCBのB面には、3.2mm長の3216(1206)サイズのチップ抵抗を使う前提のパターンを用意したのだが、手元にあった22Ωの抵抗は2012(0805)サイズだった。写真のように、長さが約2mmである。しょうがないので、そのままはんだ付けした。

pio-usb-hoboNicola チップ抵抗をはんだ付け

肉眼では問題なさそうに見えたのだが、マクロレンズで撮影してみると、写真上側 R10 がちょっとマズイかもしれない。R20に比べて左に寄っているし。一応、テスターで測ると約22Ωだったので、このまま作成を進めた。

XIAOの面実装

XIAOをPCBのF面にはんだ付けする。

ソルダーレジストの塗布

XIAOの裏側とPCBのF面を見比べると、スルーホール抵抗R1, R2の上側のホールがXIAO裏側の電源用パッドと接触しそうな気がしたので、XIAO側に緑色のソルダーレジストを塗った。

XIAO RP2040のB面
pio-usb-hoboNicola F面

面実装

準備段階としては、XIAOを取り付けたい位置において、マスキングテープなどで固定しておく。そして、対角線上の2つのパッドを軽くはんだ付けして位置を確認してから、すべてのパッドをはんだ付けしていく。

pio-usb-hoboNicola XIAOを面実装
pio-usb-hoboNicola XIAOを面実装 B面

XIAO自体は面実装も可能な端面スルーホール (スルーホールエッジ) を備えているので、少々しつこくはんだを流しておく。

pio-usb-hoboNicola XIAOを面実装

端面スルーホールはこんな具合になり、おおむね完成する。

pio-usb-hoboNicola

スミチューブ

スルーホール版と同様に保護のためにスミチューブを使う。

pio-usb-hoboNicola

問題点としては、XIAO自体がUSBコネクタに対して低くなっているので、チューブ越しにボード上のRESETやBSELスイッチが押せない。とりあえずスイッチが押せなくてもファームウェアの書込みはできるのでこのままにしておくが、必要ならばカッターナイフでスイッチ部分だか切り取ればよいだろう。

まとめ

XIAOのパッケージにピンヘッダが付属していればスルーホールで作ればよいし、3216サイズのチップ抵抗があれば面実装で作ればよいだろうという印象で、面実装したからといった特別なメリットがあるわけではない。

プログラムのコーディング、バージョン管理、マイコンへのファームウェアの書込みなどの操作は、VSCodeに vscode-arduino (Arduino Community Edition) を拡張機能として追加した環境で行っている。こういった開発用のソフトウェアを構成する話はブログにまとめていなかったので、次の投稿とした。