さて、、放置していたZ軸probeを使ってみる。
E3DV6を使うと、最初に付いてきたprobe台を使うとヒートシンクに干渉する。
kosselでも何とか形になる出力はできるので、Mini Kossel Retractable Auto Bed Leveling Probe (for use with larger hotends)を出力。
近くのホームセンターやアストロプロダクト(厚木)に行ったけど、コストパフォーマンスの良い1.5mmのヘキサレンチはなかったのでカインズホームに行ってみたら有ったのでそれにしました。
帰って合わせて観たのですが少し短かったので1.5mmの長いイモねじを接着剤で固定。
次に最初に入れたFW(Marlin)の最新をDLして
1 |
/Marlin-Development/Marlin/example_configurations/delta/kossel_mini |
のファイルを上書きしてましたが、まずは購入したサイトにあるFWに入れ替えました。
しかしG29コマンドを実行すると、訳の分からない動きをして。。。。ググった動画とはは全然違う動き。。。
3日間の試行錯誤のすえ解ったことは、
Z_MIN_ENDSTOP_INVERTINGが逆
1 2 3 4 5 6 7 |
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. const bool Y_MIN_ENDSTOP_INVERTING = false; // 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. 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. |
付いてきたmicroスイッチはnoには繋がってな無かった。
G29コマンドのZ軸probeの有効化/無効化のモーションではうちの子は対応できない
G29で使ってるモーションを修正する手もあったが、なにか弄るたびにFWの書き換えは面倒なので新しくG30コマンドを追加してBed Auto Levelingのみをするようにしました。
1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 |
case 29: // G29 Calibrate print surface with automatic Z probe. saved_feedrate = feedrate; saved_feedmultiply = feedmultiply; feedmultiply = 100; deploy_z_probe(); calibrate_print_surface(z_probe_offset[Z_AXIS] + (code_seen(axis_codes[Z_AXIS]) ? code_value() : 0.0)); retract_z_probe(); feedrate = saved_feedrate; feedmultiply = saved_feedmultiply; previous_millis_cmd = millis(); endstops_hit_on_purpose(); break; case 30: // G29 Calibrate print surface with automatic Z probe. saved_feedrate = feedrate; saved_feedmultiply = feedmultiply; feedmultiply = 100; calibrate_print_surface(z_probe_offset[Z_AXIS] + (code_seen(axis_codes[Z_AXIS]) ? code_value() : 0.0)); feedrate = saved_feedrate; feedmultiply = saved_feedmultiply; previous_millis_cmd = millis(); endstops_hit_on_purpose(); break; |
29のケース処理をコピペしてdeploy_z_probe と retract_z_probe を削除。
そして、KISSlicerのG-code − Prefix にprobeの有効化/無効化のモーションとG30のコマンドを追加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
G28 G1 z30 F6000 ;Z probe on ------ G1 X20.00 Y90.00Z50.00 G1 X0.00 Y90.00 Z50.00 G1 X20.00 Y90.00 Z50.00 G1 X0 Y0 ;Z probe on ------ G30 G1 Z30 F6000 G1 X-31 Y60 Z30 F6000 G1 Z12 F600 G1 Z50 F6000 ; go HOTEND Up Wait position G1 X0 Y-80 ;M109 S<TEMP> ; go HOTEND Up Wait position |
G30コマンドを実行したときに出る値を観ると 最大2.5mmも違う。
1 2 3 4 5 6 7 |
0.730 0.730 0.730 0.970 1.210 1.210 1.210 0.300 0.300 0.580 0.870 1.220 1.540 1.540 -0.230 0.100 0.420 0.780 1.080 1.510 1.870 -0.470 -0.130 0.220 0.580 0.980 1.400 1.890 -0.700 -0.330 0.070 0.440 0.880 1.410 1.810 -0.500 -0.500 -0.150 0.320 0.760 1.280 1.280 0.370 0.370 0.370 0.290 1.100 1.100 1.100 |
Bedの高さ調整をできる機構を入れるかな。。。。