*如果你想搞清楚Klipper到底是幹什麼用的,我先講結論好了,安裝後改善了層紋問題約70%,改善拐角浮凸現象99%,品質可接受的速度提高至60mm/s*

**注意:這篇所談的Klipper是安裝在MainsailOS的,如果您比較想使用OctoPrint或Fluidd請勿參考這篇**

Ender 3 S1其實也不是很爛,但就是out-of-box表現就這麼剛好不如我手上已經有的機器

所以說從入手那天開始,就一直是在改善S1列印表現的一個旅程

看了很多組裝機器、調整骨架、滑輪、螺桿、皮帶...等等的影片

自己也是天天下班回家就拆啊調啊的,讓它的列印品質一點一點的改善

也算是因此獲得了不少經驗值

就在覺得S1調到極限了,已經左調右調無法再更好的時候

在Youtube刷到了一個3DPrintBeginner發布的Ender-3 S1安裝了Klipper Firmware的示範影片

看到他前後品質的比較,以及兩倍速以上列印的可能性,非常羨慕又嚮往

----但卻沒信心自己能做到,因為要用到Raspberry Pi又有一大堆我看不懂的程式碼

 

耐心逼自己一遍又一遍的閱讀他的Klipper安裝教學後,決定心一橫也買塊RPi來放手一搏

跳過買了一塊價格在高點的RPi4B這筆冤枉錢的階段,總之最後選擇了在社團買一塊二手的RPi Zero 2W來安裝到S1

以下將是我針對該教學網站內容做翻譯,以及一些手順註解,目的主要是自己將來要再安裝的備忘

如果有人路過看到對你有用,那麼不用客氣,但如果搞出事了,本人絕不會有一絲負罪感

 

需準備的材料:

1. 已經調整運作穩固的Ender3 S1

2. Raspberry Pi單板微型電腦,等級建議3B以上,要有WIFI功能,Pi Zero W也很適合,須備有8G以上MicroSD卡及焊好GPIO排針

3. 一條適當的資料傳輸線: *S1的輸入孔是TYPE-C、*RPi3/4的輸出孔是USB-A、*RPi Zero的輸出孔是MicroUSB

所以我自己是拿一條MicroUSB傳輸線,再買一顆TYPE A轉C的OTG頭,像這樣:

4. 供電: 用RPi Zero請備一條可以犧牲的MicroUSB線(只有充電功能的也可以),用RPi3/4請外接專用電供

5. 2條10cm內的杜邦公母頭排線(雙公頭也可),6條15cm以上的杜邦雙母頭排線

6. 電烙鐵

7. 3DPrintBeginner針對S1客製化的Klipper printer.cfg檔

 

釐清運作架構:

對於完完全全不懂開發平台、編程的我,花了不少精神去理解這玩意的運作架構,以下是我的理解:

硬體架構方面 - 樹莓派解讀GCODE並優化馬達的加減速指令=>USB線=>換裝專用韌體的3DP主板接收指令分配給各電機=>電機運動(X,Y,X,擠出機等等)

軟體架構方面 - MainsailOS是作業系統,Klipper是作業系統內的軟體,Moonraker為控制Klipper的Web介面,整個solution則簡稱為Klipper

3DP方面也需要把原本的韌體更換為Klipper專用,才能與Pi透過USB線溝通,這個韌體應該就叫做Klipper Firmware

 

與北 開始:

1.MainsailOS的官方github下載最新的img檔(1.多G那個),這將會是運行Klipper程式的OS;

Win32 Disk Imager把img檔燒錄進去一張空白的MicroSD卡,MainSailOS已經內含Klipper與Moonraker

 

2. 燒錄完成勿急著插入Pi卡槽,做好的OS卡片會有兩個磁區,其中一個叫做boot,千萬不要聽電腦的話把它格式化了,

先打開boot,用記事本開啟目錄下的mainsailos-wpa-supplicant.txt 

找出下面字串: 

## WPA/WPA2 secured

把WPA以下4行前面的#號刪除,並且帶入wifi名稱密碼
network={
ssid="你的wifi名稱"  (引號要留著)
psk="wifi密碼"  (引號要留著)
}

修改完存檔,插入Pi的MicroSD卡槽,將Pi插上電供,即可讓Pi開機自動連上網路

現在還不用把3DP接上Pi。

 

3. 原則上這時候在區網內打以下網址 http://mainsailos.local/ 就能連上Pi裏頭的網頁介面

當然此時還未與列印機連結,它找不到印表機會顯示錯誤。

如果無法連上該網址,則須用路由器找出目前Pi的IP位址,直接打IP進去也是一樣的頁面。

若都連不上設備的話表示前面步驟有誤,可能是自動連上Wifi的SSID跟密碼有打錯,重新輸入看看。

 

4. 在接上3DP之前我們要先製作出給3DP用的韌體,它才能與Pi溝通

確認MainsailOS已經上線後,用Putty輸入剛剛找到的IP,按Open

就會進入黑底的Console視窗,輸入用預設用戶名: Pi ⏎,預設密碼: raspberry ⏎登入後台介面

現在開始是要透過Pi來製作3DP專用的Klipper韌體,在後台介面輸入:

cd klipper ⏎ 進入Klipper資料夾

接著輸入:

make menuconfig ⏎

會出現製作韌體的介面,在介面中的選項按照這張圖設定:

[*]Enable extra low-level configuration options 按一下空白鍵勾選

Micro-controller Architecture 按右鍵進去選擇 STMicroelectronics STM32

Processor model 按右鍵進去選 STM32F103

[ ]Disable SWD at startup (for GigaDevice stm32f103 clones) (NEW) 不勾選

Bootloader offset 按右鍵進入選 28KiB bootloader

Clock Reference 按右鍵進入設定 8 MHz crystal

Communication interface 按右鍵進入選 Serial (on USART1 PA10/PA9)

Baud rate for serial port (NEW) 輸入250000

() GPIO pins to set at micro-controller startup 這個不要動它

設定完按Q離開Y存檔

接著輸入 make ⏎ 它會花個一兩分鐘建立韌體

跑完就會製作出一個名為klipper.bin的韌體存在Pi的/home/pi/klipper/out資料夾底下

 

5. 在PC安裝WINSCP,與PUTTY一樣方式登入Pi的IP就可以檢視Pi系統的資料夾

/home/pi/klipper/out資料夾底下的klipper.bin複製出來貼上一張乾淨的SD卡

插入3DP開機,靜候十幾秒韌體就會刷完,此後再開機原裝的LCD就會失效了,可以卸下來。

 

6. 在連接Pi與3DP之前,先連接Pi的web介面,在Machine(機器)的頁面

按下上傳檔案圖標,選擇3DPrintBeginner提供的printer.cfg檔,這個檔案內容是告訴Pi跟3DP溝通的規則

之後很多自己值可以在這裡面修改、增減以符合自己的需求。

至此已經完成基本安裝。把傳輸線插入樹莓派的資料傳輸USB孔(Zero是MicroUSB,注意標示,它與Zero的電源孔長的一樣)

另一頭插入3DP的SD卡槽旁邊的TYPE-C孔,重開機,接下來用PUTTY進入樹梅派的指令區輸入:

ls /dev/serial/by-id/* ⏎ 

會顯示類似字串: serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0

*不一定會相同,請按照PUTTY顯示的去複製出來,然後打Mainsail中printer.cfg,替代裡面的以下位置:

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

這個指令就是告知Mainsail你的印表機接在Pi的哪個孔上

再重開一次klipper,應該就能連上印表機了

在G-CODE檔案分頁選擇上傳檔案就可以列印了

但要得到最好的列印品質,必須做一些「校正」跟參數調整,例如Input ShaperPressure Advance

這我想另外寫一篇來記錄。

 

7. 如果真的很想要3DP主機上還有個螢幕可以操控,那麼請參考KlipperScreen搜尋相關教學

最麻煩是需要買一個尺寸夠按(5吋左右),又最好是KlipperScreen官網列舉相容的LCD

它們通常解析度只有800*480且價格一兩千,CP值實在低

所以我最後是選擇不加裝螢幕,Web介面已經非常好用且反應無延遲,等於是無線觸控螢幕了

何況檔案本來就必須從web介面上傳,何必多花錢安裝LCD

不如放支舊手機舊平板在旁邊作為專責也可以。

----2022-03-04 update: 在youtube上看到有人成功搞出了讓Ender3 V2、S1螢幕可以操作的作法,我搞出來後將再後續補上----

 

8. 倘若選擇了不加裝螢幕,那麼就可以著手把RPi Zero整合到3DP上了。

某些人會把RPi板子裝進3DP裡面完全隱藏,我則是希望日後可以自由取下RPi玩其他花樣

因此想了一個模組化安裝的概念﹔一個整線盒固定在原本3DP LCD的位置、RPi附著在上面可快拆

就叫他Klipper Box吧: 下載圖檔

一開始所提到「可以被犧牲的MicroUSB線」就是要用在這邊了

將MicroUSB線剪開,找出裡面的VCC(紅線)跟GND(黑線),把它們焊接上杜邦線,一端延伸出公頭

下圖是Ender-3 S1原廠屏線,裡面的1,2 Pin就是5V供電,把改裝好的杜邦公頭插上即可為RPiZero供電

要注意的是,這個方法僅適用於RPiZero,因為RPi3/4所需要的電力太多,用屏線的電會顯示功率不足

可能使的系統不穩或是無法預期的斷電。其他的就不詳述,看上面影片吧。

 

9. 如果做到這裡就開始嘗試列印東西,有可能會發現它永遠都不肯開始列印,然後控制台裡面寫了幾條紅色的警告之類的

這可能是因為Klipper不認得某些起始碼裡的GCODE,例如M500,M302之類的,總之把目前使用順利的起始碼、結束碼備份在這邊:

起始碼:

G28 ;Home

G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up

G92 E0
G1 F2700 E-5

結束碼:

G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positioning

G1 X0 Y220 ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed

M84 X Y E ;Disable all steppers but Z

 

先熟悉一下Klipper的Web介面,跟它的邏輯

下一篇要敘述我如何做Input Shaper與Pressure Advance,前面提過的GPIO排針就是針對input shaper要用的

文章標籤
全站熱搜
創作者介紹
創作者 KAWOOORU 的頭像
KAWOOORU

STAND ALONE COMPLEX

KAWOOORU 發表在 痞客邦 留言(0) 人氣(417)