RepRap
K800

3Dプリンター Kossel K800 組み立て

More than 3 years have passed since last update.

いばらの道と覚悟の上で、勉強も兼ねてキットを購入しました。

トラブルも多いですが経験値は上がりそうです。


2015-05-28 テストランまで至らず。

2015-05-29 グニャグニャながらも20mmのリングを出力。



参考にさせて頂いているサイト様

デルタ型3Dプリンター中華キット"Kossel mini K800"を組み立ててみたページ

biyo's JUNK - 3Dプリンタとかの記事一覧

デルタ式3Dプリンタのキットを作る(途中経過) - Imamuraの日記

[mixi] RepRap | [1]デルタ・ロボですがナニか?

KOSSEL MINI BUILD GUIDE BY BLOMKER INDUSTRIES (PDF)


2015-05-22

K800 Self-assembly 3D Reprap 2014Newest kossel 3D printer DIY kit The pre-sale

AliExpressで$262.24。

5/10に頼んで、Fedex IEで2週間弱で到着。トレースしていたら日本に着いてから数日足踏みしてる感があった。

送料は無料だった(追記:後日Fedex IEから2,200円の関税の請求があった)。少しディスカウントされているタイミングで買えたらしい。今は$298.00になっている。

時間がない。作業スペースがない。怪我が怖いという人はこういうのじゃなく製品を買ったほうがいいです。多分。

P1050990.JPG

P1050991.JPG

三角形2個は下部。1個は上部。ボルト固定位置が狭いので、下部2個は三角形にする前にモータを取り付けてしまった方がよいかも。

P1060023.JPG

上部の1個にはベアリングを固定。

P1060027.JPG

ピニオン(?)ギアを仮止め。

P1060029.JPG

マイクロスイッチを樹脂パーツに固定。黒が真ん中のがホットエンドに付く分。

P1060030.JPG

スライダー(?)にマグネット固定部を固定。

P1060031.JPG


2015-05-24

「パチン」と挟んだときに磁石が2個割れました。

P1060034.JPG

モータのコネクタが上を向いていますが、ガラスベッドに当たるので横向きがよいかも。

P1060036.JPG

P1060038.JPG

エンドストップを仮止め

P1060039.JPG

ガラスベッド固定部は吸盤がダイヤルで高さ調整可能。LCDはグラフィックではなく20x4のテキスト表示だった。

P1060042.JPG

X軸、Y軸、Z軸の名前と位置関係。軸名というかポール名。

P1060043.JPG

エクストルーダをY軸の奥に仮止め。

P1060044.JPG


2015-05-25

モータコネクタのピン位置を6芯側(モータ側)で修正。

P1060047.JPG

P1060049.JPG

4芯側(RAMPS側)はそのまま。

P1060052.JPG

手持ち部品でファンに簡易コネクタをつける。

P1060053.JPG

ヒータのハンダメッキ処理。

P1060060.JPG

RAMPSはMEGA側から12Vをもらう。

P1060059.JPG

P1060061.JPG

LCDだけ繋いで、とりあえず火入れ。

P1060065.JPG


2015-05-26

サーミスタテスト。OK。

P1060066.JPG

ヒータはカシメ不良だったので、カシメ部は切り捨ててハンダ付け。

P1060067.JPG

ヒータテスト。Prepare > Preheat PLA。OK。

P1060068.JPG

しばし手動エクストルードで3Doodler的に遊ぶ。フィラメントの抜き差し時にノズルづまりを体験。分解清掃。

P1060071.JPG


2015-05-27

LCDとサーミスタとエンドストップのコネクタ位置。

P1060073.JPG

エンドストップを一列手前に挿したらショート。MEGAの5Vレギュレータから発煙。AmazonでMEGA2650互換機を購入。

P1060074.JPG


2015-05-29

コネクタはこんな感じ。

P1060081.JPG

ホットエンドはこんな感じ。

P1060084.JPG

底面に透明な下敷きを三角に切ったものを両面テープで貼り付けた。電装系はベッドの下に。

P1060087.JPG

真上から。プラスチックカードを切ってファンをフィン(?)に近づけた。

P1060091.JPG

初期表示画面に"Kossel K800"の文字を入れる。何度やっても思わずニヤリとする瞬間。

P1060092.JPG

初めての出力。1レイヤー1本線で20mmのリング。(スカートあり)

P1060093.JPG

P1060095.JPG

Configuration.h 主な変更点:


初期画面のカスタム名。

Linux Mint(Ubuntu)では250,000ボーでエラー。

G1 Z30, G1 Z20, G1 Z10,...的なことをしながら、ノズルが5mmほど浮いたところで仮のZホーム300mmを決定。

LCDは20x4用を選択。


diff -u0 example_configurations/delta/Configuration.h Configuration.h

--- example_configurations/delta/Configuration.h 2015-05-25 10:35:44.000000000 +0900
+++ Configuration.h 2015-05-29 16:56:40.574384863 +0900
@@ -3,0 +4,2 @@
+#define CUSTOM_MENDEL_NAME "Kossel K800"
+
@@ -29 +31 @@
-#define BAUDRATE 250000
+#define BAUDRATE 115200
@@ -125,2 +127,2 @@
-#define TEMP_SENSOR_0 -1
-#define TEMP_SENSOR_1 -1
+#define TEMP_SENSOR_0 1
+#define TEMP_SENSOR_1 0
@@ -310,3 +312,3 @@
-const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
-const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
-const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
+const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
+const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
+const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
@@ -379 +381,2 @@
-#define MANUAL_Z_HOME_POS 250 // For delta: Distance between nozzle and print surface after homing.
+//#define MANUAL_Z_HOME_POS 250 // For delta: Distance between nozzle and print surface after homing.
+#define MANUAL_Z_HOME_POS 300 // For delta: Distance between nozzle and print surface after homing.
@@ -459 +462 @@
-//#define REPRAP_DISCOUNT_SMART_CONTROLLER
+#define REPRAP_DISCOUNT_SMART_CONTROLLER


2015-06-08

ホットエンドのPID制御を調整。

下記を参考にPronterfaceからgcodeを実行。

http://reprap.org/wiki/PID_Tuning

>>>  M303 E0 S200 C8

SENDING:M303 E0 S200 C8
PID Autotune start
(中略)
Classic PID
Kp: 19.11
Ki: 1.02
Kd: 89.25
PID Autotune finished! Put the last Kp, Ki and Kd constants from above into Configuration.h

Configuration.hに書き戻し、スケッチを書き込み直し。


2015-06-12

一週間ほど悩み続けた以下の症状の原因を特定。

「プリントしている間に水平面が徐々に傾いてゆく。再現性はあるが毎回度合いが違う」

具体的には水平面が右下がりに傾いていく症状だった。

わかってみれば、

『トラブルの原因は複雑な所にあると思いがちだが単純な原因であることも多い』

の格言のまんまでした。

G28直後にスライダを手で動かそうとすると、Yシャフト(向かって手前右)だけ保持トルクが極端に弱い。

(動作自体はするので、これに気付くのに一番時間がかかった)

モータドライバをXとYで入れ替えても症状変わらず。

フラットケーブルをXとYで入れ替えても症状変わらず。

「ステッパーが壊れたか。買い替えか…」

と諦めモードでYステッパーを正面から見ながらスライダを動かしたときに原因が判明。

『ピニオンギアとシャフトが空転している』


2015-06-13

ヒートブロック上側に溶けたフィラメントの漏れがあった。

180℃加熱状態で6mmメガネレンチで締め直すとブロック上側で更に30度ほど締め付けることができた。

DSC_0483.JPG

KISSlicerのStyle/Extrusion WidthとInfill Extrusion Widthがデフォルトの0.4, 0,4だと向こうが透けるほどスカスカ。

P1060304.JPG

Extrusion WidthとInfill Extrusion Widthを0.3, 0.3にしたことで改善。


2015-06-14

diff -u0 example_configurations/delta/Configuration.h Configuration.h

--- example_configurations/delta/Configuration.h 2015-05-25 10:35:44.000000000 +0900
+++ Configuration.h 2015-06-14 10:31:54.942484420 +0900
@@ -3,0 +4,3 @@
+// 起動時のメッセージ表示
+#define CUSTOM_MENDEL_NAME "Kossel K800"
+
@@ -29 +32,2 @@
-#define BAUDRATE 250000
+// Linuxでは250000でエラーになる
+#define BAUDRATE 115200
@@ -73 +77,2 @@
-#define DELTA_DIAGONAL_ROD 250.0 // mm
+// ボールシャフトの長さ
+#define DELTA_DIAGONAL_ROD 209.0 // mm
@@ -85 +90,2 @@
-#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
+// 有効半径
+#define DELTA_RADIUS 105.0 // (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
@@ -125,2 +131,3 @@
-#define TEMP_SENSOR_0 -1
-#define TEMP_SENSOR_1 -1
+// 温度センサーはホットエンドの1個だけ
+#define TEMP_SENSOR_0 1
+#define TEMP_SENSOR_1 0
@@ -180,3 +187,4 @@
- #define DEFAULT_Kp 22.2
- #define DEFAULT_Ki 1.08
- #define DEFAULT_Kd 114
+// ホットエンド温度制御のPID定数
+ #define DEFAULT_Kp 19.11
+ #define DEFAULT_Ki 1.02
+ #define DEFAULT_Kd 89.25
@@ -310,3 +318,4 @@
-const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
-const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
-const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
+// 上端エンドストップは押されたときに導通
+const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
+const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
+const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
@@ -353,4 +362,5 @@
-#define X_MAX_POS 90
-#define X_MIN_POS -90
-#define Y_MAX_POS 90
-#define Y_MIN_POS -90
+// 水平可動範囲
+#define X_MAX_POS 95
+#define X_MIN_POS -95
+#define Y_MAX_POS 95
+#define Y_MIN_POS -95
@@ -379 +389,2 @@
-#define MANUAL_Z_HOME_POS 250 // For delta: Distance between nozzle and print surface after homing.
+// 垂直可動範囲
+#define MANUAL_Z_HOME_POS 242.5 // For delta: Distance between nozzle and print surface after homing.
@@ -389 +400,2 @@
-#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 80, 760*1.1} // default steps per unit for Kossel (GT2, 20 tooth)
+// ステッパーのピッチ
+#define DEFAULT_AXIS_STEPS_PER_UNIT {100, 100, 100, 160} // default steps per unit for Kossel (GT2, 20 tooth)
@@ -459 +471,2 @@
-//#define REPRAP_DISCOUNT_SMART_CONTROLLER
+// 20x4テキストLCD
+#define REPRAP_DISCOUNT_SMART_CONTROLLER