由于Kossel是使用遠(yuǎn)程擠出機(jī)贸弥,那么如果手動(dòng)更換打印耗材就是一件非常麻煩的事下硕,要將耗材從遠(yuǎn)程擠出機(jī)中抽出或者插入都是一件極為麻煩的事线梗,甚至某些時(shí)候可以說(shuō)是一團(tuán)糟缚俏。如果LCD控制菜單或者通過(guò)GCode指令能幫助我們完成這一項(xiàng)工作那將是一種福音惊搏。
Marlin支持一個(gè)非常棒的GCode那就是M600,這是一個(gè)指示打印機(jī)更換打印耗材的半自動(dòng)化功能忧换。
但如果要打開這個(gè)功能就需要在固件中更改不少的地方恬惯,首先要找到FILAMENT_RUNOUT_SENSOR
的定義并取消注釋,使耗材檢測(cè)傳感器處于可用狀態(tài)亚茬。然后要將FIL_RUNOUT_INVERTING
設(shè)置為true
酪耳,具體代碼如下:
/**
* Filament Runout Sensor
* A mechanical or opto endstop is used to check for the presence of filament.
*
* RAMPS-based boards use SERVO3_PIN.
* For other boards you may need to define FIL_RUNOUT_PIN.
* By default the firmware assumes HIGH = has filament, LOW = ran out
*/
#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#endif
此時(shí)需要在將的 pins_RAMP.h
文件中的FIL_RUNOUT_PIN
指向當(dāng)前使用的跳線,如果采用Y-MIN則要改成以下的設(shè)定
#define FIL_RUNOUT_PIN 14 // 現(xiàn)在采用 Y-Min // 4
如果不清楚傳感器的狀態(tài)可以輸入M119
來(lái)查看斷料傳感器的狀態(tài)刹缝,插入耗材后filament
的狀態(tài)應(yīng)該為Tiggered
, 在Pronterface的輸出如下所示:
>>> M119
SENDING:M119
Reporting endstop status
x_max: open
y_max: open
z_min: open
z_max: open
filament: TRIGGERED
當(dāng)然此時(shí)你還沒(méi)有上傳固件碗暗,因?yàn)楝F(xiàn)在的狀態(tài)是不能成功進(jìn)行編譯的FILAMENT_RUNOUT_SENSOR
是需要在Configuration_adv.h
文件中啟用ADVANCED_PAUSE_FEATURE
才能成功編譯。打開Configuration_adv.h
文件找到以下的代碼行:
/**
* Advanced Pause
* Experimental feature for filament change support and for parking the nozzle when paused.
* Adds the GCode M600 for initiating filament change.
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
*
* Requires an LCD display.
* Requires NOZZLE_PARK_FEATURE.
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
*/
#define ADVANCED_PAUSE_FEATURE
這個(gè)選項(xiàng)實(shí)際的意義就是讓3d打印機(jī)可以暫停打印并進(jìn)行蜕液唬靠言疗,當(dāng)然你還得在Configuration.h
文件中將NOZZLE_PARK_FEATURE
啟用起來(lái):
/**
* Nozzle Park
*
* Park the nozzle at the given XYZ position on idle or G27.
*
* The "P" parameter controls the action applied to the Z axis:
*
* P0 (Default) If Z is below park Z raise the nozzle.
* P1 Raise the nozzle always to Z-park height.
* P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
*/
#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z }
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#define NOZZLE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define NOZZLE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#endif
其中的三個(gè)變量的定義的意思如下:
-
NOZZLE_PARK_POINT
- 指定效應(yīng)器的停靠位置 -
NOZZLE_PARK_XY_FEEDRATE
- 指定效應(yīng)器在统恚靠時(shí)XY軸方向(水平)運(yùn)行速度 -
NOZZLE_PARK_Z_FEEDRATE
- 指定效應(yīng)器在停靠時(shí)Z軸方向(垂直)運(yùn)行速度
然后回到 Configuration_adv.h
文件中疑务,還需要對(duì) ADVANCED_PAUSE_FEATURE
內(nèi)的具體選項(xiàng)進(jìn)行修改沾凄,否則在更換耗材時(shí)耗材只會(huì)被拖出一點(diǎn)點(diǎn)或者送進(jìn)一點(diǎn)點(diǎn),因?yàn)镸arlin是對(duì)近程擠出機(jī)進(jìn)行設(shè)置的所以出料與入料都設(shè)得很短知允,因此我們得將FILAMENT_CHANGE_UNLOAD_LENGTH
和FILAMENT_CHANGE_LOAD_LENGTH
設(shè)置得長(zhǎng)一些撒蟀,我這里是設(shè)置成為500,也就是50CM,代碼如下所示:
#if ENABLED(ADVANCED_PAUSE_FEATURE)
// ... 省略
#define FILAMENT_CHANGE_UNLOAD_LENGTH 500 // Unload filament length from hotend in mm
#define FILAMENT_CHANGE_LOAD_LENGTH 500 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// ...
#endif
上傳温鸽,然后運(yùn)行保屯。成功手负?
不好意思,你的打印機(jī)一定只會(huì)不停地出現(xiàn)要你插入耗材的提示而且根本沒(méi)有按照我們所想那樣退料50cm或者進(jìn)料50cm姑尺,這是什么鬼竟终?如果打開Pronterfont來(lái)觀察打印機(jī)的日志輸出你會(huì)發(fā)現(xiàn)這么一行:
echo: too long extrusion prevented
然后打印機(jī)的LCD控制面板就會(huì)提示你插入耗材(即使現(xiàn)在已經(jīng)插入了耗材)。這是由于被EXTRUDE_MAXLENGTH
這個(gè)選項(xiàng)給限制了切蟋,它是阻止擠出過(guò)多地?cái)D出耗材設(shè)定的统捶,默認(rèn)值只有200,對(duì)于遠(yuǎn)程擠出機(jī)來(lái)說(shuō)根本不夠柄粹,那就將它改成600吧喘鸟,在Configuration.h
你可以找到它,代碼如下所示:
#define PREVENT_LENGTHY_EXTRUDE
#define EXTRUDE_MAXLENGTH 600
上傳固件驻右,大功告成什黑!
注意 : 如果你沒(méi)有將擠出頭的溫度加熱到170度以上,LCD中是不會(huì)出現(xiàn)更換耗材菜單的堪夭,記得想更換耗材之前要預(yù)熱哦愕把。