11.2 燒錄marlin
1.設定外接 LCD裝置
如果是LCD型號為 smart controller RAMPS1.4 LCD 12864
修改Marlin 目錄下的 Configuration.h
點進去檔案後,解除下面內容註解 (表示採用圖形式LCD)
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
2.修改版子型號
PID設定
此處為設定噴嘴PID,預設是開啟
PID可以視為一種現代的溫度控制演算法
影響此PID有三個參數kP , kI , kD 預設是Ultimaker所使用的參數
一般列印機在組裝完成後,應進行PID的校調
確保加熱可以達到最佳效能,未校調可能在維持溫度過程會比較不穩定
有關PID校調可以參考以下影片
https://www.youtube.com/watch?v=APzJfYAgFkQ&t=188s
此處簡單說明
GCode校準PID指令如下
以E3D V6為例 建議指令如下(有鐵氟龍內襯的請先把內襯拿掉再進行校正)
M303S230C10
M303:GCode指令
S230:以230度為基準進行效調
C10:進行10輪測試
可以視自己需要進行調整
接下來Marlin會進行一段時間的加熱校正
校正完成後會將完成參數輸出
將輸出參數複製到程式碼下面
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
覆蓋掉即可
另外熱床部分也有PID可以設定
但預設是關閉的
要啟用請將這一行
#define PIDTEMPBED給反註解掉
如果沒有啟用PID,溫度控制就只是單純的開關溫控(最簡單的例子:你家的大同電鍋)
有PID才會使用PWM控制
這邊要注意,如果你的熱床因為大電流使用了繼電器Relay進行控制
此處不要啟用PID,不然你會聽到你的繼電器出現北斗神拳的音效
假如你的熱床電流大又想使用PWM,請使用外接大電流MOS模組,或者固態繼電器
6.限位開關設定
以XYZ型為例
每個軸都有MAX和MIN的限位開關可以設定,使用哪些限位開關視機械結構而定
常見的烈印機一個軸通常都只有一個限位開關
限位開關的用途是限制噴頭移動範圍,以及給機器移動一個基準點(歸零點)
第一個部是設定你這台機器用了哪些限位開關
預設的範例是三軸皆始用MIN
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
使用那組開關需將該組開關反註解
例如要用Y_MAX需將
// #define USE_YMAX_PLUG
前面的//拿掉改為
#define USE_YMAX_PLUG
接下來是設定限位開關是否全部使用內部PULL UP電阻
Mega 2560內建上拉電阻 啟用的話可以不用外加
#define ENDSTOPPULLUPS
為所有限位開關通通使用上拉電阻
也可以各別設定
所謂Pull Up電阻的線路如下
那根4.7k就是Pull Up電阻
這個線路表示沒觸發前是高電位(5V) 開關接通後是低電位(GND)
如果不是全部使用可以在下面項目各別啟用
最後需設定的是是否反轉開關邏輯
#define X_MIN_ENDSTOP_INVERTING false
#define Y_MIN_ENDSTOP_INVERTING false
#define Z_MIN_ENDSTOP_INVERTING false
#define X_MAX_ENDSTOP_INVERTING false
#define Y_MAX_ENDSTOP_INVERTING false
#define Z_MAX_ENDSTOP_INVERTING false
#define Z_MIN_PROBE_ENDSTOP_INVERTING false
預設的邏輯是開關沒按下前是低電位,按下後是高電位=(5v or 3.3v)
反轉後則表是沒按下前是高電位,按下後是低電位(=0v)
此處設定須視機器開關設定去做設定
7.動作設定
DEFAULT_AXIS_STEPS_PER_UNIT
設定動作所需要的微步數,需根據機器去修改 計算前請先確定自己所使用的零件參數
此數字定義為:移動1mm所需要的步數
以XYZ機種為例
皮帶驅動XY軸範例:
GT2皮帶
20齒同步輪
GT2皮帶齒距2mm 一圈20齒表示轉一圈移動40mm
步進馬達步進角 1.8度
步進驅動16微步
表示轉一圈需要(360/1.8) * 16 = 3200步
此軸移動1mm需要3200 / 40 = 80步
此軸數字需設為80
螺桿驅動Z軸範例:
螺桿導程8mm 表示轉一圈會移動8mm
步進馬達步進角 1.8度
步進驅動16微步
表示轉一圈需要(360/1.8) * 16 = 3200步
此軸移動1mm需要3200 / 8 = 400步
此軸數字需設為400
擠出機設定範例:
MK8擠出齒輪 齒輪部直徑7.43mm
圓周為7.43 * PI = 23.34mm
步進馬達步進角 1.8度
步進驅動16微步
表示轉一圈需要(360/1.8) * 16 = 3200步
此軸移動1mm需要3200 / 23.34 = 137.1步
此軸數字需設為137.1
DEFAULT_MAX_FEEDRATE
移動最大速度,限制機器的最大移動速度,可以避面因為切片軟體設定速度過快而失步
計算方法:
硬體+軔體所能提供的最大速度 / 動作微步數
mega 2560 + marlin來說所能提供的最大脈衝數為40k/s
如果是Due可以到303k/s
例如你的X軸移動1mm需要80步
那你的X軸理論移動極速為40000/80 = 500 mm/s
但需注意這是理論值,實際上因為Marlin會有一些額外的控制,例如圖形12864 LCD
所以這裡計算出來的數字最好打個七八成
Marlin所做的工作越少,越可以接近理論數字
上面例子來說X軸MAX FEEDRATE最好設為350~400為適當
DEFAULT_MAX_ACCELERATION
加速度設定
一般來說不用動
如果你的特定軸速度過快,印轉角有衝過頭的現象可以減少這個軸的加速度來改善
另外加速度比較低,電機動作會比較安靜
X_ENABLE_ON
Y_ENABLE_ON
Z_ENABLE_ON
E_ENABLE_ON
這是設定馬達驅動的Enable是高電位還是低電位
常見的A4988或DRV8825是0 LV8728是1
INVERT_X_DIR
INVERT_Y_DIR
INVERT_Z_DIR
INVERT_E0_DIR
...
這是設定移動的方向,需視機器設計而定
true / false是不同的方向
如果發現機器移動方向不對 例如控制X +10移動卻是反方向
就修改這邊的設定
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
設定G28歸零的方向
1是MAX -1是MIN
看機器的限位開關設計決定這邊的設定
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 200
#define Y_MAX_POS 200
#define Z_MAX_POS 200
設定機器的列印範圍
以上兩個項目要一起看,這兩項設定會決定列印空間的位置
列印空間一般來說 左下角為(0,0) 左上為(0,Y_MAX) 右下為(X_MAX , 0) 右上為(X_MAX , Y_MAX)
噴頭接觸到底板為Z=0 , 最高列印高度為Z_MAX
歸零位置是看機器設定上噴嘴是停在什麼位置
以Ultimaker為例,噴嘴歸靈位置是在左上 平台停在機器底部(離噴嘴最遠)
所以這邊就要設定
#define X_HOME_DIR -1 // X_MIN
#define Y_HOME_DIR 1 // Y_MAX
#define Z_HOME_DIR 1 // Z_MAX
歸零後,會根據MIN_POS和MAX_POS決定列印的最大與最小移動範圍
X最大移動範圍就是以歸零後的位置為基準點
設定此點為X_MIN_POS,最大可以移動到X_MAX_POS
Y最大移動範圍就是以歸零後的位置為基準點
設定此點為Y_MAX_POS,最小可以移動到Y_MIN_POS
8.EEPROM設定
啟用EEPROM可以將一些設定儲存下來,另外也可以直接在面板上調整機器的一些組態(啟動後面板會多出一些可以設定的選項)
如果沒有啟用,則只能透過重新燒錄軔體來修改機器參數
Mega2560有內建EEPROM
但Due沒有,如果使用Due記得先確定使用的板子有額外加上EEPROM
使用方法只需將#define EEPROM_SETTINGS反註解即可
這邊要注意,一但啟用EEPROM,如果你修改了機器參數(例如馬達微部,列印尺寸等等)
重新燒錄軔體後,須對機器下gcode
M502(重置所有設定) + M500(儲存設定至EEPROM)
不然你會發現你的機器參數還是保持在上傳韌體之前的狀態
修改選單控制方向
#define REVERSE_ENCODER_DIRECTION
取消註解
測試限位開關和馬達方向