跳轉至

限位相位

該文件介紹了Klipper的步進電機相態校準限位位置的功能(下稱:相態修正)。該功能可以增強傳統限位開關的準確性。使用帶有執行期間設定的步進電機驅動器,如Trinamic,可發揮該功能的最大作用。

典型的限位開關的精度在100微米左右。(每次歸零時,限位觸發的位置可深可淺。)儘管該誤差很小,但它確時會影響列印效果。對於模型的首層列印而言,該精度會有明顯的影響。相對地,步進電機的運動精度顯然更高。

相位修正功能可以利用步進電機的精度提高限位開關的精度。 步進電機通過一系列的相位循環運動,直到完成四個 "全步"。例如,一個使用16微步的步進電機,「全步」有64個相位,運動時會通過0, 1, 2, ... 61, 62, 63, 0, 1, 2...的相位循環。最重要的是,當步進電機處於線性軌道上的特定位置時,它應始終處於同一步進相位。因此,當滑車觸發限位開關時,控制該滑車的步進電機應始終處於同一相位。Klipper的限位相位系統將步進相位與限位開關觸發相結合,以提高歸零的準確定。

使用該功能需要確定步進電機的相位。如果使用 TMC2130, TMC2208, TMC2224 或 TMC2660 ,並設定為 執行時設定模式(即,不使用獨立(stand-alone)模式),Klipper可以通過訪問它們獲得相位資訊。(使用傳統步進電機驅動,在可以可靠地重置驅動地情況下,也能夠實現相態檢測功能。)

校準限位相位

在使用Trinamic驅動 並 使用了執行時設定后,可以使用ENDSTOP_PHASE_CALIBRATE命令進行相位修正。首先在配置檔案中加入下列設定:

[endstop_phase]

之後,依次執行RESTART ,執行G28ENDSTOP_PHASE_CALIBRATE。完成後,將列印頭移動到一個新位置,再執行G28。重複數次,確保每次列印頭在不同地位置執行G28。最少應重複上述移動-G28操作5次。

完成上述操作后,ENDSTOP_PHASE_CALIBRATE命令會給出相同或進行的步進電機相位值。該值可以輸入到配置檔案中,之後G28命令執行使會參考該相位數據。(此後,即使限位開關過早或過晚觸發,Klipper在歸零時會獲得調整到相同的相位。)

要儲存特定電機的相位修正資訊,可使用下面的命令:

ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z

參照上述命令,我們可以儲存想要的步進電機資訊。通常,stepper_z會用於龍門式或CoreXY式印表機,而stepper_a、stepper_b和stepper_c則用於三角洲。最後執行下面數據儲存配置檔案:

SAVE_CONFIG

額外要點

  • 該功能在三角洲印表機和使用Z限位的龍門/CoreXY印表機上最為適用。該功能也可以用在龍門式印表機的X、Y軸上,但,由於X、Y軸的限位偏差不會對列印質量有太大影響,因此重要性略遜於Z限位。該功能不適用于CoreXY印表機的X,Y軸。(因為XY位置並非單個步進電機決定。)該功能也不適用于適用探針Z限位的印表機(因為步進電機相位僅在固定線性位置的限位上有效。)
  • 在限位開關校準后,如果移動過限位開關,則需要重新校準相位。此時應刪除設定檔案中的校準值,然後重新執行相位修正。
  • 為使用上述功能,限位開關必的偏差值需低於特定步進電機的兩倍「全步長」的距離。因此,如果步進電機使用16微步,此時每個微步的長度為0.005mm,則限位開關的分辨能力應低於0.160mm。如果系統反饋"Endstop stepper_z incorrect phase"(stepper_z相位與限位開關不一致)錯誤資訊,則限位開關的精度太差。如果重新校準未能消除報警,則需要停用相位校準功能。
  • 如果印表機使用的是從傳統的步進電機控制Z軸(如龍門或CoreXY),同時使用了傳統的螺母調平的話,則可以使用相態修正功能將列印的每一層的邊界設定到一個「全步」上。要使用這個功能則需要在切片器上將層高設定為「全步」的整倍數,然後在設定檔案中的endstop_phase 片段中增加endstop_align_zero選項(詳見 配置參考),然後通過調平螺母調平。
  • 該系統也有可能用於傳統(非Trinamic)步進電機驅動 。然而,這需要每次微控制器復位時,對應的步進電機驅動也同時復位。(如果兩者能實現同時復位的話,Klipper能夠通過記錄步進的總移動步數來確定其相位。)目前,能夠可靠地完成微控制器和步進電機驅動地同時復位地方式是,這兩者僅通過USB供電並USB電源通過執行有Klipper的樹莓派提供。此時可以在配置的MCU章節中新增 "restart_method: rpi_usb",該選項將安排微控制器始終通過USB電源復位,在僅使用USB供電時,這將安排微控制器和步進電機驅動器一起被複位。使用這種方式時,需要在配置檔案中手動設定"trigger_phase"(詳見配置參考 )。
Back to top