目的
FPGAのソフトだけでなく、ハードも作りたくなったが、配線のはんだ付けは気が重い。
プリント基板が作成出来れば、手間が省ける。
でもエッチングは液の取扱いなど床に穴をあけそうで、機械的に削り出す方向で検討しよう。
3Dプリンタの部品を流用した設計を考えてブツを物色していたが、AとかEでCNCが安くなっているではないか。
※CNCミニルーター(フライス盤)のことです。
経緯
(1)A**で一番小さいCNCフライス盤(CNC1610)のキットを調達(2018/8購入時点で20,000円ぐらい)
(2)なんとかキットを組み立てる。多少トラブル有るもとりあえず稼働を開始。
(3)回路をプリント基板から削り出すには、gcodeへの変換が必要なことが調査により判明。
(4)お手軽にgcodeに変換する為に、EAGLEを使うことに決定。(小さい寸法なら無料かな)
(5)まず試しに適当設計を行い、EAGLEの自動配線(すごく便利)で片面基板にパターン化、pcb-gcodeでgcode化。
(6)取り合えず片面は無事作成出来たが、配置配線に大きな制約が有ることが判明。(当たり前だが)
ジャンパ線が増えるとは面倒くさいし。
---- そうだ「両面プリント基板」にしてしまおう ----
両面基板を作る
といっても、ソフト(EAGLE)は両面基板を作れるように出来ている。
問題は、部品面とはんだ面の位置合わせが面倒で、うまく重ならないとの情報アリ。
この部分の問題を、お手軽に解決する方法を考えたので、以下に説明する。
1.前準備
(1)CNCを組み立て、Grblcontrol(Candle)で制御できるようにする。
※前提として、Candleのversionは1.1.7、grbl(制御基板)は1.1fです。
(2)制御基板のA5より、z-probe(Z軸のゼロ調整)用配線を引き出す。
※ついでに基準点(XYZ)復帰確認SWも付けておくと位置調整が楽になる。
(3)Heightmapを使用可能にしておく。
※この辺りが詳しい [小型工作機CNC2418 その3(HeightMap検討)]
(4)EAGLEを導入
(5)EAGLEのulpとしてpcb-gcode(Version 3.6.2.4)を導入
※この辺りが詳しい [EAGLE 8.5.2でPCB-Gcode 3.6.2.4(ULP)の試用]
※当方だけの問題かもしれないが、Windows10でpcb-gcodeが動作しなかった。そこで
"pcb-gcode.ulp"の129行目の"viewer.exe"を"viewer.exe.bat"に変更
"system(g_path + "/viewer/application.windows/viewer.exe.bat");"
"viewer.exe"の存在するディレクトリに下記内容で"viewer.exe.bat"を追加。
path=%path%;C:\Program Files\Java\jdk1.8.0_152\bin
%~p0\viewer.exe
※viewer.exeは"pcb-gcode.ulp"が存在するディレクトリ下の"\viewer\application.windows"
javaの格納位置が異なる場合は"C:\Program Files\Java\jdk1.8.0_152\bin"もそれに合わせる。
2.回路とボードを作成
EAGLEの使い方がまだよく判らないので、取り合えず回路は"\examples\tutorial"のdemo2を流用する。
"demo2.brd"をプリント基板化する。
基板の切り出しを行う為に、ボードのレイヤー46(Milling)にボードの外形を追加記入する。
この時、基準点(+)を含ませて、最小サイズより1-2mmより大きく書いておく。
3.gcodeへの変換
ulpとして"pcb-gcode-setup.ulp"を起動、下記を設定。
※取敢えずの設定、最適化している訳ではない。
"Accept and make board"を選択すると、画面とダイアログが(4回)出るのでOKして閉じる。
見本の設定では"demo2.brd"のディレクトリに**.tapが5個出来ている。(はず)
4.部品面のカッティング
(1)両面プリント基板をベッドに固定。
(2)Grblcontrolを起動、"demo2.top.etch.tap"を読み込む。
(3)ドリルの刃として、Vカットを装着。
(4)ドリルを部品面の基準(0点)位置まで移動。※左下が基準位置
(5)z-probeを実行。Zelo_XY,Zelo_Zでワーク位置を0,0,0に設定。
(6)HeitmapのCreateを選択すると、下部にHeightmap_settingsが現れるのでautoを選択、XYWHが設定される。
probe_gridを適切に設定、Zt(1.00)とZb(-1.00)も適切に設定。
probeを実行。z-probeが上下を繰り返し、マップが作成される。
※z-probeを繋ぎ忘れるとえらいことが。
※エラー(Alarm)になった場合、"$X"を送信、それでも解除されない場合は"?"を送ってから"$X"を送信で解除。
(7)Edit_modeを選択する。切削モードになるので、忘れずに"Use_heightmap"を選択しておく。
(8)Sendを押すと、切削が開始される。
5,外周のカッティング
(1)外周データ(demo2.top.mill.tap)を開く。
(2)この時に、基板のX方向の幅を記録しておく。(図では -2.540_48.260)
(3)Z軸を上に上げ、ドリルをEnd_millに換装。(取敢えず0.8mmを使用している)
(4)手動でドリルを基準点まで持って来て、x-probeを実施、Zelo_ZでワークのZ軸を0に設定する。
(5)Sendを押すと、音を立てて外周カッティングを実行。※切削速度が速いとドリルがポッキリ
6.部品面、はんだ面の入れ替え
(1)基板を取り出し、左右方向に180度回転。※重要
(2)下側(部品面)に両面テープを張り付け、取り出した場所に再度固定する。
(3)この時に切削したドリルの寸法だけ隙間が有るので、平等に振り分ける。
※振り分け用のツールを使えば比較的簡単。
1)ツール(黒い部分が0.5mmの幅で飛び出している)の上に、基板を乗せる
2)基板の上に両面テープを張り付ける。
3)基板を左右にひっくり返して、元の穴に埋め込む。
4)ツールを取り外すと、基板がほぼ穴の中心に来ている。
7.はんだ面のカッティング
(1)はんだ面のデータ(demo2.bot.etch.tap)を開く。
(2)Z軸を上に上げ、ドリルの刃としてVカットに換装。
(3)ドリルを基準点のオフセット分移動させる。
※外周カッティングに記録した寸法(-2.540_48.260)の場合、引き算して45.72mm移動。(G00X45.72)
(4)z-probeを実行。Zelo_XY,Zelo_Zでワーク位置を0,0,0に設定
(5)Heightmapを実行。
(6)Sendを押すと、切削が開始される。
8.はんだ面からの穴あけ
(1)"demo2.brd"を再度開き、ulpとして"pcb-gcode-setup.ulp"を起動し、MachineqタブのDriill Depthを1.6mmに設定。"Accept and make board"を実行。
※現在の設定だと貫通しない。
(2)穴あけのデータ(demo2.bot.drill.tap)を開く。
(3)Z軸を上に上げ、ドリルをEnd_millに換装。
(4)ドリルを基準点まで移動させ、x-probeを実施、Zelo_ZでワークのZ軸を0に設定する
(5)Sendを押すと、穴あけが開始される。
※今の設定では部品面、はんだ面から各々1mmずつ穴あけしており、既に貫通しているはずだが。
9.出来上がり
基板を取り外し水洗い。
正しく操作出来ていれば、部品面の穴が貫通して、それ以外の穴は無い筈。
10.評価ほか
(1)上記の方法で両面基板の部品面、はんだ面の位置合わせは旨く行っており、当初の計画は成功。
(2)但し、スルーホール等は上下で繋がっている訳ではなく、はんだ付け時に考慮が必要。
(3)線幅、切削速度、切削速度等は未だ未成熟、今後詰める必要が有る。
-- 両面プリント基板の作成に目途が立ったので、なにを作るのかを考えて行こう。 -- (本末転倒だね)
上記記載内容は無保証であり、各自の責任においてご利用願います。
ドリルの刃がポキッと折れても、当方は責任を取れません。
"