[教學] 如何征服超麻煩的組合---Auto Level+ Melzi + Repetier Firmware

本帖最後由 jonahl 於 2016-1-13 09:29 編輯

先要鳴謝vichui師兄的一篇文,把inductive proximity sensor的原理講得十分好。
Z-Probe 近接開關距離調整 - inductive proximity sensor

可惜我用Repetier Firmware,所以設定方面就要"食自己"了。
禍不單行,我部大陸機用的是Melzi 控制板。 這東沒有什麼不好, 只是一體化的設計令擴充的空間極少。
再令情況雪上加霜的,就是我部機的擠出是用大陸機流行的一種類近makebot M7的擠出頭,這東西沒有什麼現成的的配件........最後搞到要自己畫件野來裝sensor。

本來以為係一件plug and play 的小改動,最後變成一連串的diy大工程。

第一步: 畫件裝sensor
研究了幾次,最後都係在散熱風扇位做手腳。

Inductive proximity sensor Mount for MK7 style Extruders



第二步:接線大災難

Mielz的logical circuit是用5v,但sensor 是12v。所以一塊轉換板在所難免。

雖然有人話可以用電阻做降壓,但我覺得應該要把電路分開。最後我是用一個REED-RELAY 作為介面。把RELAY 的NC 的兩隻腳分別接去GND 同D17,之後把D17 PULL UP  了。
#define Z_PROBE_PIN 17
#define Z_PROBE_PULLUP true


另外,因為個SENSOR 沒有探測到金屬時是出12V, 有金屬是是0V。 為了避免REED-RELAY 的線圈長期通電,所以我用了一粒NE5534 來DIY 了一個INVERTER.

來一個線路圖:


改firmware ----z probe
雖然可以一齊,但我建議還是把Z-PROBE 和Auto-level 分開做比較好。
做事之前,先看清什麼可以用EEPROM,什麼要RE-COMPILE。這樣會省不少時間。

基本上,照著REPETIER 的文件所講修改configuration.h 把Z-Probe 功能啟動,
http://www.repetier.com/document ... firmware/z-probing/
#define FEATURE_Z_PROBE true

把以下兩個參數設定好
#define Z_PROBE_SWITCHING_DISTANCE 1.5 // Distance to safely switch off probe after it was activated
#define Z_PROBE_REPETITIONS 5 // Repetitions for probing at one point.

其他的東西都可以用EEPROM 完成。(黃色是Z-PROBE的參數,紅色是AUTO-LEVEL 的參數)


做完之後用 G31 做測試,沒有金屬的時候就是" low/off ",有金屬在Z-PROBE 時就是"HIGH/ON"
如果有間題,就把Z_PROBE_ON_HIGH 從0變1。
#define Z_PROBE_ON_HIGH 1

過完這關,就用G30做一次Z-PROBING. 如果沒有設錯的話,噴嘴會向下移5 (Z_PROBE_REPETITIONS) 次,測試完之後會回到起點。
PRINTER 會把當前測量到的高度回傳。
沒問題的話,可以到去一個步驟。

最後一戰----Auto Level
http://www.repetier.com/document ... firmware/z-probing/

AUTO-LEVEL 是利用Z-PROBING 對Print Bed中的三點進行測量。
根據幾何原理,如果那個平面夠平,那利用任何3點就足以計算出平面上所有點的座標。

基本上,選哪三點是根據以下原則:
1. 盡量靠近Print Bed的支撐點。
2. 遠離任何Print Bed以外的磁性金屬 (可以被磁石吸付的,就是磁性金屬 )
3. 小心碰撞

選好之後,用以下G-CODE 做一次AUTO-LEVEL。

G28 X0 Y0  ;move X/Y to min endstops
G32 S0     ;Conduct Auto-leveling Test
G1 F15000  ;
G01 x110 y110 z0;


如果順利,噴頭會移到Head Bad中間,Z軸是0的地點。我部機是Reprap pursa i3,用其他型號的朋友,請自行修改G-Code。

接下來就進行PAPER TEST,如果太高,就增加EEPROM 的Z-PROBE HEIGHT。反之,就減少。

做完晒以上所有的步驟,那就恭喜你。
你已經搞好了AUTO-LEVEL。

享受一下戰勝的感覺和以後不用手動調平的方便吧:
https://youtu.be/JNXrZRbvC0E

本帖最後由 jonahl 於 2015-10-28 23:56 編輯

補充一下:

1. Z-MIN 的END-SWITCH 要如何處理?
在 Repetier Firmware ,Z-MIN 在AUTO-LEVEL 的角色跟"Marlin " 有些不同。
Repetier 會把Z-MIN 視為真正的最低點。 就是說,就算AUTO-LEVEL計出噴頭應移往更低,Z-MIN也會阻止噴頭繼續下降

所以如果用Repetier Firmware ,應把Z 軸的限位較到噴咀有點壓著HEAD-Bad(在安全情形下)

2. Slicer 要不要做變更?
要,要做的是在START.gcode中加入AUTO-LEVEL 的G-CODE
以下例子只供參考:

SLIC3R:
G21        ;metric values
G90        ;absolute positioning
M82        ;set extruder to absolute mode
M107       ;start with the fan off
G28 X0 Y0  ;move X/Y to min endstops
G1 Z10     ;Move the platform  down for Auto-level praparation
G32 S0     ;Conduct Auto-leveling Test
G1 Z15.0 F15000 ;move the platform down 15mm


CURA 14.x
;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line
G21        ;metric values
G90        ;absolute positioning
M82        ;set extruder to absolute mode
M107       ;start with the fan off
G28 X0 Y0  ;move X/Y to min endstops
G1 Z10     ;Move the platform  down for Auto-level praparation
G32 S0     ;Conduct Auto-leveling Test
G1 Z15.0 F15000 ;move the platform down 15mm
G1 X0 Y0 F15000
G92 E0                  ;zero the extruded length
G1 F200 E10              ;extrude 10mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F15000

TOP

其實不须要 relay. 用10k 兩位去做 pull down 就 ok

TOP

不用 g29?

TOP

repetier用G32, 個G29同marlin有d唔同。。

TOP

回覆 4# g2david


    Repetier的G29係比Delta機用

TOP

回覆 6# jonahl


G29.Detailed Z-Probe
G32: Probe Z and calculate Z plane

其實有乜分別, 點解Repetiter 要用G32?

TOP

本帖最後由 vichui 於 2015-10-29 11:49 編輯

回覆 7# g2david
Spec係
G29 - Probes the bed, no transformation matrix.
G32 - Probes the bed , and updates transformation matrix.

但係G32係marlin 用來 Undock Z Probe sled,
而G29係Repetier係只有Delta 可用, XYZ機功用不明....

所以呢個G29同G32的分別只係兩個Firmware 不同的 implementation

TOP