しばらくすると忘れてしまうので、現状のフローをまとめておく。

  1. pcb2gcode の millproject
  2. AutoLeveller は基本的には常時使うほうが結果的に早い。DIP しか使わないような電源回路では使わなくてもなんとかなるけど使ったほうが安心。
  3. 基板外形のカッターは 1.5mm が適当。1mm だと 500mm/min でフィードするとちょいちょい折れてストレス
  4. パターン切削は30度0.1mmのカッター

概要

  • KiCAD からの出力
  • pcb2gcode の設定
  • machinekit (LinuxCNC) での操作

KiCAD でのデザインルール

0.25mm 幅で削るので、これが限界。0.05mm でもトレランスをとれれば安定しやすい。

  • 最小配線幅は 0.25mm が限界。できれば 0.3mm のほうが安定。
  • クリアランスも 0.25mm が限界。できれば 0.3mm ぐらいにしたい。

KiCAD からのエクスポート

- 切削する銅箔層 (F.Cu or B.Cu) と Edge.Cut をガーバーに出力する
- ドリルファイルを出力する

pcb2gcode

以下のような前提で gcode 化する

  • 30° 先端0.1mm のVカッターを掘る用に使う
  • φ0.8mm のエンドミルを全ての穴開けに使う
  • φ1.5mm のエンドミルかφ1mmで2枚刃を外形カットに使う
  • 基板の厚さは 0.8mm か 1.6mm を使う。基板の歪みを矯正できるぶん、0.8mm のほうが細かいパターンは削りやすく感じる。

先端0.1mmのエンドミルといっても、実際買ってみると綺麗に 0.1mm になっていることはすくない。というかすぐ先端が折れる。計算するときは 0.15〜0.20mm として扱う。

切削速度を落とせばφ0.8mmで穴開け〜外形カットまで可能で、ツール取り替えの手間が減らせるはずだけど、0.8mm のミルは高価であんまり折りたくないので、別途φ1.5mmのミルを使っている。これは今後 0.8mm にするかも。あんまり太いミルで外形カットすると切削抵抗が大きくなり、両面テープが剥れてずれる可能性もあるので注意。

# Use standard mm
metric=true
metricoutput=1

# front=
back=Main-B.Cu.gbr
outline=Main-Edge.Cuts.gbr
drill=Main.drl

back-output=back.gcode
outline-output=outline.gcode
drill-output=drill.gcode

# https://github.com/chrysn-pull-requests/pcb2gcode/blob/graphical-documentation/man/options.svg
zwork=-0.1
zsafe=1
mill-feed=300
mill-speed=10000
mill-vertfeed=200
offset=0.1267949192431123
extra-passes=5

# 使われないはず。milldrill なら zcut が使用される
zdrill=-0.9
zchange=20
drill-feed=100
drill-speed=10000
milldrill=true
milldrill-diameter=0.8

# 外形カット時のミル直径
cutter-diameter=1.5
# PCB板厚+0.1mm
zcut=-0.9
cut-feed=500
cut-speed=10000
cut-infeed=1
cut-side=back

optimise=true
zero-start=true
dpi=2000

pcb2gcode して生成 gcode をデスクトップとリモートの Machinekit に転送する。デスクトップにコピーしているのは CAMotics で読みこませて確認するときに便利なので。

~/ghq/github.com/pcb2gcode/pcb2gcode/pcb2gcode && cp *.gcode ~/Desktop/ && scp *.gcode machinekit@192.168.0.240:gcode

段取り

  • 事前に捨て板の面出しをする (φ6mm ぐらいのミルで加工面全てを 0.2mm ほどさらう)
    • AutoLeveller 使うなら毎回やる必要はない。
  • ニチバン ナイスタック 透明タイプ (材質がセロハンのもの) を使って切削基板を捨て板に固定する
  • このときしっかり全面を押さえつけて捨て板に接着する (加工時の圧力で高さが変わらないように)

AutoLeveller

  • AutoLeveller に切削対象 gcode を読みこませる
  • Probe Clearance は 0.5〜1、Z Safe Height は 1、Z feed は 50 にする
  • create probe file only にチェックを入れて、Create Levelled Gcode ボタンを押すと、ALProbeback.ngc ができる
  • ALProbeback.ngc を machinekit に読みこませる
  • 一旦 Probe を行い、Z を Touch Off する (原点を設定する)
  • 実行して基板全体を Probe する。
  • .ini と同じディレクトリに RawProbeLog.txt ができているので、ローカルに転送する
    • gcode 用のディレクトリに RawProbeLog.txt への symlink を貼っておくと便利
  • RawProbeLog.txt を AutoLeveller に読みこませる
  • create probe file only にチェックをはずして Create Levelled Gcode を押す
  • ALback.ngc ができるので転送する

drill や外形カットなどは面倒なので AutoLeveller はかけず、0.1mm 余計に掘る。

https://lowreal.net/2016/10/19/1

AutoLeveller の起動

java -cp ~/ghq/bitbucket.org/daedelus1982/autoleveller/out/artifacts/autoleveller_jar/autoleveller.jar  com.cncsoftwaretools.autoleveller.Autoleveller

生成 gcode の転送

scp ~/Desktop/*.ngc machinekit@192.168.0.240:gcode 

プローブログを手元に転送

scp machinekit@192.168.0.240:gcode/RawProbeLog.txt ~/Desktop/

切削手順

基板パターン

  • ALback.ngc を machinekit に読みこませる
  • 実行すると Probe をつけろと言われるので、つけて Resume
  • Probe後、Probe をはずせと言われるので、はずして Resume
  • 切削がはじまる

ドリル

  • エンドミルをφ0.8mmに交換
  • Probe を行い、Z Touch Off
  • drill.gcode を読みこんで実行

外形

  • エンドミルをφ1.5mmに交換
  • Probe を行い、Z Touch Off
  • outline.gcode を読みこんで実行

備考

pcb2gcode の --al 系オプションは使わないの?

ある程度規模が大きくなると machinekit に読みこませたときに非常に時間がかかってしまうので、その時間を使うぐらいなら AutoLeveller を使ったほうがよいと考える。時間がかかるのはプレビューのために gcode を一通り仮想的に実行しているためだと思う。

また、--al のオプションは Probe → 切削 がひとつの gcode で行われるため、リトライすることができない。途中でミルが折れたりすると交換してやりなおすということができなくなる。

エンドミルの不具合

基板切削をはじめた直後に削った銅がけばだつようだったらミル先端が既に折れている可能性がある。そのまますすめてもうまくいかないので新しいのに変えること

  1. トップ
  2. tech
  3. KiCAD + Machinekit (LinuxCNC) で切削して基板をつくるときの手順
▲ この日のエントリ