2014年3月17日 星期一

列印到一半馬達失步!! 怎麼辦?

慘...

相信大家都有這種經驗(沒遇過的實在是很幸福),一早起床發現列印作品被攔腰截成兩截,列印失步!!開始印的時候都沒問題阿,印的好好的。可是偷懶沒顧著機器,機器就跟著偷懶,出包給你看。(其實就算顧著,一樣會失步,而且束手無策。)G-code裡面幾千個指令中,只要其中一個指令造成馬達失步,整件作品就毀了。這樣失敗的作品,實在是難以見人啊!!

發生失步的原因,其實很簡單,就是工作需要的力量太大,馬達不夠力。所以解決失步的方向,不外乎加強馬達的力量(難),另外就是減輕馬達的負擔。

加強馬達力量的方法,不外乎換更大顆的馬達,或是增加供應給馬達的電流。換更大顆的馬達,得要花大錢重新買,而且買來到底夠不夠力,也沒個準。42型步進馬達的規格中,身長要多長?電流要買多少的?都要靠複雜的仔細計算才能有參考。

另外比較可行的也許是增加供應電流。大家買的馬達,額訂電流(電流上限)大約都是1.5~1.7A,但是4988驅動板上的電流供應設定,一般都不會超過1A。所以電流是可以再繼續提高的,不過4988驅動板要另外買,或是更換Rs電阻。電流提高後,還要面對4988散熱不良會燒毀的困擾,要千萬注意。

以上是增加馬達力量的方法,除了既有4988驅動板的電流調高到接近1A以外,其他方法可行性都不高。另外一方面要設法減低馬達的負載,可以嘗試的方法就比較多了。

1. 放鬆皮帶的鬆緊度
皮帶太緊,會增加馬達軸,還有墮輪的摩擦力。合適的鬆緊度,有助於馬達順利運轉,而且兼顧定位的精準度。

2. 減少馬達的負載重量
列印平台的玻璃、列印台底板(有些人使用金屬),是Y軸負荷重量的主要來源。使用較薄的玻璃,或是用玻纖板替代原有的玻璃,可以減輕重量。在強度充足的前提下,列印台底板上盡量鏤空,或使用更輕的材質,也可以減少Y軸馬達的負荷。

X軸最大的重量負荷,來自擠出機馬達。如果把擠出機構改成遠端送料 Bowden 型態,可以大幅降低X軸馬達的負荷。

3. 降低列印速度
車開慢一點,需要的力量就減低了,這不需要再解釋吧~~

4. 降低加速度
這其實是最有效又實惠的解決辦法,可以印得又快又穩。

牛頓運動定理中提到 F(力量) = M(質量) x a(加速度)
當加速度減小,所需的力量也會等比例得減小。雖然質量減小也有幫助,可是質量能減小的比例有限。加速度減小,可以改善失步,但是不代表"最高列印速度"也會跟著降低。只是加速到最高速度需要的時間會增長而已。所以降低加速度,但是不降低列印速度,仍然可以保有相當快的列印速度。只犧牲一些些列印時間,但是又不會失步,一舉兩得!

加速度的設定,建議可以直接透過 LCD修改 Marlin 韌體裡的參數,然後儲存到 EEPROM 裡面。也可以直接修改 Marlin 的 Configuration.h 設定檔,再重新燒錄到 2560 控制板。再不然也可以在切片軟體裡面設定。

Marlin 的加速度設定,分為 Default (預設) 與 Max.(最高) 兩個部分。 Default 是當 G code  執行 G0、G1 等"移動指令"時所使用的加速度,預設值是 3000mm/s2。當 G code 執行 M204 ,嘗試著要修改 Default 加速度時,設定值不能超過 Max. 加速度的值。直接把 Max 加速度設定到3000mm/s2以下,才能有效避免 G code 裡面的 M204 又把加速度調高。

LCD 控制板內選擇 "Control -> Motion -> Amax x" 與 "Control -> Motion -> Amax y" 可以修改 Max. 加速度。修改好後記得要使用 "Control -> Store memory" 把設定值存入 EEPROM 中,下次開機才不必重新再調整一遍。

如果想從 Marlin 的 Configuration.h 做修改,請找到這行:
#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}
把兩個 "9000"的數字調低到合適的數字,再重新燒錄韌體進 2560 控制板。
如果之前使用過 EEPROM 記錄設定值,記得要在LCD選擇"Control -> Restore Failsafe",清除EEPROM中的設定,才會讓燒錄進去的設定值升效。
修改成 #define DEFAULT_MAX_ACCELERATION      {1500,1500,100,10000}


切片軟體 KISSlicer 的加速度設定,在 "Printer -> Speed -> XY Accel [mm/s^2]"


Slic3r 的加速度設定,在 "Print Settings -> Acceleration control (advanced)" 。 如果填 0 ,Slic3r 會使用 3000mm/s2這個預設值。請把這個框框裡所有的 0 ,都修改成合適的加速度。


至於加速度設定多少會合適呢?建議可以用二分法慢慢做實驗。預設值是3000mm/s2,所以第一次測試時使用1500mm/s2。如果不會失步,就再提升至 1500-(3000-1500)/2 = 2250mm/s2;如果會失步,就要再降低至750mm/s2。重複幾次測試之後,應該就可以找出自己機器的合理設定值了。另外要注意,測試時列印速度也許可以設高一點,譬如100mm/s,而且千萬要記得關閉切片軟體的 auto cooling 功能,要不然測試時使用較小件的模型,會讓切片軟體強迫減慢列印速度,導致實驗不準確。

KISSlicer 中,每層列印時間至少要10秒的設定,改成0秒,避免列印速度變慢影響實驗結果。

Slic3r 中,"Enable auto cooling" 自動降溫要取消勾選,避免列印速度變慢影響實驗結果。


以上,希望大家列印時都可以不必再提心吊膽,安穩睡個好覺!

15 則留言:

  1. 您好~
    我使用UP印一個model也發生類似馬達失步的狀況
    有沒有可能是UP本身轉檔沒轉好?或是model本身有問題?

    回覆刪除
    回覆
    1. model假設本身有破面~印出的model會造成類似失步的狀況嗎

      刪除
    2. 如果模型有破面,那切片產生出來的gcode多會有路徑錯亂的問題,而且會很明顯。只能朝著修補破面的方向來解決這個問題。Up系統我沒玩過,不知道他失步跟破面有沒有關係。

      刪除
    3. 了解~非常感謝你的回覆!!!

      刪除
  2. 你好.又來打擾你了,真不好意思,請問在列印作品時,印到3分之一或是之二時,作品越高越容易失敗

    別人是很難拆底部,而我是底部常常容易移動,速度也條慢了,寬度也調整過了....這如何解決?....

    回覆刪除
    回覆
    1. 請參考這兩篇:
      擠出量校正
      http://diy3dprint.blogspot.tw/2014/03/blog-post_10.html

      減少翹邊的幾個方法
      http://diy3dprint.blogspot.tw/2014/03/blog-post_7.html

      刪除
  3. 請問4988過熱會無法正常運作嗎?
    我將電壓調至1.3v (電阻0.1歐姆) 結果反而一直失步?? (我摸晶片超燙)
    但是我又有點怕調低電流會造成力道不足而失步, 有點苦惱~

    回覆刪除
  4. 你好!我是新手
    我把打印機拆掉重裝(因為要搬家)
    結果打線路都安裝好後(已經沒有用三個多月),發現有失步問題,圓形印出來變了有角,走圓弧時其中兩角變起了角,每一層每一個座標都是同一樣,已經把機械部份調整了好幾次也不能解決!!!
    是不是都要減速試驗一下!

    回覆刪除
    回覆
    1. 走圓弧會有兩邊不正常,我猜應該是皮帶齒輪上的止付螺絲鬆了。再檢查看看~

      刪除
  5. 我用SOLIDOODLE2 REPETITER+SLIC3,列印了5次都失敗(包含降速,情況沒比變好)
    後來有看到人家說馬達過熱也是一個問題點,
    似乎有道理,因為每次都是同個方向(Y軸),測一下溫度該軸確實較熱,且都是列印了10多層後才開始有失步的現象。
    後來該軸加吹電扇後就改善了。

    回覆刪除
  6. 您好,想請教一下,2顆同樣的馬達1.8度,
    一顆微步設16,DEFAULT_AXIS_STEPS_PER_UNIT 設80,
    一顆微步設8,DEFAULT_AXIS_STEPS_PER_UNIT 設40,
    測試讓他們走相同的距離時(如 10mm),請問轉的馬達轉的圈數會一樣嗎?
    為什麼我測試時,微步8的會走比較短?
    謝謝~~

    回覆刪除
    回覆
    1. 會不會是齒輪的齒數不一樣呢??
      理論上你這樣的設定應該要走一樣的距離。

      刪除
    2. 剛測試了一下,把馬達交換或步進驅動交換也是一樣。
      然後一個驅動微步jump全插,另一個全移除,DEFAULT_AXIS_STEPS_PER_UNIT都設一樣,
      結果2顆馬達轉的圈數一樣...... ><

      刪除
  7. 我是空轉馬達測式,但發現轉的圈數差太多,所以不敢接上機器去跑...

    回覆刪除