天天看點

UM2 3D 列印機 DIY 實踐 ( 3) Marlin 固件配置篇

某些同學可能會問: https://github.com/Ultimaker/Ultimaker2Marlin 和 https://github.com/MarlinFirmware/Marlin/ 我應該用哪個呢?回答一下:後面那個。前者是給 UM2 官方的主機闆的。從GitHub下載下傳最新版的固件。截至發文時最新的版本是 2.0.7.2 。相比 1.x 版本,2.0 提高了安全性,當檢測不到溫度傳感器時(毀壞或者掉線)自動停止加熱,避免以前一直加熱燒毀機器的情況。

以下是開機運作的基本配置。硬體是前面講到的 mega2560 + Ramps1.4。因為筆者也是正當學習中,後續還會不斷更新。

用 Arduino IDE 打開 Marlin/src/Marlin.ino 修改 Configuration.h 以下配置:

1)#define BAUDRATE 250000

這行不用改,記住後面用這個波特率跟主機闆通信

2)#define MOTHERBOARD BOARD_RAMPS_14_EFB

單噴頭用 BOARD_RAMPS_14_EFB,雙噴頭用 BOARD_RAMPS_14_EEB,更多類型看 boards.h 裡的定義。

3)#define EXTRUDERS 1

擠出機數量。單個擠出機不用修改

4)#define TEMP_SENSOR_0 1    // 噴頭溫度傳感器,1 代表 100k,根據傳感器類型修改

#define TEMP_SENSOR_1 0

#define TEMP_SENSOR_BED 1    // 熱床溫度傳感器,同上。設成 0 表示不使用熱床

5)#define HEATER_0_MAXTEMP 275

#define BED_MAXTEMP      100

分别表示噴頭和熱床的最高溫度,超過這個溫度加熱将停止

6)#define PIDTEMP

當使用獨立 Mos 管給熱床供電時開啟這個選項。後面還有三個選項也要修改,基于篇幅這裡不展開,請看後面專門的篇章。

#define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current

#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current

#define PID_K1 0.95 // Smoothing factor within any PID loop

7)#define X_DRIVER_TYPE  TMC2225

#define Y_DRIVER_TYPE  TMC2225

#define Z_DRIVER_TYPE  TMC2225

#define E0_DRIVER_TYPE TMC2225

定義使用的電機驅動闆。預設是 a4988,改成實際用到的型号。像筆者一樣使用 TMC 驅動時,需 arduino IDE 安裝 TMCStepper 庫(工具 - 庫管理 搜尋安裝)

8)#define DEFAULT_AXIS_STEPS_PER_UNIT   { 200, 200, 800, 764.331 }

分别代表 xyz 軸和擠出機的速度,含義是每走 1mm 需要多少個脈沖。計算公式

360/步距角*細分數/(齒間距*齒數) // 同步帶傳動

360/步距角*細分數/導程 // 絲杆傳動

42 電機一般步距角為 1.8 度,細分數跟用到的驅動和跳線有關。2GT 同步帶齒間距是 2mm,齒數是電機上的同步輪的齒數,跟光軸上用什麼齒輪沒有關系。

最後一個計算方式相同。但因為缺少泰坦擠出機相關資料,是以實際上用的是網友提供的資料(32 細分),根據列印的效果再調整。

9)#define INVERT_X_DIR true

#define INVERT_Y_DIR false

#define INVERT_Z_DIR false

反轉 xyz 軸電機的方向。根據實際調整

10)#define INVERT_E0_DIR true

反轉擠出機的 方向

11)#define X_BED_SIZE 300

#define Y_BED_SIZE 200

#define Z_MAX_POS 200

平台的大小,定義xyz 軸的活動範圍

12)#define LCD_LANGUAGE en

顯示的語言,簡體中文用 zh_CN

13)#define SDSUPPORT

使用帶 SD 讀卡器的 LCD12864

14)#define SPEAKER

開啟蜂鳴器

15)#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

使用 LCD12864 控制闆 https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller。還有另外一個配置 //#define REPRAP_DISCOUNT_SMART_CONTROLLER 屬于縮小版的 LCD ,詳細看這裡 https://reprap.org/wiki/RepRapDiscount_Smart_Controller 。二者選一

Arduino IDE 燒寫固件

USB 連接配接上mega2560, IDE 上選擇開發闆、處理器和端口。會發現端口有兩個,選 wu*開頭的那個,不然會報 port busy  的錯誤。

UM2 3D 列印機 DIY 實踐 ( 3) Marlin 固件配置篇

然後點 項目 - 上傳 燒寫到主機闆上。

pronterface 測試

接上電源,如果你足夠幸運一次點亮螢幕。不亮也沒關系,還是可以用 pronterface 來測試的,或許隻是螢幕問題呢。

依次測試 xyz 軸運動,熱床,噴頭加熱,擠出機。當噴頭溫度低于安全擠出溫度時,控制擠出機并不會有動作,并非是擠出機故障。

關注我加入群讨論:

UM2 3D 列印機 DIY 實踐 ( 3) Marlin 固件配置篇

繼續閱讀