作者: jonahl 時間: 2015-10-28 23:06 標題: 如何征服超麻煩的組合---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:53
本帖最後由 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
作者: g2david 時間: 2015-10-29 00:24
其實不须要 relay. 用10k 兩位去做 pull down 就 ok
作者: g2david 時間: 2015-10-29 00:27
不用 g29?
作者: vichui 時間: 2015-10-29 01:09
repetier用G32, 個G29同marlin有d唔同。。
作者: jonahl 時間: 2015-10-29 08:45
回覆 4# g2david
Repetier的G29係比Delta機用
作者: g2david 時間: 2015-10-29 11:16
回覆 6# jonahl
G29.Detailed Z-Probe
G32: Probe Z and calculate Z plane
其實有乜分別, 點解Repetiter 要用G32?
作者: vichui 時間: 2015-10-29 11:46
本帖最後由 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
