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

いばらの道と覚悟の上で、勉強も兼ねてキットを購入しました。
トラブルも多いですが経験値は上がりそうです。
> ~~2015-05-28 テストランまで至らず。~~
2015-05-29 グニャグニャながらも20mmのリングを出力。

## 参考にさせて頂いているサイト様
[デルタ型3Dプリンター中華キット"Kossel mini K800"を組み立ててみたページ](http://shimanagasi.fc2web.com/k800/k800top.html)
[biyo&#39;s JUNK - 3Dプリンタとかの記事一覧](http://sky.ap.teacup.com/applet/biyo/msgcate9/archive)
[デルタ式3Dプリンタのキットを作る（途中経過） - Imamuraの日記](http://d.hatena.ne.jp/Imamura/20150326/delta3dp)
[[mixi] RepRap | [1]デルタ・ロボですがナニか?](http://mixi.jp/view_bbs.pl?id=73859442&comm_id=5576921)
[KOSSEL MINI BUILD GUIDE BY BLOMKER INDUSTRIES (PDF)](http://blomker.com/Kossel_Mini_Assembly_Guide_V1.0.pdf)

## 2015-05-22
[K800 Self-assembly 3D Reprap 2014Newest kossel 3D printer DIY kit The pre-sale](http://www.aliexpress.com/item/K800-Self-assembly-3D-Reprap-2014Newest-kossel-3D-printer-DIY-kit-The-pre-sale/1990522179.html) 
AliExpressで$262.24。
5/10に頼んで、Fedex IEで2週間弱で到着。トレースしていたら日本に着いてから数日足踏みしてる感があった。
送料は無料だった(追記:後日Fedex IEから2,200円の関税の請求があった)。少しディスカウントされているタイミングで買えたらしい。今は$298.00になっている。
時間がない。作業スペースがない。怪我が怖いという人はこういうのじゃなく製品を買ったほうがいいです。多分。
![P1050990.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/eef2501d-1674-5890-c704-e865c88b5892.jpeg)
![P1050991.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/bb823c2f-6ed6-ef2e-5c6d-1e91532d0f0f.jpeg)

三角形2個は下部。1個は上部。ボルト固定位置が狭いので、下部2個は三角形にする前にモータを取り付けてしまった方がよいかも。
![P1060023.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/38329bdd-7433-bd41-52ec-d93cd37d7e61.jpeg)

上部の1個にはベアリングを固定。
![P1060027.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/444b602a-a2f7-67f5-1e13-6eed16dbf5e6.jpeg)

ピニオン(?)ギアを仮止め。
![P1060029.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/f52f6f5b-fb39-06d0-a23b-c66cdc515ebd.jpeg)

マイクロスイッチを樹脂パーツに固定。黒が真ん中のがホットエンドに付く分。
![P1060030.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/52796bc9-3393-18b1-331c-e50417e98561.jpeg)

スライダー(?)にマグネット固定部を固定。
![P1060031.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/979809bd-5586-ddbb-9a96-599882cdd6f4.jpeg)

## 2015-05-24
「パチン」と挟んだときに磁石が2個割れました。
![P1060034.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/e7cdf51f-4b0e-c1e9-fdce-b30971986f00.jpeg)

モータのコネクタが上を向いていますが、ガラスベッドに当たるので横向きがよいかも。
![P1060036.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/6f066a2e-b1d8-d7fd-4a06-3d5ed9d02b7f.jpeg)
![P1060038.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/893cb16c-e3fe-d19b-659c-4e183e7ff35b.jpeg)

エンドストップを仮止め
![P1060039.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/ae533bf5-27df-944a-7a17-351cea3ac55d.jpeg)

ガラスベッド固定部は吸盤がダイヤルで高さ調整可能。LCDはグラフィックではなく20x4のテキスト表示だった。
![P1060042.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/4a833c75-155f-1a4a-e1bb-e86b7817439b.jpeg)

X軸、Y軸、Z軸の名前と位置関係。軸名というかポール名。
![P1060043.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/5be42903-d470-a9bf-64e3-d2ccd4ac5a91.jpeg)

エクストルーダをY軸の奥に仮止め。
![P1060044.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/bd8b9cb3-ffca-da58-7d43-d32b864419fd.jpeg)

## 2015-05-25
モータコネクタのピン位置を6芯側(モータ側)で修正。
![P1060047.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/e79b084e-615a-34d3-f432-63f4eb9d6eba.jpeg)
![P1060049.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/e69ad05b-b4bc-c419-26e8-b05d158836a0.jpeg)

4芯側(RAMPS側)はそのまま。
![P1060052.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/8c696867-42cd-0b84-db6b-f08daa574bf5.jpeg)

手持ち部品でファンに簡易コネクタをつける。
![P1060053.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/34be2a52-a8f3-2a7e-2751-2015e539c6cd.jpeg)

ヒータのハンダメッキ処理。
![P1060060.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/9e69e03d-e64f-33e6-21c8-0e36d8c00456.jpeg)

RAMPSはMEGA側から12Vをもらう。
![P1060059.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/279a2b49-f79e-7614-be1a-a71d9003826d.jpeg)
![P1060061.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/4aec7278-9cea-43e6-5c98-a92526ff16a3.jpeg)

LCDだけ繋いで、とりあえず火入れ。
![P1060065.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/bfa32150-6ff9-eab3-fb66-4e6aeb992b1d.jpeg)

## 2015-05-26
サーミスタテスト。OK。
![P1060066.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/a95a3a6a-ec30-df07-ff2f-1af2f6f34dab.jpeg)

ヒータはカシメ不良だったので、カシメ部は切り捨ててハンダ付け。
![P1060067.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/bff7b6bf-afb2-2912-4655-3d73375f4629.jpeg)

ヒータテスト。Prepare > Preheat PLA。OK。
![P1060068.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/a6e8669a-e3bc-fd9a-bfb0-9e1bdcff4b65.jpeg)

しばし手動エクストルードで3Doodler的に遊ぶ。フィラメントの抜き差し時にノズルづまりを体験。分解清掃。
![P1060071.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/0d5b802f-7239-0ceb-698b-b8e88afed69b.jpeg)

## 2015-05-27
LCDとサーミスタとエンドストップのコネクタ位置。
![P1060073.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/73072bed-4e12-6e3e-dc8e-3feb5bc9d87d.jpeg)

エンドストップを一列手前に挿したらショート。MEGAの5Vレギュレータから発煙。AmazonでMEGA2650互換機を購入。
![P1060074.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/a35d82c5-a14d-b84f-3376-dc8b5f23f5f1.jpeg)

## 2015-05-29
コネクタはこんな感じ。
![P1060081.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/1186864e-0e47-d6be-9e0a-d0379b7c08d9.jpeg)

ホットエンドはこんな感じ。
![P1060084.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/08183735-4935-478c-a004-e36c45a26ca4.jpeg)

底面に透明な下敷きを三角に切ったものを両面テープで貼り付けた。電装系はベッドの下に。
![P1060087.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/a4adcf24-e6ee-75df-7934-e1b17e12b14a.jpeg)

真上から。プラスチックカードを切ってファンをフィン(?)に近づけた。
![P1060091.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/567fbc23-74d6-ec83-d01a-ac4ec538fa5d.jpeg)

初期表示画面に"Kossel K800"の文字を入れる。何度やっても思わずニヤリとする瞬間。
![P1060092.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/2f6cb943-5373-0f50-a4d7-be49b9071f42.jpeg)

初めての出力。1レイヤー1本線で20mmのリング。(スカートあり)
![P1060093.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/8ed5a235-b7bd-8d77-cee1-adbf5f782baf.jpeg)
![P1060095.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/7e912ad4-9547-7d6f-7c64-3401c8b302da.jpeg)

Configuration.h 主な変更点:
> 初期画面のカスタム名。
Linux Mint(Ubuntu)では250,000ボーでエラー。
G1 Z30, G1 Z20, G1 Z10,...的なことをしながら、ノズルが5mmほど浮いたところで仮のZホーム300mmを決定。
LCDは20x4用を選択。

```diff
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](https://qiita-image-store.s3.amazonaws.com/0/39508/dc7303c0-cb76-f26a-047d-27a2cf2582c7.jpeg)
KISSlicerのStyle/Extrusion WidthとInfill Extrusion Widthがデフォルトの0.4, 0,4だと向こうが透けるほどスカスカ。

![P1060304.JPG](https://qiita-image-store.s3.amazonaws.com/0/39508/000a5295-b561-c3bc-7fda-c74b5c3053e3.jpeg)
Extrusion WidthとInfill Extrusion Widthを0.3, 0.3にしたことで改善。


## 2015-06-14
```diff
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