C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

KiCad 初見プレイ完結編。最初の練習用 PCB の完成まで

(※前回の続編です。前回 👉 「自作キーボード界隈で賑わうそのハッシュタグの謎をあきらかにすべく我々は KiCad の入り口へ向かった」

現在の状態

  • KiCad で練習用に簡単な回路を eeschema と pcbnew で設計
    • eeschema 👉 完成したつもり
    • pcbnew 👉 部品配置、配線などおおむね完成したつもりでいるが…
      • 一部に無理やりな対応方法をしたところがきになっている( vias で開けた +5V, GND の穴のレジストのマスクが pad ではなく polygon )
      • DRC にエラーが6件出ていた(詳細は前回おわりにオネムになっていたので「いっぱいでた!またあした!!」くらいにしか見ていない)

eeschema

f:id:USAGI-WRP:20190217061118p:plain

footprints

f:id:USAGI-WRP:20190217061205p:plain

pcbnew

f:id:USAGI-WRP:20190217072232p:plain

DRC Control で出ていたエラーメッセージたち

f:id:USAGI-WRP:20190217065023p:plain

完成までの残りタスク

  1. +5V, GND の穴のマスクを無理やりなポリゴンではなく丸いやつ(pad?)にする
  2. pcbnew の DRC のエラーをすべて解消する

オプショナルなタスク

それでは続編、やっていきましょー!

1. +5V, GND の穴のマスクを無理やりなポリゴンではなく丸いやつ(pad?)にする

f:id:USAGI-WRP:20190217073348p:plain

この手の穴、わたしは少々嵩と部品が増えても基本的にはピンソケットを立てたい派🐰 そこでピンソケットのフットプリントがあれば、その作り方はさておき、この練習用回路設計としてはいい感じに目的を果たせるのではないか…と、考え、今回使用中の KiCad 公式ライブラリーからピンヘッダー、ピンソケットのフットプリントがないか探してみる事にしました。

f:id:USAGI-WRP:20190217074151p:plain

f:id:USAGI-WRP:20190217074301p:plain

ありました😃

と、思ったのですが、Place symbol で "pinsocket" も "pinheader" も検索に引っかからないんですね…。グーグル先生に伺ってみると、

なるほど、回路図面上では "conn" らしい。(昨日は抵抗も "res" で出てこなくて "R_" だったので少し慣れてきました。こういうの😅)

f:id:USAGI-WRP:20190217074434p:plain

と、いうわけで eeschema に戻り "conn" を配置して +5V, GND の接続を修正しました。アノテート、ERCも再度行いました。

f:id:USAGI-WRP:20190217075316p:plain

追加した "conn" に "pinsocket" を Assign PCB footprints to schematic symbols で関連付け。

f:id:USAGI-WRP:20190217075800p:plain

Generate netlist して、 pcbnew で Read netlist すると、 "Conn_01x02_Female" ピンソケットのフットプリントが ≪白い線≫ 付きで追加された😃

f:id:USAGI-WRP:20190217080123p:plain

少なくともこの戦術は、今回の目的に対しては思惑通りにうつくしーマルとシカクの pad な穴とマスクを pcbnew へ齎してくれました。善き善き。

ピンソケットのフットプリントを見ると基板が小さすぎたので、基板の大きさを見直して 24mm × 16mm を 30mm × 20mm へ変更。部品の配置を調整して、配線も見直しました。

f:id:USAGI-WRP:20190217083341p:plain

f:id:USAGI-WRP:20190217083650p:plain

f:id:USAGI-WRP:20190217083718p:plain

2. pcbnew の DRC のエラーをすべて解消する

改めて DRC で Start DRC をぽちっとなー。

f:id:USAGI-WRP:20190217083808p:plain

あら、エラーが1つも出てこなくなった。昨夜は狭すぎる的なエラーが出ていた気がするので、配置に余裕をもたせて配線を引き直した事で気づかないうちに解消してしまっていたようです😅

Appendices

はじめての PCB 設計練習、完了までまだ何かと問題が起こるかなーと思っていたのだけど、そうでもなかったのでもうちょっと仕上げっぽいおまけを。

A.1. GND ベタ

今回の基板には不要だけど、一般的にマイコンを載せる PCB は GND ベタでノイズとか EMC 低減とか図るらしく、自作キーボードの公開されている基板でもだいたいきちんと GND ベタが回ってるので、練習としてこの基板にも GND ベタを施してみることに。

ベタを作る操作は簡単でした😃 Add filled zones で F.Cu, B.Cu に基板全体を覆うと、端子や配線を考慮していらない所が繋がらないようにベタの領域群を自動生成してくれました。べんり。

f:id:USAGI-WRP:20190217095612p:plain

f:id:USAGI-WRP:20190217095823p:plain

f:id:USAGI-WRP:20190217095836p:plain

3DCG でも基板にベタが入っているのが透けて見てわかるようになりました。

f:id:USAGI-WRP:20190217095952p:plain

f:id:USAGI-WRP:20190217100009p:plain

一般的に見かけるかっこいい PCB に少し接近できました。

A.2. シルクスクリーンで何か描く

F.SilkS, B.SilkS へにゃんにゃん描いてみます🐰

f:id:USAGI-WRP:20190217101333p:plain

f:id:USAGI-WRP:20190217101354p:plain

裏面にこの PCB の識別情報っぽいものを書いてみました。

表面では絵を入れる方法の練習を。

KiCad にお絵かきを基板へ入れるための仕組みが内蔵されているんだね😃 トラブルが起こらなければ簡単にできそう。(絵を描くのが簡単とは言ってない😅)

Bitmap to Component Converter で Load Bitmap してみる。

f:id:USAGI-WRP:20190217102932p:plain

どうやらここでいう "Bitmap" は文字通りのビットマップ、ラスター画像という意味で、いわゆる狭義の .bmp 形式である必用は無いらしい。いつもの私のアイコンも PNG 形式から読み込めた。

.kicad_mod 形式で出力できるので、適当なディレクトリーを用意して出力。今回は artwork ディレクトリーを用意してそこへ出力した。それから、このディレクトリーを pcbnew の Preferences 👉 Manage footprint libraries... から Browse Libraries... して追加。

f:id:USAGI-WRP:20190217105211p:plain

これで Add footprint から他の部品類と同じ仕組みで artwork へ出力した絵を PCB 上のシルクスクリーンなどへ描き込める。

f:id:USAGI-WRP:20190217104905p:plain

f:id:USAGI-WRP:20190217105402p:plain

…でかすぎた😅

f:id:USAGI-WRP:20190217105449p:plain

どうやら .kicad_mod で出力してから先はスケーリング等も行えないらしい。↑で 0.2 倍になるかと思ったけれど、 PCB 上では何も起こらないものだった。

f:id:USAGI-WRP:20190217105720p:plain

もう一度 Bitmap to Component Converter へ戻って、 Bitmap Info の枠の中で変更できるようになっている Resolution を調整して、今回の基板サイズへ入るようにする。

f:id:USAGI-WRP:20190217112101p:plain

f:id:USAGI-WRP:20190217112127p:plain

できたー😃

と、いうわけで今回の初見プレイ KiCad による PCB 設計の練習は完成です。

PCB 作るの、楽しいですね♥