在開始這期的內容之前,先跟大家說明一下,安裝 Klipper 韌體不一定會讓你的3D列印品質變好,或者是說痛風突然就不痛了,而且一定還要配合測試跟調校,絕對不是說安裝好就高潮升天等等之類的。如果說你現在的韌體使用下來很穩定並且沒有高速列印的需求,真的不一定要嘗試 Klipper。會預設使用 Klipper 的列印機如 Voron,Vzbot 或是說 ANNEX 都是因為機構設計是有達到高速列印的需求,一般的 3D列印機如果只是需要無線列印,可以只安裝 OctoPrint 即可。
因為最近樹莓派的嚴重缺貨,價格也非常不友善,如果有攝影鏡頭的需求,才需要購買 Raspberry Pi 3b 以上的版本,但如果沒有要接攝影鏡頭的話,使用 Pi Zero Wireless 就非常夠用。其他不需要樹莓派的安裝方式也不會在本集中做討論喔。
那開始一步一步安裝 Klipper 韌體,一步一步入坑吧!這集要介紹的是最推薦也是最多人使用的安裝方法,需要的硬體設備是:
A. 一台樹梅派 Raspberry Pi
B. 一張3D列印主板(MCU)
C. 一張的記憶卡跟一台讀卡機
那要帶大家安裝的是 MainSail 這款輕量級的 Klipper 網頁管理前台, 他們也有在 Github 提供專為樹莓派使用的一條龍映像檔,直接燒錄在SD卡就可以讓樹莓派直接進行使用,對新手來說也是最友善的 Klipper 安裝方式。 Fluidd 跟 MainSail 大同小異,按照相同的步驟就可以了。
以下內容請務必搭配影片服用,效果加倍。
首先先到 MainSailOS 的 Github,在 Release 頁面中下載最新版本的映像檔,這邊使用最新版本的 Klipper 是非常重要的,雖然後面也還是可以在網頁中進行升級就是了。 下載完成後,需要使用 Etcher 或是 樹莓派的燒錄工具,進行 SD 卡的燒錄,左邊點選要燒錄的映像檔,也就是剛剛下載的MainSailOS,之後再選擇要燒入的 SD 卡位置,Windows 系統下的操作應該也是差不多的喔,接下來就可以開始等待燒錄完成,燒錄完成後先不要急著退出 SD 卡,我們還要進行 WIFI 的連接設定,在 SD 卡根目錄下用記事本開啟 mainsailos-wpa-supplicant.txt 文檔,在 Wifi 設定的部分,拿掉多餘的#字,並輸入家中 WIFI 的 SSID 以及密碼,這邊如果不懂SSID,我也沒辦法救你。
接下來將 SD 卡插入樹莓派中,插電,開機,第一次開機需要比較長的時間,準備使用終端機(MAC)或是 Putty (Windows) 進行 SSH 的連線,我這邊使用MAC終端機做示範,輸入以下指令登入樹莓派的系統:
ssh pi@mainsailos.local
*這邊 mainsailos.local 可以換成樹莓派的內網IP,如 192.168.38.438
預設的登入密碼是 raspberry,正確登入後可以看到以下的畫面
第一次登入我個人的習慣是更改密碼,提高安全性,但是這邊我們先進行系統安全性的更新,輸入:
sudo apt update && sudo apt upgrade -y
等待更新完成後,我們需要輸入下面的指令進行重新開機:
sudo reboot
重新開機之後,我們再次進行 SSH 連線,要開始 Build 專為我們的主板 MCU 所使用的韌體,我這邊進行操作的是 Creality 2.1 的主板,是搭載 2560晶片的主機板,不同的板子會有不一樣的晶片,請務必確認跟做好功課才進行下面的操作喔。 這邊我們開啟 Klipper 官方網站,依照官方提供的指示進行操作,首先輸入以下指令進入 Klipper 資料夾:
cd ~/klipper
再輸入以下指令進行相關建構參數設定:
make menuconfig
這邊會出現一個視窗,使用箭頭按鍵做移動,空白鍵做選擇,依照自己要燒錄的主板選擇晶片,以及連接的方式,預設是使用 UART0 的連接方式,完成配置後,按下 Q,SAVE 儲存
接下來輸入 make 指令進行 Build:
make
如果過程中無任何錯誤訊息,應該會出現下列的資訊,告知你韌體的檔案位置。
Creating hex file out/klipper.elf.hex
由於我這張 Creality 2.1 的主板原生韌體是Marlin,所以第一次刷 Klipper 是不支援 USB 連線直接 FLASH 的功能,所以我們必須將韌體下載到另一張SD卡根目錄中,並且將 klipper.bin 改名成 firmware.bin (這邊要注意大小寫的部分),MAC 系統可以使用 Cyberduck,Windows 系統可以使用 WinSCP 進行 SFTP 的操作。 這邊在 Cyberduck 的連線設定中,一樣輸入樹莓派的內網IP,帳號以及密碼,選擇 SFTP 的連線,如果都輸入正確就可以在 Klipper 的資料夾中,下載剛剛建置好的韌體到SD卡中。
並將帶有 firmware.bin 的 SD 卡插入主機板,接上 USB 供電就會自動執行刷 Klipper 韌體的部分,這邊建議不要讓主機板連接螢幕或是其他模組,避免供電的不足,燒錄韌體的期間也請勿斷電,最好等個五分鐘再將SD卡取下插入讀卡機,如果說 firmware.bin 被改名為 firmware.cur 就代表韌體已經燒錄成功了! ( 成功燒錄的主機板因為 Bootloader 也會進行更改,未來如果要重新刷韌體則不再限制只能透過SD卡的方式 )
/// 以下開始是USB線連接直接對主板進行 FLASH 韌體的方式 ///
接下來直接按照 Klipper 官網說明的指令進行 USB 連線燒錄,這邊將主板以 USB 連接到樹莓派後,輸入以下指令,確認通訊口的位置:
ls /dev/serial/by-id/*
這時候會跳出一行文字,如:/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
請複製起來備用。
接下來我們在 Klipper 的資料夾下,輸入以下指令先關閉 Klipper 的服務:
sudo service klipper stop
完成後,再輸入以下指令進行燒錄,這邊要注意 FLASH_DEVICE 的位置必須是剛剛複製下來的那串文字:
make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
燒錄期間請勿移除 USB 線,並且能看見主板的燈號閃爍。 螢幕中顯示燒錄完成訊息後,輸入以下指令重新開啟 Klipper 服務:
sudo service klipper start
這樣基本上你就有一張帶有 Klipper 韌體的主板了。 接下來的步驟,比較推薦你將主板 MCU 的部分接上 3D列印機的零件,可以避免部分的錯誤訊息或是安全機制,但是不接列印機進行網頁前台測試也不是不行拉。
再確認好主板與樹莓派是用 USB 線連接的情況下,我們在瀏覽器上輸入 http://mainsailos 或是樹莓派的內網 IP: 192.168.38.438 進入 MainSail 網頁前台,但應該會出現連接不上 MCU 沒有 printer.cfg 的錯誤訊息,這邊都還是正常的,請不用擔心,那是因為我們還有沒有設定 printer.cfg 的設定檔,MainSail 當然找不到 MCU。
首先我們可以先到 Klipper 的 Github 找尋主板或是列印機相對應的 Config 範例檔案,市面上大部分類型的主板都有相關的範例檔可以參考,像是我這張 Creality 2.1 的主板,預設是給 CR10-s 做使用,所以我這邊找到範例檔案後,複製裡面所有的內容,再貼到剛剛新增的 printer.cfg 檔案中,存檔並重新啟動。Printer.cfg 做任何改動都必須重新啟動來啟用改動的部分,就算只改一個數值也是要重新啟動才會有作用喔。
那可能進行到這邊,奇怪?! 怎麼 MainSail 還是連不上 MCU??! 那是因為可能預設的 printer.cfg 檔案中的,MCU 的通訊口是不對的,這邊有兩種做法,一種是在 Device 底下找到USB的通訊口,另一種則是像刷 Klipper 韌體一樣找到 Device ID 的部分,我個人是比較偏好 Device ID,因為就算是後來插上不同的USB孔,MainSail 還是可以正確地跟MCU進行連線。
如果說剛剛有按照指示將主板接上3D列印機的各個零件,包含測溫線等等的,這邊 MainSail 的主畫面應該就會正常出現,但如果說沒有接上熱床測溫線以及噴頭測溫線就會因為 Klipper 安全機制的部分,自動與 MCU 主板斷線,就會出現主畫面連上後秒閃退的情況,這時候解決的辦法就是回到 printer.cfg 檔案中,將[extruder]以及[heater_bed]的溫度下限 min_temp 的數值改為-200 存檔重啟即可。這樣就可以看到主控面板了,但是左上角可以看見警示,說明 printer.cfg 還缺少了mainsail.cfg 的內容,我們只要把 mainsail.cfg 的所有內容拷貝,再到 printer.cfg 文件的最下方貼上即可,一樣保存重啟,這樣主畫面就完全正常顯示了!
上期介紹: Klipper 3D 列印韌體 #0 介紹篇