LED通信事業プロジェクト エンジニアブログ
KiCadでRaspberryPi4用の基板を設計する
記事更新日 2024年1月30日
はじめに
2023年末ごろから、既製品の基板同士を安定して接続するための専用接続基板作成を行っており、数年ぶりに基板設計CADのKiCadに触りました。良い機会だということで筆者自身の備忘録も兼ねてブログとしてまとめていきます。まだまだ機能を活かしきれてないところもありますが、暖かい目でお読みくだされば幸いです。
KiCadのダウンロード
まずは基板設計CADソフトであるKiCadをインストールしないことには始まりません。KiCad公式サイトからDownloadページに移り、使用中のPCのOSに適したインストーラーをダウンロードします。DL先のサーバーはどちらでも内容は同じようですので、今回は皆さんおなじみのGitHubからDLしてみます。
フリーで使えて商用利用も可能ですので、私のように大規模な基板設計を行うわけでは無い立場としては、非常にありがたい基板設計CADソフトです。KiCadは個人の方からの寄付も受け付けておりますので、気に入った際は是非ご支援していただければと思います。
また、ブログ執筆時に公式サイトを確認していて知りましたが、現行のVer7に機能を追加したVer8安定版の候補 (RC1, RC2) が公開されており、2024年1月末には正式な安定版が公開される予定とのことです。この記事が更新される頃には、Ver8安定版が公開されているかもしれませんね。非常に微妙な時期ですが、本ブログでは触ったことのないVer8ではなく、基板設計に用いた実績のあるVer7にて執筆していきます。
KiCadのインストール
インストーラーがDLできたらexeファイルを実行し、インストールを進めていきます。
Nextを何度か押すと、コンポーネント選択画面が出てきます。ライブラリー関係は後の基板設計で大いに役立ちますので、基本的にチェックボックスは全てデフォルトのまま進めていきます。
インストール先についても基本的にデフォルトで良いのですが、デフォルトではKiCadフォルダの下にメジャーバージョンごとのフォルダが作成されます。後に公開される予定のVer8でも同様にフォルダ作成されるでしょうから、インストール先を手動設定される方 (筆者もです) は念のため、バージョン毎のフォルダ分けをしておいた方が無難かと思います。新バージョンでなんらかの障害が発生した際、旧バージョンで一時的に作業が再開できる可能性があります。
ただ、旧バージョンで作成したプロジェクトを新バージョンで開いた後に保存してしまうと、プロジェクトが新バージョン用に上書きされてしまい、旧バージョンでは開けなくなってしまう症状を以前から耳にします。Ver8でも同様の症状を抱えている場合、一旦Ver7に戻って作業再開が可能かは未知数なところがあります。
新規プロジェクト作成
それでは、RaspberryPi4用の基板設計を進めていくために、新規プロジェクトを作成します。
KiCadを起動すると「回路図エディター」「シンボルエディター」のように各機能の入り口となるウィンドウが立ち上がります。新規プロジェクトの作成は、ウィンドウ上部メニューバーの「ファイル」から「新規プロジェクト」を選択し、適切なフォルダを選択した後にプロジェクト名を入力します。今回作成する基板に合わせて「RaspberryPi」フォルダの中に「ConnectPCB」というプロジェクトを作成しました。
今回作成する基板は、GPIOピンのオスメス反転と冷却ファンを接続するための基板です。
RaspberryPiのGPIOピンはICピン (オス) がはんだ付けされており、GPIOピンからブレッドボードに配線を伸ばす際、片側メスのジャンパー線が必要になります。買えば済む話ではあるのですが、ブレッドボード上では両オスのジャンパー線を使っていますし、配線の種類を増やさず共用できた方が便利と個人的に考えているので、GPIOピンをICピンからICピンソケット (メス) に変換します。
RaspberryPiは特に4から発熱量が増加し、ヒートシンク貼り付けでの自然冷却のみではなく、ファンを使った強制冷却を行う方がCPU温度を低く保って安定動作ができます。RaspberryPi4用ケースを選ぶ際はファン付きのものを購入するようにしているのですが、GNDと低速回転用の3Vもしくは高速回転用5Vの2本分のピンが専有されてしまいます。ファン駆動に必要なピンをICピンソケットから分岐させることで、ピンを専有されないようにします。
また、いつの間にかRaspberryPiOSにファン制御機能が追加されていました。CPU温度に応じたPWM制御をGPIOピンに出力できるようになっており、デフォルトではGPIO14ピンが割り当てられています。PWM制御可能なファン (例えばRaspberryPi公式サイトで販売されている3ピン接続のファン) を使用する際、信号線をGPIO14に接続することでCPU温度に応じた速度で回転するようになります。手元にあるファンは+-の2ピン接続なのでファン制御機能は活かせていませんが、せっかくなのでGPIO14ピンも分岐させ、3V・5V・GPIO14・GNDの合計4ピンを分岐させる構成とします。
回路図エディター
まずは作りたい基板に対応する回路図を作成していきます。今回は電子回路的なことは何も考えず、ピン同士の接続だけ考えれば良いので気持ちが楽です。
KiCadのメインウィンドウから「回路図エディター」をクリックして回路図エディターを展開します。回路図エディター上の図面に対して「シンボル」と呼ばれる記号を配置し、シンボル間に配線を張り巡らせることで回路を構成していきます。
シンボル配置のため、画面右側のアイコンから「シンボルを追加」をクリックし、シンボル選択画面を開きます。初回はライブラリのロードに時間が掛かるので、終わるまで待ちましょう。シンボル選択画面では画面上部の検索ボックスに「con 02x20」(コネクター 2列✕20ピン) と入力し、検索結果から 「Connector_Generic: Conn_02x20_Counter_Clockwise」(一般的なコネクター 2列20ピン 反時計回りにピン番号付与) を選択します。
さらに右側にあるシンボルの参考画像下には「デフォルトのフットプリントはありません」と表示されているので、プルダウンリストから「Connector_PinSocket_2.54mm: PinSocket_2x20_P2.54mm_Vertical」を選択します。フットプリントとは、はんだ付けを行う際に必要となるスルーホールやパッドが配置された情報のことで、実際の寸法に合わせて設定されています。後からシンボルに対してフットプリントを割り当てることも可能です。P2.54mmはパッドが2.54mm間隔 (ピッチ) で打たれていることを意味します。RaspberryPiのGPIOピンは2.54mm間隔のICピンで構成されているので、ここで実寸に対応するフットプリントを割り当てたことになります。
ここまで選択できたら「OK」をクリックして、シンボルを図面に配置します。これで、RaspberryPiのGPIOピンの受けとなるICピンソケットが配置できました。次に、ジャンパー線の受けとなるICピンソケットを配置します。直前に配置したシンボルをそのままコピペします。これで2列✕20ピンのシンボル配置は終了です。
次に、ファン用のICピンのシンボルを選択します。上記同様にシンボル選択画面を展開し、検索ボックスに「con 01x04」(コネクター 1列✕4ピン) と入力し、検索結果から 「Connector_Generic: Conn_01x04_Pin」(一般的なコネクター 1列4ピン) を選択します。さらにフットプリントには「Connector_PinHeader_2.54mm: PinHeader_1x04_P2.54mm_Vertical」を割り当て、図面に配置します。
回路図エディターでは、設計者が見やすい位置であれば位置関係は問いません。実寸での設計は次章のPCBエディターで行うので、回路図エディターでは電気的な接続さえ間違っていなければ良いです。
ここまで3点のシンボルを図面上に配置できたら、シンボルに含まれるピン同士を配線で結びます。
配線を施していくには、右側アイコンから「ワイヤー」をクリックして、図面に配線 (ワイヤー) を配置していきます。ICピンソケット側は同じピン番号同士を結び、ICピンソケットから4本のICピンに対して、3V・5V・GPIO14・GNDの4本分を分岐して繋ぎます。シンボルのピン番号とGPIOピンの対応は図8に記載の通りです。
全てのピンを接続できたら、ようやく回路図の作成は終了です。やることは単純ですが、ピン数が多いと一苦労ですね……
PCBエディター
前章で設計した回路を実寸でパターン配線図に落とし込んでいくのが「PCBエディター」の役割です。回路図エディター同様、KiCadメインウィンドウからクリックして開きます。
PCBエディターを開いた段階では図面に何も表示されていないので、回路図エディターの内容を反映させるところからはじめます。画面上部アイコンの「回路図で行われた変更で基板 (PCB) を更新」をクリックし、展開したウィンドウの「基板を更新」を押すと、回路図エディターで配置したシンボルに対応したフットプリントが図面に表示されます。
テストとして位置を離して配置してみましょう。フットプリントを動かしてみると、青い線で結ばれていることに気づくかと思います。こちらの線が、回路図エディターで配線を施した箇所で、線で結ばれた箇所同士にパターンを貼り巡らせていくのが、PCBエディターで行う作業です。
どのように部品を配置するか検討した結果、オスメス変換のICピンソケットは互いに近傍に設け、ファン用のICピンはピンソケットに対してL字になるように配置することにしました。
ファンを取り付けるための穴も付近に用意する必要がありますので、画面右側アイコンから「フットプリントを追加」をクリックして、フットプリント選択画面を開きます。検索欄に「hole」と入力し、検索結果から「MountingHole_3.5mm」を選択し、3.5mm穴のフットプリントを図面に配置します。ファンには4つの角に取付穴がありますが、その内2つの穴のみを取付けに使用することにします。ファンの穴間隔を測ったところ29mm間隔でしたので、コピペした3.5mm穴のフットプリントを29mm間隔で図面に配置します。
使用するファンによっては、取付穴に用いるボルト径や穴間隔が異なる可能性があります。手元にあるRaspberryPi4ケース2種のファンについて計測してみたところ、ボルトは共にM3でしたが取付け穴の間隔が25mmのものがありました。部品に応じて寸法を適切に変更していただければと思います。
パターンを張り巡らせてフットプリント同士を結んでいきたいのですが、フットプリントに付与されたピン番号の並びが、シンボルに付与されたピン番号と異なる (反時計回りに1~40ではない) ことが発覚しました。フットプリントのはんだ付け箇所をダブルクリックし「パッドのプロパティ」を開き「パッド番号」と「ネット名」を修正していきます。パッド番号はシンボル通り反時計回りに1~40の数字を割り当てるだけなのですが、ネット名が少々難解です。基本的にはネット名の「Net-(J1-Pin_xx)」のxx部分はパッド番号と揃えるだけでOKです。
しかし、3V・5V出力端子やGNDについては、回路図エディターで設計していた際に電力供給端子同士、GND同士で接続していたため、パッド番号と同一の番号が振られたネット名が見つからないことがあります。例えば、パッド番号40は隣り合う39番と同じ5V出力端子でしたので、40と39番を接続した後にファン用5V端子へと接続していました。この場合「Net-(J1-Pin_39)」に40・39番パッドの接続情報がまとめて含まれているので「Net-(J1-Pin_40)」というネット名は存在しません。そのため、40・39番パッドには「Net-(J1-Pin_39)」を割当てます。GNDについても同様に割り当てを行います。
パターンを張り巡らせる前段階として、パターン幅を調整しておきます。
ブログをお読みくださる方はご存知かと思いますが、配線はそれ自体が抵抗を持ち、配線の断面積が倍になると抵抗は半分に、配線長が倍になると抵抗も倍になります。可能な限り太く短い配線を用いるのが配線抵抗を減少させる方法で、基板も同様にパターンは可能な限り幅を広く短く張り巡らせることを意識します。
ごく一般的な基板のに用いられる 1oz=35μm 厚の銅箔の場合、1mm幅のパターンで流すことができる電流は1Aという数値が目安としてよく使われています。実験された方によると1.5~2A流しても問題なさそうに感じる、とのことでしたが、ここでは先人に倣って1mm@1Aとしておきます。
また、同じ幅でも許容できる電流を増加させるため、銅箔を厚くして断面積を増やすことも可能です。基板の製造原価として響いてくるので、可能な限りパターン幅だけで調整したいところではあります。
RaspberryPi4においてGPIOピンは各16mA・合計50mAが上限、5V・3V出力端子では100~500mA程度ではないか (申し訳ありませんが明確な数値が見つけられず) と言われています。そのため、GPIOの信号線接続では0.1mm幅、5Vの電力線でも0.5~0.6mm幅あれば安定稼働できると考えられます。基板のパターン幅を複数種管理するのも手間ですので、デフォルトより広げつつパッド間に干渉しない幅として0.4mmにまとめてしまいます。5Vに関してはパターン手動で編集しますが、ケース付属のファンであれば定格電流が120mA程度ですので、0.4mmのままでも十分かと思います。
パターン幅の設定は画面上部、デフォルトでは「配線: ネットクラスの幅を使用」となっている箇所のプルダウンメニューから「定義済みのサイズを編集」をクリックすることで既定値を変更できます。「配線 幅」欄の下部にある+のアイコンをクリックし、配線の幅に「0.4mm」と入力します。
配線幅の設定が完了したら、右側アイコンの「配線」を選択し、接続したいパッド同士を接続していきます。始点となるパッドから配線を伸ばすと、共通のネット名を持つパッドがハイライト表示されるので、接続先に迷うことはないかと思います。今回は2層基板ですので、基板表面と裏面のレイヤーを使い分け、配線が同じ面で交差しないようにします。画面右側の「レイヤー」から「F.Cu」「B.Cu」をクリックすることで、配線を配置する面を指定することができます。今回のような規模ですとパズル感覚で組めますね。
前述した5V電力線の編集ですが、配線をダブルクリックすると「配線とビアのプロパティ」が開くので、配線幅に「0.6mm」を入力します。実際に組んでみると3Vのパターン周辺に余白があったので、おまけとして5V同様0.6mm幅を指定しました。
パターン配線ができたということで、次に基板外形を設計していきます。
まずはレイヤーを「Edge.Cuts」に切り替え、右側アイコンの「線を描写」「円弧を描写」「矩形を描写」等を使用して、基板の外形を引いていきます。今回は、長方形の基本形状からファンの導風用の切り欠きを設けました。
基板の外形が引けたら、いよいよ3Dビューアーを使って、これまで設計してきた基板がどのような外観をしているのか見てみましょう。
上部メニューバーの「表示」から「3Dビューアー」を選択します。PCBエディターでの設計内容が反映された3Dモデルが表示されます。ICピンソケットが共に表面に出てしまっていますが、実際には表裏で各1つずつの想定です。裏面を確認すると、パッド間をパターンが通っている様子が確認できます。表面には不要な印字があるので、PCBエディターに戻って印字の編集を行いましょう。
レイヤーから「F.Silkscreen」を選択し、不要な印字「REF***」や「J1~3」を削除します。印字をクリック後にDeleteキーで削除できます。
削除後に、ファン用ピン付近への印字を配置します。画面右側のアイコンから「テキストアイテムの追加」を選択肢、印字内容を入力します。ピンの接続は向かって左から3V・5V・GPIO14・GNDですので、各ピンの機能がわかるような内容として「3V 5V G14 GND」を入力します。配置後にフォントサイズを調整したい場合、配置したテキストをダブルクリックすると編集画面が開くので、フォントの幅や高さ、太さを指定します。
「B.Silkscreen」レイヤーを選択することで基板背面の印字も編集できますが、RaspberryPiに装着後は全く見えないですし、背面に実装する部品もないので今回は触りません。
印字内容の編集が完了したら、再度3Dビューアーを開いて見た目の確認を行いましょう。これでGPIOのオスメス変換をしつつ、ファン接続を行う基板ができあがりました!
ノイズ耐性を上げるベタGNDは未実施なのですが、配線長も短いですし注意せずに施してしまうと逆効果な部分もあるので、今回の設計についてはこれで終了とします。
弊ブログの3Dプリンター関連記事では、自前の3Dプリンターで造形することも多かったのですが、さすがにプリント基板は外注しないと作れません。今すぐに必要な基板というわけではないので、発注をかけずに設計段階で終わりです。
今後、RaspberryPi4を頻繁に活用するようになった際、今回設計した基板を発注したり、「シンボルエディター」や「フットプリントエディター」を活用して自作部品を取り込む方法をまとめようかと考えています。
まとめ
以上、KiCadでRaspberryPi4用の基板を設計する、でした。
自分で電子回路を組むにはまの知識を要求されますが、今回のようにピンアサインを揃えた接続基板であれば意外と簡単に作れてしまいます。ユニバーサル基板にスズメッキ線を張り巡らせて基板を構成するのも良いですが、基板設計を行い自作プリント基板が作れると、数を作る際の作業性やフィールドテストでの安定性が高まります。
電子工作で一歩進んだ遊び方ができるようになる基板設計CAD、皆さんも触れてみませんか?