はじめに
前々回にて,PICマイコンPIC16F18326と温湿度気圧センサBME280を用いたポータブル気圧計について述べました。本記事では,その基板をKiCadで再設計し,JLCPCBに発注してプリント基板化したことについて書いてみたいと思います。
マイコン内蔵フルカラーLED(いわゆるNeoPixel)をPICマイコンで制御する方法についても書く予定でしたが,記事が長くなり過ぎたので次回とさせて頂きたいと存じます。
完成イメージ
図1に完成イメージを示します。回路構成は前々回の試作2号機とほとんど変わっていません。一点,LEDの代わりにNeoPixel (WS2812B)を用いました。両面基板として設計したため,ジャンパ線代わりの0 Ω抵抗器が一切なくなり,見た目はすっきりしていますね。十字配線ユニバーサル基板を使った従来機では裏面に部品がありましたが,それもなくなりました。

LEDをNeoPixelに変えたことで,ソフトウェアひとつで様々な色に光らせることが可能となりました。しかし,後述のようにPICマイコンがスリープモードとなった際の消費電流が増えてしまったため,ボタン電池の消耗が早くなってしまった気がしています(定量的に測定はしていませんが…)。リビジョンアップする機会があればもう少し見直したいと思っています(リビジョンアップしました!「まとめ」以降に追記しています)。
目次
プリント基板と私
本ブログの電子工作においては,普通のユニバーサル基板,続いて十字配線ユニバーサル基板を主に使用して参りました。特に十字配線ユニバーサル基板は設計からカットパターンのカッティング,部品実装までの時間,そして何より心理的な障壁を(ユニバーサル基板に比べて)短縮・軽減できるため,ずっと重宝しておりました(今後も簡単な回路では使っていきます)。
とは言え実は20年ほど前,Eagleというプリント基板設計ツールを使い,プリント基板を自作したことがあります(図2)。これはトランジスタ技術2005年4月号の付録であったR8C/Tinyマイコンのための実験基板なのですが,サンハヤトの感光基板を使って苦心して作った記憶があります。ずっと眠っていたところ,今年の夏ごろに実家で再発見・発掘して参りました。何と今でも電源を入れるとLEDが明滅します*1。

この時以来,プリント基板を作ることからは遠ざかってしまいました…。学ぶ時間は十分にあったと思うのですが,どうも長いこと無為に過ごしてしまったようです。
しかし,Xなどで見かける先達たちの投稿を見るに,やはりオリジナルのプリント基板を作ってみたいという思いも沸いて参ります。また,プリント基板を設計・発注できれば,2.54 mmピッチのスルーホール部品だけでなく,表面実装部品を含む様々な部品を,多層基板に載せて使用できるようになるという技術力向上に繋がります。本ブログの筆者は既に老境に差し掛かりつつありますが,一念発起(?)してKiCadをインストール*2し,プリント基板メーカーに発注するという流れを試してみることにしました。
主に常田裕士さんの「定番プリント基板設計KiCad入門」(CQ出版社,2025年)で勉強させて頂きました(以下,「KiCad入門」と呼びます)。本記事での記述も主な出処はこちらの本になります。
本記事ではKiCadの詳細な使い方については割愛させて頂き*3,PICポータブル気圧計の設計・製作にフォーカスを当てたいと存じます。
KiCadでの設計
プリント基板設計の流れ
基本的な流れとしては:
- KiCadの回路図エディターで部品(シンボル)を配置して回路を設計する
- 各シンボルに対応するフットプリントを割り当てる
- PCBエディターで回路図と情報をリンクさせ,各部品のフットプリントとラッツネスト(未配線の接続)を生成する
- 基板の外形を描き(Edge.Cutsに図形を描く),各フットプリントを配置する
- 各フットプリントの必要なパッド間を配線する(ベタ電源,ベタGNDを含む)
という感じですが,使いたい部品のシンボルやフットプリントがデフォルトで用意されていない場合,まずはそれらを作るところから始める必要があります。以下ではまずKiCad上での設計の完成イメージを示し,秋月電子通商で手に入る部品のシンボルやフットプリントの作成,回路設計(回路図エディター),基板設計(PCBエディター)の順に述べていきます。
(設計の)完成イメージ
図3,4に基板設計の完成イメージを示します。図3はKiCadのPCBエディターにてできあがったパターン図,図4は3Dビューアーで見た基板です。


PICマイコンとキャラクタLCDのSDAを結ぶ配線に1か所のみ,表面と裏面を行き来するビアを設けています。また,NeoPixelは表面実装部品ですね。
シンボルとフットプリントの作成
KiCadには豊富な部品ライブラリが付属しておりますが,星の数ほど電子部品が存在するこの世界では当然,ライブラリにない部品が数多あります。PIC16F18326についてはシンボルのみを,秋月電子通商で入手できるキャラクタLCDについてはシンボルとフットプリントの両方を,ボタン電池CR2032の基板取付用ホルダについてはフットプリントのみをそれぞれ作成しました。
シンボルとは回路図エディター上の部品の記号・見た目およびピンの情報をまとめたものです。一方,フットプリントとはPCBエディター上での部品の物理的なランドやパッドの位置と形状,シルク印刷などをまとめたものです。回路図エディターで回路図を作成した後,各部品についてシンボルとフットプリントの割り当てを行い*5,PCBエディター上に*6各部品のフットプリントを並べて配線していきます。
PIC16F18326のシンボル
Microchip社のPICマイコンについてはその多数がKiCadのライブラリに収録されておりますが,残念ながらPIC16F18326は見つかりませんでしたので,自分で作ることにします。シンボルの作り方は上記の「KiCad入門」にて詳述されてるため割愛しますが,以下に概要のみ記載します。
KiCadのシンボルエディターで「My_Library」というライブラリを追加し,「PIC16F18326-IP」というシンボルを新規作成します。四角形を描いて,塗りつぶしを「ボディ背景色」に設定します。PIC16F18326は14ピンのマイコンですので,それぞれのピンの番号と名前,ピンの種類(電源か入力か出力か双方向か,など)を設定します。電源ピンは上と下に,信号のピンは左右に配置するのがKiCadの流儀のようなのでそれに従いました。


結果として図5のようなシンボルとなりました。なお,使用するPIC16F18326は14ピンのDIP部品なので,フットプリントはKiCadにデフォルトで用意されている一般のDIP部品のフットプリント(Package_DIP:DIP-14_W7.62mm)を利用させてもらうこととしました(図6)。
キャラクタLCDのシンボルとフットプリント
秋月電子通商で入手可能なZETTLER DISPLAYS社の16文字 × 2行のキャラクタLCDモジュールAQM1602Y-FLW-FBWやその姉妹機種(文字色,背景色,バックライト色が異なるバリエーションあり)は,前々回,前回にも使用した表示器です。ちょっとした情報表示に大変便利ですが,残念ながらKiCadのライブラリにはシンボル,フットプリントともに含まれていません。インターネットを探してみるとシンボルとフットプリントを作成されている方もいらっしゃるようですが,練習のため自分で作ってみることにしました。

図7に作成したシンボルを示します。KiCadの流儀としては電源ピンはシンボルの上下に配置するようなのですが,このキャラクタLCDは特徴的な形状とピン配置を持っているため,なるべく実物に近づけるようにしました。ピン番号は「番号」と言いながらも数字でなくても良いようなので,バックライトのアノード,カソード端子はそれぞれA, Kとそのまま命名しました。VO, VOUT, CAP1P, CAP1Nはこのモジュールに内蔵されている(恐らくスイッチトキャパシタ方式の)DC-DCコンバータ用の端子です。迷いましたが電源出力ピンに設定しました。

次に,フットプリントエディターにてフットプリントを作成します。図8に作成したフットプリントを示します。1 ~ 9ピンは2.54 mm (100 mil)ピッチで並んでいるため,グリッドのピッチを50 milなどに設定して*7スルーホールのパッドを並べていきます。AとKについては,実機を見ると少し奥まったところに細長い端子が付いています。実機をノギスなどで測りながら,細長いスルーホールのパッドを設けました(十字配線ユニバーサル基板に実装していた経験から,AとKの中心はそれぞれ1番ピン,9番ピンの後ろに穴1つ分,外側に穴3つ分の位置にあることは分かっていました)。ハンダが載る部分の幅が狭すぎたかもしれませんが,図1の通り幸い動作に問題はありませんでした。
このキャラクタLCDモジュールはピンが下端に集中して生えております。本体の大きさを表すために,シルク印刷(F.Silkscreenレイヤに図形や文字を書くと製造時にシルク印刷されます)で部品の概形を描きました。後で確認すると実機よりも少し大きめになってしまったようです。
さて,このキャラクタLCDモジュールで最も難しいのが,バックライト用のA, K端子のすぐ脇にあるプラスチックの突起です。実は前回,前々回で十字配線ユニバーサル基板に実装する際には,この突起をニッパーで切り落としていました。しかし今回はEdge.Cutsレイヤーに円を描き入れることで基板側に穴を開けようと考えました。とは言えデータシートを見てもこの突起の正確な位置関係が分からなかったため,ノギスなどで測った場所に少しだけ大きめの穴を設けることにしました(しかし後述の問題が…!)。
スルーホール部品の原点は1番ピンの位置とするようなので,全体の位置を調整するか,または原点の位置を調整する「フットプリントのアンカーを配置」ボタンを使って1番ピンの位置を原点として設定します。
ボタン電池CR2032の基板取付用ホルダのフットプリント
前々回ではボタン電池駆動のPICマイコンポータブル気圧計を作りましたが,そこでは秋月電子のボタン電池CR2032の基板取付用ホルダを使用しました。ボタン電池のシンボルについては単に直流電源/バッテリの図記号(Battery_Cell)を置くこととし(図9),フットプリントのみを新たに作ることとします。

電気的には非常に単純で,単にプラス極とマイナス極にあたるピンがあるだけです。秋月電子通商のページにある寸法図に拠ればピンとピンの間隔は20 mmです(ほら! インチとミリが混在しちゃう!)。

図10に作成したフットプリントを示します。電源なのでパッドの大きさを少し大きめにしています。ボタン電池ホルダの形状を表すため,シルク印刷を表すF.Silkscreenレイヤに外形図を描いています。円と四角形を描き,両者を選択した状態で右クリックし,「形状の変更」→「ポリゴンをマージ」を選ぶと,図10のような形状を作成できます。また,プラス極付近には「+」,マイナス極付近には「-」を描き,プラス極を原点として設定しています。
回路図を描く
必要な部品のシンボルとフットプリントを準備できましたので,いよいよ回路図を描きます。使用する部品は表1,KiCad上でのシンボルとフットプリントは表2となります。これらの部品を回路図上に置き,必要な配線をつなげます。NeoPixel (D1)以外の部分に関しては,前々回の記事と同じ回路構成を回路図として書き直しています。
| Ref. | 部品 | 型番・定数 | 備考 |
|---|---|---|---|
| U1 | PICマイコン | PIC16F18326-I/F | DIP14ピン |
| U2 | キャラクタLCD | AQM1602Y-FLW-FBW | 文字色・背景色・バックライト色バリエーションあり |
| D1 | フルカラーLED | WS2812B | NeoPixel,表面実装 |
| J1 | ピンヘッダ(5ピン) | - | PICマイコンのICSP用 |
| J2 | ピンソケット(6ピン) | - | 秋月電子通商AE-BME280取付用 |
| C1, 2 | 積層セラミックコンデンサ | 1 μF | U2の電圧生成用 |
| SW1 | タクトスイッチ | - | スリープ・ウェイクアップ用 |
| BT1 | CR2032ホルダ | CH25-2032LF | ボタン電池ホルダ |
| H1 ~ 4 | 取付け穴 | - | 基板取り付け用の3 mmねじ穴 |
| Ref. | KiCadシンボル | KiCadフットプリント |
|---|---|---|
| U1 | My_Library: PIC16F18326-IP | Package_DIP: DIP-14_W7.62mm |
| U2 | My_Library: AQM1602Y-FLW-FBW | My_Library: AQM1602Y-FLW-FBW |
| D1 | LED: WS2812B | LED_SMD: LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm |
| J1 | Connector_Generic: Conn_01x05 | Connector_PinHeader_2.54mm: PinHeader_1x05_P2.54mm_Vertical |
| J2 | Connector: Conn_01x06_Socket | Connector_PinSocket_2.54mm: PinSocket_1x06_P2.54mm_Vertical |
| C1, 2 | Device: C | Capacitor_THT: C_Disc_D3.0mm_W1.6mm_P2.50mm |
| SW1 | Switch: SW_Push | Button_Switch_THT: SW_PUSH_6mm_H9.5mm |
| BT1 | Device: Battery_Cell | My_Library: CR2032-Holder |
| H1 ~ 4 | Mechanical: MountingHole | MountingHole:MountingHole_3mm |


図11にKiCadの回路図エディターを,図12に完成した回路図をそれぞれ示します。電源となるボタン電池CR2032 (BT1)のプラス極とマイナス極の信号名をそれぞれVDD, VSSとし,電源であることを示すPWR_FLAGを接続しています。また,回路図の段階でM3のねじによる取付け穴を4つ設けておきます。これは後にPCBエディターにて基板の四隅に配置します。温湿度気圧センサBME280については,秋月電子通商のモジュール(AE-BME280)にロープロファイルピンヘッダを取り付けた上で接続するため,ロープロファイルピンソケットをJ2として置いています。

回路図エディターにて回路図を設計し終えたところで,フットプリントを割り当てます。表2も参照ください。NeoPixel (D1)のようにデフォルトのフットプリントが割り当てられている場合もありますが,それ以外の部品については手動でフットプリントを割り当てる必要があります。図13にフットプリントの割り当てツールのスクリーンショットを示します。PICマイコン (U1)についてはDIP14ピンの一般的なフットプリント(図6参照)を割り当て,ピンヘッダ(J1),ピンソケット(J2)も同様に一般的な2.54 mmピッチのフットプリントを割り当てます。タクトスイッチ(SW1)も同様です。フットプリントを自作したキャラクタLCD (U2)とボタン電池ホルダ(BT1)は対応する自作フットプリントを割り当てます。コンデンサC1, C2は2.54 mmピッチのスルーホール部品のフットプリントを割り当てます。3Dモデルを見ると,(積層ではない)セラミックコンデンサを想定した茶色のモデルとなっていますが(図4参照),実装上は積層セラミックコンデンサ(水色のもの)でももちろん取り付けられますので気にしないことにしました。
基板の銅箔パターンを描く
基板の外形を描いて部品を並べる
いよいよここが基板設計のメインパート(?)となります。PCBエディターを立ち上げ,「回路図から基板を更新」ボタンを押します。すると,図14に示すように,各部品のフットプリントとラッツネスト(未配線の接続)が表示されます。この段階では基板の外形がまだありませんので,Edge.Cutsレイヤに長方形を描いて基板の外形とします。今回は秋月電子通商のC基板(72 mm × 48 mm)よりも少し大きい75 mm × 50 mmとしました*8。それぞれの部品を十字配線ユニバーサル基板のバージョンと同様に配置しました。基板が少し大きい分,キャラクタLCDとボタン電池ホルダのスペースに余裕がありますね。

ベタ以外の配線を描く
前述のように表面をベタ電源(ボタン電池のプラス極),裏面をベタGND(ボタン電池のマイナス極)としますので,まず,それ以外の信号を配線します。主にPICマイコン-キャラクタLCD間とPICマイコン-BME280間のI2Cバス,PICマイコンのICSP (in-circuit serial programming)用の信号,PICマイコン-タクトスイッチ間の信号,PICマイコン-NeoPixel間の信号,キャラクタLCDのGND配線をPICマイコンのGPIOに接続する配線です。これらを図15のように配線しました。十字配線ユニバーサル基板ではジャンパ線代わりの0 Ω抵抗器がなければできなかった信号のクロスも両面基板であれば簡単です。I2CバスのSDA信号をビアにて裏面(青,B.Cuレイヤ)から表面(赤,F.Cuレイヤ)に通し,SCLとクロスさせています。ビア直径は0.6 mm,ビア穴は0.3 mmとしました(「KiCad入門」のデザインルールを参考にしました)。また,スルーホール部品の足を利用して信号の表面と裏面を変えている箇所があります。

また,基板の四隅に取付穴(MountingHole)を配置します。穴は直径3 mm(半径1.5 mm)ですので,その中心が基板の角から縦横共に2.5 mmとなるように配置します。基板設計ではどうしてもインチとミリが混在した設計となるため,グリッドもその時々で適切な単位に切り替えながら作業する必要がありますね。取付穴の周囲に銅箔パターンの存在を禁止するルールエリアを設けました。基板にソルダーレジストが載っている限りは問題ないはずですが,もし,ねじを締めすぎてねじと銅箔がショートした場合に問題となる(特に表の電源と裏のGNDがショートすると大変です)ためです。
ベタ電源とベタGNDを描く
この状態で,F.CuレイヤとB.Cuレイヤに基板を取り囲むように塗りつぶしゾーンを設定します。F.Cuは表面の銅箔パターンであるためネットを「VDD」に,B.Cuは裏面の銅箔パターンであるためネットを「GND」に設定します。この後,メニューバーの「編集」-「すべてのゾーンを塗りつぶし」を実行する(または「B」キーを押す)と,ベタ電源とベタGNDが生成されます。少し心配していましたが,ランドは自動的にサーマルランドとなるようです*9。こうなるとほぼ完成形です。
シルクを描く
やはり,自作基板には自作であるこを示すシルク印刷が欲しいですよね。KiCadには画像をパターンに変換できるイメージコンバーターがあります。図16に示すように,イメージコンバーターを使って筆者のXアカウントのアイコンの蝶をシルクパターンに変換しました。モノクロ閾値を調整して見栄えを調整し,大きさを5 mm × 5 mmとしてF.Silkscreenとして出力します。PCBエディターにはクリップボード経由で設計中の基板に貼り付けることができます。

基板の名称はPICマイコンによる気圧計(barometer)の初基板ということで,PBM-001としました。完成した基板設計が図3,4となります。
JLCPCBへの発注
発注用のデータを出力する
「KiCad入門」にはJLCPCBなど,基板メーカーに発注するためのガーバーデータの出力方法について詳述されていますが,KiCadのプラグインの1つにJLCPCBへの発注用のデータに特化した「Fabrication Toolkit」がありますので(図17),それを利用することにします。


Webサイトへの入力
JLCPCBのアカウントを作成し,サインインした状態で,Webページトップの「発注する」ボタンを押せば,図19のページに遷移します。ここで,「ガーバーファイルを追加」の箇所に先ほど生成したzipファイルをドラッグ & ドロップすれば,何ともう基板発注の9割は終わったようなものです。


プレビューの右上の「Gerber Viewer」から2Dおよび3Dでの詳細なプレビューも見ることができます。図21は3Dのプレビューですが,基板と言う観点では図22の各レイヤのプレビューの方が大事かもしれませんね。


この後は,基板の材料や層数,発注する枚数(最低5枚),色や厚さ,様々な基板の仕上げ方法を選択し,カートに保存,そして発注することができます。ここから先はインターネット上に情報が豊富にあると思いますので割愛させて頂きますが,思った以上に簡単に発注できたので拍子抜けしてしまいました。これからの時代,感光基板でエッチングする人はますます減って行きそうですね…(感光基板とエッチングはそれはそれで楽しいのですが…)。
気圧計として仕上げる
基板の到着と実装
発注してから4日で筆者の自宅に届けられました(図23)。巷で噂の青い箱です…! 初めての基板発注でしたが,図24のように調子に乗って10枚も発注してしまいました。




反省点
いきなりですが,図8に示したキャラクタLCDモジュールのフットプリントは失敗していました。キャラクタLCDモジュールの下面,バックライト用のA端子とK端子の脇にプラスチックの突起が出ています。前々回,前回の各記事では,十字配線ユニバーサル基板に実装するため,この突起をニッパーで切り落としていました。JLCPCBに発注する場合,基板に穴をあけることが比較的容易であるため,フットプリントのEdge.Cutsレイヤに円を描いていたのですが,図27に示すようにその位置が微妙にズレていました💧

ソフトウェアがうまく動作し,やれやれうまくいったと思っていたのですが,十字配線ユニバーサル基板で作ったバージョンよりも電池の消耗が明らかに早くなっていました。よく考えると,今の設計ではPICマイコンをスリープモードにしている間にも,NeoPixel (WS2812B)に電源が供給されたままになってしまいます。データシートに記載はないのですが,下のリンクのように調べた方がいらっしゃり,どうも0.6 mAほどは消費し続けているようです。ボタン電池CR2032が220 mAhであると仮定すれば220 mAh/0.6 mA = 367 h = 15.3 dayとなるため,概ね2週間で電池切れを迎えてしまいます…。う~む…設計ミスですね…。
さらにもう一点,この基板を発注したすぐ後に,秋月電子通商にて温湿度気圧センサBME280を載せたモジュールが一時的に在庫切れとなりました。このため,基板はあっても部品がないという事態に陥る惧れがありましたが,幸い,再入荷されて事なきを得ました。しかし,今後もこのような事態が想定されるため,Amazon等で入手可能な別のモジュール(ただしピン配置が異なる)を使えるように,基板パターンを設けておくのが安全策ではないかと考えています。
これらの改善点を実装したリビジョンアップを検討しています(「まとめ」以降に追記しました)。
まとめ
本記事では,前々回に紹介したPICマイコンを使ったかわいい気圧計をプリント基板化する過程について,もろもろ端折りながらではありますが書いてみました。筆者としては初めてのプリント基板発注だったのですが,KiCadの完成度が高いこと,インターネット上に情報が豊富にあること,JLCPCBのウェブサイトが非常に使いやすいことから,思いの外スムーズに完成したと思っています。これも先人たちが茨の道を綺麗に舗装してくれたおかげです。
前述のように反省点はあるので,機会を見てリビジョン2を作りたいと思っておりますが,他にも作りたい基板がいろいろと思い浮かびますので,何をどう作るか考え中です(年末年始のお休みに何か設計するか…)。
次回はNeoPixelを光らせる方法について,個人的なメモを書いてみる予定です。
追記: 新しい基板の設計・製作
前述の2つの問題:
- PICマイコンのスリープ中にもNeoPixelが電源電流を消費してしまう
- キャラクタLCDモジュールのプラスチックの突起のための穴がずれている
に加えて
- 秋月電子通商のBME280モジュールの品切れのリスクがある
対処するため,KiCadにて基板をリビジョンアップしました。BME280モジュールに関しては,Amazonで入手できる別のモジュール(下のリンク参照)のピン配置にも対応できるようにパターンを設けることとしました。

さて,図28に基づいて基板をリビジョンアップしました。結果を図29に示します。

同じようにJLCPCBに基板を注文しましたところ,やはり4営業日ほどで到着致しました。今度はレジストを青色にしてみました。

*1:筆者はこの時代,「ハイブリッド秋葉原」を標榜していました。これは,秋葉原における電子工作・コンピュータ技術と「萌え」の両方を楽しもうというコンセプトです😅 近年では「推し」という語に押され,「萌え」が隅に追いやられたように感じますね…。
*2:実は何年か前にも旧PCにインストールはしていましたが,挫折していました。
*3:手抜きかもしれませんが,書ききれません…。
*4:こういう設計で良いのかどうか…。他の本でも勉強してみます。
*5:最初からシンボルとフットプリントが紐づいている部品もあります。
*6:「Edge.Cuts」というレイヤに図形を描くとそれが基板の外形になります。
*7:プリント基板と電子部品の世界ではインチとミリが混在しているので,KiCadのフットプリントエディターやPCBエディターではグリッドをすぐに切り替えられるようになっています。
*8:ペテットを張り付けると,窓付き缶ケースにぎりぎり収まる大きさになります。少しぎりぎり過ぎました…。
*9:図2の基板を作った20年前にはサーマルランドとならず,ベタパターンへのハンダ付けに苦労した記憶を思い起こします。
*10:PICマイコン,Raspberry Pi,ESP32マイコンなど,様々なプラットフォームで光らせる記事にしようと考えています。