Rostock miniの製作(8) -ファームウェアの設定とベッドの水平調整-
Posted by arms22 on 2014年01月14日

今回はファームウェアの設定とベッドの水平調整について。ファームウェアはjcrocholl/Marlinを選択しました。ダウンロードは下記URLから。
jcrocholl/Marlin - GitHub
https://github.com/jcrocholl/Marlin
ファームウェアの設定
通信速度(ボーレート)を設定。
#define BAUDRATE 250000
制御基板のタイプを設定。// 62 = Sanguinololu 1.2 and above
#define MOTHERBOARD 62
デルタの機能を有効に。// Enable DELTA kinematics
#define DELTA
直線移動を曲線移動に分割する際の分割数。値を大きくすると滑らかに動くけど、CPU負荷が増えて処理速度が間に合わなくなり、移動がガタガタになる。デフォルトの200だとあまり速度を上げれない。// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
#define DELTA_SEGMENTS_PER_SECOND 200
以下、ロッドの長さとかオフセットの設定。だいたいRostock miniの設計値どおり。// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD 186.0 // mm
// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 140.61 // mm
// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 33.0 // mm
// Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 22.0 // mm
エンドストップの論理。マイクロスイッチをN.Oで接続してる場合、INVERTING = trueでいいと思う。const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
X/Y/Zの移動方向。とりあえず動かしてみて期待した方向に動くか確認。#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true
ホームポジション。デルタの場合、ホームポジション=MAX。// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1
X/Y移動の最大値。ガラス板の直径が170mmなので少し余裕を持たせた値を設定。// Travel limits after homing
#define X_MAX_POS 80
#define X_MIN_POS -80
#define Y_MAX_POS 80
#define Y_MIN_POS -80
MANUAL_Z_HOME_POSの値は水平調整が終わった後、ホットエンドをつけてノズルとベッドが丁度ピッタリくっつく高さに調整する。#define MANUAL_Z_HOME_POS 206.5 // For delta: Distance between nozzle and print surface after homing.
ホームポジションに移動する時の速度。速すぎるとスイッチの検出前に激突してしまうので、少しゆっくりめにするといい。板バネつきのマイクロスイッチなら板バネがたわむ分、少し速くてもよいかもしれない。#define HOMING_FEEDRATE {50*60, 50*60, 50*60, 0} // set the homing speeds (mm/min)
X/Y/Z移動時のステップ数。単位はステップ/mm。エクストルーダーの値は仮の値。#define DEFAULT_AXIS_STEPS_PER_UNIT {44.44444444444444, 44.44444444444444, 44.44444444444444, 900}
ベッドの水平調整
プラットフォームの中央にダイアル・ゲージを取り付けて次の手順で調整。
- キャリッジ上部のネジを調整して、3カ所の高さが等しくなるように調整します。
- 中央の高さが上記3カ所と同じ高さになるようにDELTA_SMOOTH_ROD_OFFSETを調整します。
- 1〜2を数回繰り返す。
上記、4カ所の高さの調整には次のようなGコードリストを用意しておくとよい。Zの高さは機体に合わせて適宜変更してください。
G28
G1 Z3 F6000
G1 X0 Y0 F6000
G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2
G1 Z3 F300
G1 X0 Y70 F6000
G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2
G1 Z3 F300
G1 X60.6217 Y-35 F6000
G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2
G1 Z3 F300
G1 X-60.6217 Y-35 F6000
G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2
G1 Z3 F300
G1 X0 Y0 F6000
参考URL
Rostock miniについてのメモ・3
http://etherpod.org/blog/?page_id=6847
Mini Kosselのキャリブレーション方法
http://nexus7fan.blogspot.jp/2013/11/mini-kossel.html
SeeMeCNC Forums - Bed leveling
http://forum.seemecnc.com/viewtopic.php?f=54&t=1174
Calibrating a Delta 3D Printer
http://minow.blogspot.jp/index.html#4918805519571907051
Rostock miniの製作(7)-テストプリント-
Posted by arms22 on 2014年01月13日

(Venus de Milo 80mm/s, 0.2mmレイヤー)
テストを兼ねてちょっと大きめのモノをプリント。床に転がしといたエクストルーダーを動かした時にファームウェアのリセットがかかって、途中で止まってしまいましたが。。
プリント結果は見ての通り。atomと比べると少し、いやかなりイマイチな仕上がり。。外周の線がガタガタに波打っているのが見えます。原因は直動機構の分解能不足・メカの組み立て誤差・調整不足が考えられるけど、システム(制御ボード+ファームウェア)としての性能限界が大きいみたい↓
Rostock Problems with X/Y Movement Stuttering
http://forums.reprap.org/read.php?178,235397
デルタは1つのGコマンドを複数の細かな移動に変換するため、ファームウェアの処理能力が間に合わなくなると、ヘッドの動きが途切れ途切れになる。プリント速度を遅くすれば処理が間に合うようになるのだが。。根本的にこの問題を解決するのには制御ボードをより高速なボードに置き換えるしかないだろう。
ARMマイコンを積んだオープンソースの制御ボード。
Smoothie Project
http://smoothieware.org
秋月で販売されているLPC17xxの評価基板を使って組み立てることもできるみたい。
Smoothie On A Breadboard
http://smoothieware.org/smoothie-on-a-breadboard
Rostock miniの製作(6)-とりあえず動作-
Posted by arms22 on 2014年01月06日

明けましておめでとうございます。2013年は3Dプリンター尽くしの1年でしたが、2014年、今年も3Dプリンター尽くしになりそう予感がしています。今年もよろしくお願いします。
んで、デルタプリンタ「Rostock mini」の近況ですがとりあえず動作するところまでできました。ファームウェアの設定とか調整とかは後ほどまとめます(予定)。
調整中の様子。真ん中と柱の前3カ所の高さが一致するように、エンドストップのネジとファームウェアの設定を調整します。
ある程度高さが揃ったところでテストプリントしてみました。動画では分かりにくいですが、側面にデルタプリンタ特有の鱗のような後がみられます。
動作音が思ったほど静かではなったのですが、どうやらステッピングモーターの配線が原因のようでした。ユニポーラタイプのステッピングモーターをバイポーラ用のモータードライバで駆動しているのですが、2つのコイルを直列に接続していたのがまずかったようです。片方のコイルのみ接続すると振動が少なく発熱も減りました。