Kossel 升級(jí)記 - 增加斷料檢測(cè)

由于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)化功能。

但如果要打開(kāi)這個(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才能成功編譯。打開(kāi)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)器的??课恢?/li>
  • NOZZLE_PARK_XY_FEEDRATE - 指定效應(yīng)器在??繒r(shí)XY軸方向(水平)運(yùn)行速度
  • NOZZLE_PARK_Z_FEEDRATE - 指定效應(yīng)器在??繒r(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_LENGTHFILAMENT_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,這是什么鬼?如果打開(kāi)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ù)熱哦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容