KiCadでシングルボードコンピュータ作っている話

この記事はKiCad Advent Calendar 2015 15日目です。
14日目はtunguska112さんのKiCadのPython scripting機能を使ってみるでした。

開発途中もいいところなんですが書きます。完成してから書けって?間に合わなかったんだよ。

現在GC3というシングルボードPCを開発中です。シングルボードコンピュータとは携帯電話用プロセッサを搭載しLinuxBSDが(最近だとWindowsも?)動作するボードのことです。これを読んでいるひとならRaspberry Piみたいなものといえばピンとくるかと思います。

GC3はOLIMEX社のOLinuXinoからのフォークです。

性能諸元はこんな感じになる予定

  • Cortex-A8 1GHz
  • SDカードブート
  • LCD出力
  • USB-HOST
  • USB-OTG
  • UART x2
  • JTAG
  • GPIO

なぜKiCadを選んだのか?

ほぼ何も考えずに始めたプロジェクトでしたが一つだけ決めていたことがあります。それはオープンソースハードウェアにしよう、最終的に設計はコミュニティに引き渡そうということです。となれば当然CADもオープンソースであることが望ましいわけで(設計に参加したい?回路見て勉強したい?じゃあまずXXX万円のCAD買ってね♡)オープンソースの回路図CADを探しました。その中で最も機能的に優れていたのがKiCadでした。

回路設計&基板設計

回路図はこんな感じ。

f:id:masahirosuzuka:20151209001514j:plain

一枚目

f:id:masahirosuzuka:20151209001439j:plain

二枚目

人によってまちまちでしょうがこの回路では一枚目は電源等回路全体に影響するもの。二枚目以降に回路の詳細を書いていく方式をとっています。

個人的にKiCadの最大の難点と思っているのですがKiCadの回路図は階層式です。一枚目の回路の右下に妙な四角形がありますがこれが二枚目の回路というわけ。

もし友達に「これから電子工作はじめるんだけどいいツール知らない?」と聞かれたとしたら複数枚の回路図を描くときやや戸惑うことになると念を押したうえでKiCadを勧めると思います。

Digi-Keyで大半のパーツが買えるように設計しました。個人プロジェクトの場合部品の入手性が最大の問題になることがあります(自戒)。

フットプリントの割り当て

KiCadの大きな特徴としてコンポーネントとフットプリントが別管理であることが挙げられます。それのなにが嬉しいのか?この基板を設計中「同じICなんだけども別のパッケージを使いたい」みたいなことがありました。こういった場合にフットプリントを入れ替えるだけで済むのは気が楽でした。

レイアウト

f:id:masahirosuzuka:20151209001145j:plain

表面

f:id:masahirosuzuka:20151209001218j:plain

裏面

GC3は4層ですが内部層はGNDとPWRなので割愛。

なんて名前だったか部品を重ならないように自動的にバラバラに配置してくれる機能が活躍しました。

等長配線をしていますがこれは手で行いました。等長配線機能の実装が楽しみ(切実)。

シルクの大きさと幅は以下の通りにしています。ご参考までに。

  • 幅0.8mm
  • 高さ0.9mm
  • 太さ0.125mm

また、KiCadにはシルクの大きさを一括で変更してくれる機能が搭載されています。

とりあえず部品実装してみたのがこれ

f:id:masahirosuzuka:20151209002656j:plain

今のところハードウェアのデバッグ?テスト?中。はやくカーネルにたどり着きたい(妖怪人間風に)。

まとめ

  • KiCadは商用CADに匹敵する機能を備えている。
  • オープンソースハードウェアを本気でやるならKiCadを選ぶべき。

ごちゃごちゃ書きましたが言いたいことはこれだけです。個人的にはかつてGCCオープンソースソフトウェアに対して果たした役割をKiCadがオープンソースハードウェアに対して果たすのかもしれないと考えています。

16日めはkinichiroさんのエフェクター自作のKiCadの手癖です。