Marlin (デルタ編)

2016/09/20


PRN3Dの様にXYZの3軸を個別に制御する方法のほかに3軸を同時に制御するデルタ式がある。

Marlin はデルタ式もサポートしているので後学のために設定を調べておく。


● ファームウェアのインストール

OSOYOO のホームページに詳しいインストール方法があるのでリンクを張っておく。ココ

手順としては、
① U8glib library を Arduino IDE のライブラリに登録
② Marlin の入手
③ Arduino Mega への転送
です。

ホームページの手順通りに作業を行えば、特に問題なく動作すると思います。

Marlin の記述に Version 3 とあるのでたぶんバージョンは 3 なのでしょう(汗)。

● Marlin の設定箇所

Arduino IDE で Marlin.ino を開き目的のタブを選択します。

Configuration.h
行番号     PRN3D の設定
28 通信速度(ボーレイト) #define BAUDRATE 250000 #define BAUDRATE 250000
33 ボードの選択

33は Arduino MEGA
#define MOTHERBOARD 33 #define MOTHERBOARD 88
86 エクストルーダーの個数 #define EXTRUDERS 1 #define EXTRUDERS 1
126

129
サーミスタの設定
SENSOR_0 と SENSOR_BED を使用。
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 8
   値はサーミスタの種別により異なる。
Configuration.h のコメントを参照。
151

154
ヒートベッドの最高温度 #define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150
#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150
245 エクストルーダーの最低温度
この温度以下ではモーターが動作しない。
#define EXTRUDE_MINTEMP 170 #define EXTRUDE_MINTEMP 160
279

286
エンドストップ

MIN は原点方向、MAX は最大方向
Switch On で通電なら true、遮断なら false
使用しないなら DISABLE にする
const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = false;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = true;
const bool Z_MAX_ENDSTOP_INVERTING = true;
#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS
const bool X_MIN_ENDSTOP_INVERTING = true
const bool Y_MIN_ENDSTOP_INVERTING = true
const bool Z_MIN_ENDSTOP_INVERTING = true
const bool X_MAX_ENDSTOP_INVERTING = true
const bool Y_MAX_ENDSTOP_INVERTING = true
const bool Z_MAX_ENDSTOP_INVERTING = true
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS
305

310
モーターの回転方向

E0 はエクストルーダーのモーター
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
#define INVERT_E2_DIR true
314

316
ホームポジションの設定 #define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
318
319
印刷範囲の制御設定 #define min_software_endstops true
#define max_software_endstops true
#define min_software_endstops true
#define max_software_endstops true
322

327
印刷範囲(移動範囲) #define X_MAX_POS 170
#define X_MIN_POS 0
#define Y_MAX_POS 180
#define Y_MIN_POS 0
#define Z_MAX_POS 105
#define Z_MIN_POS 0
#define X_MAX_POS 170
#define X_MIN_POS 0
#define Y_MAX_POS 170
#define Y_MIN_POS 0
#define Z_MAX_POS 160
#define Z_MIN_POS 0
406 可動数の設定(XYZ+エクストルーダー) #define NUM_AXIS 4 #define NUM_AXIS 4
407 原点復帰時のモーター速度 #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} #define HOMING_FEEDRATE {50*60, 50*60, 3*60, 0}
411 単位当たりのステップ数 #define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,2560,146} #define DEFAULT_AXIS_STEPS_PER_UNIT {40,40,1600,48}
   1mm移動するのに必要なモーターのステップ数で、{X軸,Y軸,Z軸,エクストルーダー}の順番に記載
ステップ数の計算は、
X軸、Y軸
 モーターの一回転あたりのステップ数×モータードライバのマイクロステップ÷プーリーの歯数÷ベルトピッチ
Z軸
 モーターの一回転あたりのステップ数×モータードライバのマイクロステップ÷送りねじのピッチ
エクストルーダー
 モーターの一回転あたりのステップ数×モータードライバのマイクロステップ÷(ドライブギアの直径×円周率)×1.1

設定後に移動量を実測し値を調整する。
412 モーターの回転速度 #define DEFAULT_MAX_FEEDRATE {500, 500, 2.5, 250} #define DEFAULT_MAX_FEEDRATE {500, 500, 4, 25}
413 モーターの加速度 #define DEFAULT_MAX_ACCELERATION {1500,1500,100,10000} #define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000}
425

427
モーターの動き出し・停止速度 #define DEFAULT_XYJERK 20.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0
define DEFAULT_XYJERK 10.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0

 


● 配線

RAMPS BOARD の配線に関すること。

ボードと各ユニットとの配線をまとめてみる。

PCとの接続 USBケーブル Arduino MEGA の USB コネクタ
電源(12V) プラスとマイナス  
ヒートベッド プラスとマイナス D11
サーミスタ(2芯) T11
エクストルーダー ホットエンド(プラスとマイナス) D10
サーミスタ(2芯) T10
フィラメント送り用モーター 1A
1B
2A
2B
X軸モーター  
Y軸モーター  
Z軸モーター(×2)  
リミットスイッチ   D3/D14/D18
ホットエンド用ファン プラスとマイナス D9

 

 

● モータードライバのジャンパ設定

モータードライバの下に3個のジャンパがありドライバICに適したジャンパ設定を行います。

OSOYOO のキットには A4988 が搭載されています。

ジャンパは 5V との結線になるので、ジャンパを挿せば High 挿さなければ Low となります。

ジャンパの組み合わせは以下のようになります。(A4988)

ジャンパ マイクロステップ
L - L - L 1 / 1
H - L - L 1 / 2
L -H - L 1 / 4
H - H - L 1 / 8
H - H - H 1 / 16

通常はマイクロステップを 1/16 に設定するので 3箇所ともジャンパピンを挿しておきます。

 

● LCD

OSOYOO のキットには LCD が付いてきますが、MARLIN では

モータードライバの下に3個のジャンパがありドライバICに適したジャンパ設定を行います。

OSOYOO のキットには A4988 が搭載されています。

ジャンパは 5V との結線になるので、ジャンパ