2015年6月5日金曜日

KiCadで作成したパターンをelecrowに出図







パターンを引き終わったらDRCを掛けます。
エラー、未配線とも無いことを確認しファイルメニューのプロットからガーバーデータとドリルデータを出力します。
必要なレイヤーはF.Cu,B.Cuの銅箔レイヤー、F.Silk,B.Silkのシルクレイヤー、F.Mask,B.Maskのレジストレイヤー、Edge.Cutsの外形図です。
オプションはフットプリントの参照記号を出力のみ選択します。
ガーバーオプションはProtelの拡張子を使用する。とシルクをレジストで抜く。を選択し、4.6mmで製造ファイル出力を行います。
ドリルデータの方は単位をmmに変更、リーディングゼロサプレス、ガーバーフォーマット、補助座標系を選択しドリルファイルを生成します。
出来上がったガーバーデータ、ドリルデータをガーバービューアーで開いて確認します。
ドリルの穴位置とガーバーの穴位置があっていること、シルクなどの位置を確認してOKならzipで固めてelecrowで手続きします。
今回は67mmX27mmの基板なので100mmX100mmの基板に3面付けしてv-cutを入れてもらい10枚オーダーします。合計30枚出来上がる計算です。
前回は香港DHLを選んだので比較のため深圳DHLを選んでみます。


3/8(日) 注文
3/9(月) 受付、製造開始
3/19(木)19:19出来上がったと写真付きメール、発送したとのDHLのtracking numberの連絡
3/19(木)
1       Shipment picked up                  SHENZHEN - CHINA 20:01
2       Arrived at Sort Facility            SHENZHEN - CHINA 22:03
3       Processed at SHENZHE                SHENZHEN - CHINA 22:36
4       Departed Facility in SHENZHEN       SHENZHEN - CHINA 22:40
5       Customs status updated                     HONG KONG 23:49
6       Clearance event                     SHENZHEN - CHINA 23:50
3/20(金)
7       Clearance processing complete       SHENZHEN - CHINA 00:20
8       Arrived at Sort Facility                   HONG KONG 03:33
9       Processed at HONG KONG                     HONG KONG 04:00
10      Clearance processing complete at HONG KONG HONG KONG 04:00
3/21(土)
11      Processed at HONG KONG                     HONG KONG 02:19
12      Departed Facility in HONG KONG             HONG KONG 02:19
13      Customs status updated                 TOKYO - JAPAN 09:32
14      Transferred through                    TOKYO - JAPAN 10:37
15      Arrived at Sort Facility               TOKYO - JAPAN 12:35
16      Clearance processing complete at TOKYO TOKYO - JAPAN 13:07
17      Processed at TOKYO                     TOKYO - JAPAN 16:05
3/22(日)
18      Processed at TOKYO                     TOKYO - JAPAN 21:15
3/23(月)
19      Departed Facility in TOKYO             TOKYO - JAPAN 01:51
20      Arrived at Delivery Facility in TOKYO  TOKYO - JAPAN 07:03
21      With delivery courier                  TOKYO - JAPAN 08:27
22      Delivered                              TOKYO - JAPAN 12:13

と10日(土日を除くと8日)で製造、4日(日曜を除くと3日)で届きました。
前回は11日(土日を除くと7日)で製造、3日で到着だったので3面付け、v-cutの分で1日余計にかかっている感じです。
出来上がった基板です。



Panelizeと送料含めて$40.27=¥5045でした。

これに部品を載せます。



古いHA-2基板との比較です。



 左側が新しい基板です。
改修がなくなり作るのが楽になりました。


2015年5月29日金曜日

KiCadでパターン設計 その2



部品配置まで終わったら、自動配線をするのですが現在ネット上のFreeRouterは使えないようなのでここの手順を参考にスタンドアロン版を実行しました。

最初にPcbnewのツールー>FreeRouteのSpecctraDSNファイルのエクスポートを実行

linkの手順の中のダウンロードの方法1に書かれているfreeroutingの汎用版を
https://github.com/freerouting/freerouting/raw/master/binaries/FreeRouting.jar
から取得します。

これを実行するのに必要なJRE8をOracleからダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

コマンドラインから
# java -jar FreeRouting.jar

で起動するのでDSNファイルを読み込み自動配線を行います。
結構時間がかかります。
長時間やっても解決しない場合は適当に止めて残りを手で配線したほうが早いです。
で出来上がったものを再度Pcbnewに読み込みます。
配線がどこを通っているのかなどはひと通り確認した方がいいです。
かなりちゃんとひいてくれますが、たまにすぐ近くのピン同士をつなぐのに配線をよけてものすごいところまで迂回しているものがあったりします。

未配線のところや妙に引き回されている配線を押しのけ配線モードをonにしてひいていきます。
押しのけ配線の様子はyoutubeでkicad interactive routerで検索するとでてきます。
押しのけ配線をonにするにはちょっと判りにくいです。
1.Pcbnewの表示メニューでSwitch Canvas to OpenGLでOpenGLモードにする。
2.右側の上から5番目の配線とビアの追加をon
3.描画領域内にカーソルを持って行きEキーを押す、もしくは右クリックメニューの一番下、配線オプションを選択するとインタラクティブ配線設定のメニューが出ます。
モードの押しのけを選択、オプションはビアの押しのけ、余分な配線を削除、自動ネックダウン、セグメントをスムーズに移動をオンにします。
これで配線を引いていくとDRCの設定に従って他の配線が押しのけられていきます。
ヌメヌメと配線が動いていって気持ちいい?です。

そして適当に修正を入れて、シルクを整えたものがこれです。




2015年5月22日金曜日

KiCadでパターン設計 その1

回路図エディタでERCをかけて問題ないことを確認後、NetをPcbnew用に出力、Cvpcbでリファレンスとフットプリントの関連付けを行います。
その後、Pcbnewを開いてパターンを作成していきます。
最初にデザインルールを設定します。
基板は今回もelecrowにお願いするつもりなのでelecrowのルールを設定します。
ただ、via,パターン間のクリアランスはギリギリを狙わずに200umにしておきました。
手付けで部品をつけていく時に150umだとviaがpadと近すぎてハンダでブリッジしやすくなるためです。
次に部品配置とパターン作成の枠になる外形図をEdge.Cutsレイヤーに書きます。
そのあとNetを読み込むと部品が1箇所にまとめて配置されますので展開します。
ちょっと判りにくいのですが、表示モードを通常モードに戻して上のアイコンからフットプリントモードを選択します。(右から4番目のICに矢印が付いているアイコンです)
その状態で何もフットプリントを選択せずに画面上で右クリックすると上から2番めにグローバル移動・配置のあるメニューが出てきます。ブロック選択をしているとブロックのキャンセルとかが上にあるメニューになってしまうので、選択を解除してから右クリックします。
グローバル移動・配置の中の全てのフットプリントを展開を選択して実行するとフットプリントが重ならないように展開されます。
この状態でA面B面の部品の配置を選択してしまいます。
私はDIP部品と大きめの部品、ICは基本的にはA面、SMDのうちCR等の小さめの部品をB面に配置していますが作成する基板の層構成によっても変わるので作る基板に合わせて下さい。
次に部品の位置が決まっているものをその場所に配置していきます。
今回の基板の場合はコネクタとXBeeの位置は決まっているので最初に配置、あとは大物の部品がラッツネットが多いので、ピン数の多い大きな部品からできるだけ素直な信号の流れになる方向、場所を選んで配置していきます。
その後、大物の周辺の部品を大物の近くに素直な信号の流れになるように配置、大物同士の間に適当な隙間を開けながらその他の部品を配置していきます。

2015年5月15日金曜日

KiCadで部品のフットプリント作成

回路図からcvpcbを実行してフットプリントの無いものを拾っていきます。
フットプリントエディタは回路図エディタからでなく、パターンエディタ(Pcbnew)の方で表示->Switch Canvas to OpenGLに切り替えてから使います。
基本的にはこちらの方がサクサク動いて使いやすいのですがPadのpropertyだけは標準モードと同じで開くのに時間がかかります。
ほとんどの部品のフットプリントは標準ライブラリから持ってこれます。
標準部品として存在しているものは大きさ、ピンの配置、ピン番号、ピンのサイズを確認し、コピーしてLocalLibraryに登録していきます。修正が必要な物はコピーした方を修正し名前を変更内容がわかるように付けておきます。
私が直したところはSMD部品のPadが手付けするには厳しそうなところを少しコテをあてやすいように伸ばしたり、DIP部品の孔径が大きすぎるものを修正したりといったところです。
回路図用の部品シンボルは修正すると回路図にすぐ反映されますが、フットプリントはパターンに対しては独立しているので修正した場合は一度部品のフットプリントを削除してから再度Netの読み込みをしてフットプリントを繋ぎ直す必要があります。
なので、パターンを引く前に念入りにフットプリントを確認しておいたほうが手間がかからなくていいです。

2015年5月8日金曜日

KiCadで回路図作成

今回は以前CadlusXで作成したHA-2基板を作り直しHA-3基板を作ります。
FRISKケースに収めたXBee経由で赤外線リモコンやHA端子、弱電の接点コントロールの機器をリモート・コントロールするためのモジュールです。
雷対策とか機能追加などで改修項目が増えてきて作るのが大変になってきたので作りなおすことにしました。
前回、回路図用の部品をひと通り作ったので回路図自体はすぐに書き終わりました。
以前作ったHA-2基板の回路図と改修内容の修正内容がちゃんと盛り込まれているかひと通り確認しました。
HA-2基板で念の為に入れていた抵抗で機能を切り替える部分もFixしているので外して手間を削減するようにしました。
回路図はこんな感じです。


1時間程度で書くことが出来ました。


2015年5月1日金曜日

KiCadで回路図用部品作成

KiCadの場合、EAGLEと違って部品が回路図用のコンポーネントライブラリ(.libファイル)と基板デザイン用のフットプリントライブラリ(モジュールライブラリ、.kicad_modファイル)、両者の対応を記述するCvPcbで生成される関連付けファイル(.cmpファイル)で構成されています。
私はEAGLEのほうが特殊でKiCadの管理の仕方のほうが理にかなっていると思います。
今回もEAGLEの時と同じで、基本的には自分のLocalに使う部品を集めて管理します。
基本的には標準ライブラリに存在しているものは確認してコピーして使用、ないものは自分で作るという方針で自分のライブラリを育てていきます。あとはEAGLEから変換することも出来るようです。
コンポーネントエディタの使い方は詳細な日本語マニュアルがあるので割愛します。
KiCadは日本語の詳細なマニュアルが付属しているので非常に助かります。
自分のライブラリを育てるためには、最初にメニューバーの設定ー>アクティブなライブラリを設定でユーザー定義パスを設定する必要があります。
あとは近い形のものを標準ライブラリから読み込んで編集し名前を付けて保存していきます。
私は試行錯誤で色々EAGLEと同じように部品ごとに回路図用記号を作成してしまい失敗しました。
KiCADの場合は例えば4ピンのコネクタなら1種類回路記号を作って、フットプリントとの結びつきで部品を分けるべきでしたが、種類ごとに同じ形の回路記号を作ってしまいライブラリに無駄な部品が沢山出来てしまっています。
それ以外の注意点は、標準ライブラリと同じ名前の部品を作らないこと、後でわかりやすいグループ分けでライブラリを作ることと、0.1inchのグリッドで端子を付けておく、ピンの番号を確認できるように表示するということぐらいです。

2015年4月24日金曜日

KiCad for OS-X

以前のHA-2基板、RP-1基板はCadlusで設計してP板.comで基板作成しました。
先日のRP-2基板はEALGEで設計してelecrowで基板作成しました。
今回は前から気になっていたKiCadで設計してelecrowで基板作成にチャレンジしてみようかと思います。

Windows版と違ってMac OS XでKiCadの場合はソースコードからbuildする必要があります。
kicad.jpをみるとBZR4022が安定版のようですが2014-07-20と半年以上前のもので、その後に押しのけ配線等の機能が追加されています。

OS-X向けのbuildについては下記のblogを参考にさせていただきました。以下何箇所か引用させていただきます。
http://ochaochaocha3.hateblo.jp/entry/2015/01/05/installing-kicad-on-mac-os-x
http://www.usagi1975.com/20150116996/

上のblogも含め、幾つかMac用に最近のものをbuildしてくれているものもあったので試してみたのですが、MacのMagicMouseで使おうとするとズームが中ボタンのスクロールに割り当てられていて拡大率の変更も大きすぎて、ちょっとマウスの真ん中を触ると拡大縮小されてしまい使うに耐えない状態です。設定も色々いじってみたのですがどうにもならず、TrackPadでもスクロール、ズームが使えないのが不便でちょっと使いものにならないなというのが感想でした。
KiCadのlaunchpadのbranchを色々見てみるとやはり同じこと感じるようでosx-trackpad-gesturesというbranchがあり定期的にメインブランチとmerge作業をしてくれています。

いずれにしろ自分でbuildすることになるので、このbranchを利用させてもらうことにしました。
最新の開発branchなので色々問題出るかもしれませんが、その時はmain branchのdebug情報を見ながら修正かけていこうかと思います。

私の環境はMcBook Pro(15-inch, Early 2011) 2.2GHz Intel Core i7/8GB 1333MHz DDR3/OS-X 10.10.2 Yosemiteで、既にbrew 0.9.5とXcode 6.2、Command Line Toolsが入っている状態です。
まずbrewの状態をチェック。
# brew doctor
Your system is ready to brew.
と出ることを確認します。

KiCadのbuildに必要なものをinstallします。
今回はosx-trackpad-gesturesはBZR5282 KiCad本体のBZR5595がベースになっています。
# brew install cmake bzr glew cairo swig boost
bazaarに自分の名前とメールアドレスを設定します。
# bzr whoami '自分の名前 <name@example.net>'

作業directoryを作ってKiCadのソースコードをdownloadします。
# mkdir KiCad
# cd KiCad
# bzr branch lp:~gcorral/kicad/osx-trackpad-gestures

wxPythonをjaistのサーバーからdownloadしてscriptで使われるdirectory名に変更します。
# curl get http://jaist.dl.sourceforge.net/project/wxpython/wxPython/3.0.2.0/wxPython-src-3.0.2.0.tar.bz2 | tar xjvf -
# mv wxPython-src-3.0.2.0 wx-src

次にbuild scriptを修正します。
# cd osx-trackpad-gestures
# cp scripts/osx_build_wx.sh scripts/osx_build_wx_yosemite_trackpad.sh
# vi scripts/osx_build_wx_yosemite_trackpad.sh
下記のdiffの5行を追加
----------
# diff -urb scripts/osx_build_wx.sh scripts/osx_build_wx_yosemite_trackpad.sh
--- scripts/osx_build_wx.sh 2015-03-26 14:42:34.000000000 +0900
+++ scripts/osx_build_wx_yosemite_trackpad.sh 2015-03-26 14:46:32.000000000 +0900
@@ -140,6 +140,11 @@
 doPatch "$1" "$3/patches/wxwidgets-3.0.0_macosx.patch"
 doPatch "$1" "$3/patches/wxwidgets-3.0.0_macosx_bug_15908.patch"
 doPatch "$1" "$3/patches/wxwidgets-3.0.0_macosx_soname.patch"
+doPatch "$1" "$3/patches/wxwidgets-3.0.0_macosx_scrolledwindow.patch"
+doPatch "$1" "$3/patches/wxwidgets-3.0.0_macosx_magnify_event.patch"
+if [ "$4" = "10.10" ] ; then
+  doPatch "$1" "$3/patches/wxwidgets-3.0.2_macosx_yosemite.patch"
+fi

 # configure and build wxWidgets
 wxWidgets_configure "$1" "$2" "$4"

----------
# sh scripts/osx_build_wx_yosemite_trackpad.sh ../wx-src ../wx-bin ./ 10.10 -j4
# cd ..
# mkdir build
# cd buld
# cmake ../osx-trackpad-gestures \
      -DCMAKE_C_COMPILER=clang \
      -DCMAKE_CXX_COMPILER=clang++ \
      -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 \
      -DPYTHON_EXECUTABLE=`which python` \
      -DKICAD_SCRIPTING=ON \
      -DKICAD_SCRIPTING_MODULES=ON \
      -DKICAD_SCRIPTING_WXPYTHON=ON \
      -DKICAD_SKIP_BOOST=ON \
      -DUSE_OSX_MAGNIFY_EVENT=ON \
      -DwxWidgets_CONFIG_EXECUTABLE=../wx-bin/bin/wx-config \
      -DPYTHON_SITE_PACKAGE_PATH=`pwd`/../wx-bin/lib/python2.7/site-packages \
      -DCMAKE_INSTALL_PREFIX=../bin \
      -DUSE_IMAGES_IN_MENUS=ON \
      -DCMAKE_BUILD_TYPE=Release
# make
# make install
# cd ..
ここまででbin/以下にアプリケーションが出来上がります。

次にライブラリ、日本語ドキュメントをまとめていきます。
# mkdir lib
# cd lib
# git clone https://github.com/KiCad/kicad-library.git kicad
# bzr branch lp:~kicad-developers/kicad/doc
# cp -pr doc/doc/help kicad
# mkdir kicad/share
# cp -pr doc/internat kicad/share
# cd ..

これで
Kicad/bin/kicad.app/に/Application/へコピーするKiCadのアプリケーション
KiCad/lib/kicad/に/Library/Application\ Support/へコピーするライブラリ・ドキュメント一式が揃いました。

/Applications, /Libraryへの書き込みはroot権限が必要なので
# sudo cp -pR bin/kicad.app /Applications
# sudo cp -pR lib/kicad /Library/Application\ Support
この時passwordを聞かれたら管理者のパスワードを入力してください。

/Applicationsにkicad.appが出来上がっているのでFinderからDockに登録してください。
これでKiCadが使えるようになります。

2015年4月17日金曜日

RP-2基板作成

基板が上がってきたので部品を付けて動作試験をしていきます。
この基板はいろいろな用途の回路を盛り込んで作っています。盛り込んでいる機能は次のとおりです。
1.RaspberryPi2との接続(ATMega328pとは排他)
2.ATMega328p(RaspberryPi2接続とは排他)
3.2.1mmDCコネクタでの5V ACアダプタ対応
4.赤外線受光部
5.赤外線発光部
6.圧電ブザー
7.XBee接続
8.12keypad(0-9#*)接続回路(ATMega328p only)
9.人感センサー接続回路(ATMega328p only)
10.火災警報器等の接点出力の検知機能(ATMega328p only)
11.2.54mm pitchのユニバーサル基板

まずは、メインの用途である1,3,4,5,6,7の機能を盛り込んだ基板を作ります。
これまでRaspberryPiで組んでいたホームコントロールシステムの親機をRaspberryPi2で置き換えます。
 部品をマウントした基板(左)とRaspberryPi2(右)
これを組立てます。
下の白いアクリル板は箱に入れるための支持板 

これにアクリルをレーザーカッターで切り出して曲げ加工した物をケースにします。
 ケースの下側(左)とケースの上側(右)

ケース下側と基板を組んだところ

ケース上も組んだところ

物理的にはうまく出来そうです。

ところがそう簡単には行きませんでした。
赤外線リモコンの送受信回路はRaspberryPiのPCM IFを使って組んでいるのですが、RaspberryPiからB+になった時にP6の8pinコネクタ(NoMount)に出ていたGPIO28-31のALT2にあったPCM IFが無くなり40pinコネクタのGPIO18-21のALT0に移動しました。
これは判っていたので回路はそちらに接続するように組んでいたのですが、Raspi2上のプログラムを変更してもうまく動きません。PCM_FSに接続してある圧電ブザーが鳴っていないのとPCMの書き込み時にFIFO Fullで止まってしまってるのでPCM_CLKが入っていないと思われます。

GPIO28のALT2も選ばれていてGPIO18のALT0と入力がぶつかっているのではないかと疑ったのですがどうも違うようです。
丸一日悩んだのですが、どうもGPIOを直叩きしても出てないようでメモリダンプをしたりしてみるとレジスタっぽい値が出てきません。BCM2835からBCM2836に変更になった影響で何か変わっているのではないかとう疑いを抱き始めてメモリマップを眺めていて気が付きました。
DRAMのサイズが1GBになっているはずなのでPeriphralのアドレス空間であるはずの0x20000000はDRAM空間と重なっているではないですか。
あとはネットで検索していたら答えがありました。BCM2836ではPeripehral空間が0x3f000000に移動しているようです。
PCM IFを直叩きしているため罠にハマってました。
これを直したらちゃんと動き始めました。
apache2も高速になって快適です。

2015年4月10日金曜日

RP-2基板到着

基板が届きました。実は頼んだのは春節中の2/22でした。elecrowは2/25まで春節でお休みでしたので受け付けられたのは2/26。
2/22(日) 注文
2/26(木) 受付
2/27(金) 製造開始
3/10(火) 16:21 出来上がったと写真付きのメール、発送したとDHLのtracking numberの連絡
3/11(水)
1  Shipment picked up                              HONG KONG     22:04
3/12(木)
2  Departed Facility in HONG KONG                  HONG KONG     03:13
3  Arrived at Sort Facility HONG KONG              HONG KONG     05:15
4  Processed at HONG KONG                          HONG KONG     06:00
3/13(金)
5  Processed at HONG KONG                          HONG KONG     02:06
6  Departed Facility in HONG KONG                  HONG KONG     02:07
7  Transferred through TOKYO - JAPAN               TOKYO - JAPAN 08:58
8  Customs status updated                          TOKYO - JAPAN 09:02
9  Arrived at Sort Facility TOKYO - JAPAN          TOKYO - JAPAN 10:02
10 Clearance processing complete at TOKYO - JAPAN  TOKYO - JAPAN 10:29
11 Processed at TOKYO - JAPAN                      TOKYO - JAPAN 11:23
12 Departed Facility in TOKYO - JAPAN              TOKYO - JAPAN 11:31
13 Arrived at Delivery Facility in TOKYO - JAPAN   TOKYO - JAPAN 12:55
14 With delivery courier                           TOKYO - JAPAN 12:57
15 Delivered                                       TOKYO         14:44
と11日(土日を除くと7日)で製造、3日で届きました。

出来上がった基板です。

 A面     B面

B面のチップコンデンサのところをみるとセンターに打った点のシルクが若干ずれているのと、ユニバーサル基板部分のスルーホールのところの穴が銅箔に対して若干ずれていますが問題ないレベルです。
シルクの文字自体は綺麗に出ています。今回はviaはレジストをかぶせているので配線で使っている15mil(0.38mm)のviaにかぶっているシルクはちゃんと出ています。
GNDのベタパターンに打った23.6mil(0.6mm)のviaは穴が大きめなのでレジストで埋まらずシルクは一部欠けています。PadにはE-Testの痕跡が残っていて基板の脇にはマジックでチェックされています。
この仕上がりで10枚で送料込みで$34.71(この時のレートで¥4280)、1枚あたり428円なら満足です。

2015年4月3日金曜日

EAGLEでの出図

アートワークが完成したので、CAM出力します。
ElecrowのページからCAMファイルをダウンロードしてきます。
EAGLEのCAMディレクトリにコピーしてガーバーデータを作成します。
今回使用しているのはEAGLE7.2.0なのですが、そのまま作成するとEXCELLON形式のdrillデータの精度が1桁上がっているようでgarberViewerで見た時にdrillだけ10倍大きくなってしまいます。
それほどの精度は不要なので、Drills&HolesのOutputのDevice設定をEXCELLONからEXCELLON_24に変更します。
これでProcessJobを実行するとガーバーデータと同じスケールでドリルデータが出力されます。
OSXだとガーバーデータを確認出来るソフトはX-Window上のgarbvかKiCadのgarbviewくらいしか有りません。どちらかで目視確認して大体ちゃんと出来ていることを確認します。
確認できたらファイルをzipでまとめてelecrowのページでuploadします。
今回は10cm x 10cm 5pcsでも$11.50にしかならないので 10cm x 10cm 10pcs 2layer PCB $15.90を選択します。厚みは1.0mm,色はBlack,FinishはHaslにしました。
届くのが楽しみです。