2018年9月29日土曜日

3Dプリンタ その15(Touch Sensor調整と再現性テスト)

前回、その14で、Firmwareを
「Marlin 1.1.4 With 3DTouch / BLTouch for i3 Pro B」にUpdateしました。

それをダウンロードしたサイトには、
3D Touch Sensor(BL Touch)のコアの調整方法が書いてあるのです。
*****
Procedure to do this (probe in up position, turn your screwdriver very gently):
- unscrew the top screw until probe flash alarm.
- Reset alarm (G-Code : M280 P0 S160)
- Screw until the light pops on (this is your near best starting point to fine tune next)
- Launch M48 repeatability test procedure
- fine tune the screw until Z bed position is the most near 0 and your derivation <= 0.01mm (less is better)

*****
***やってみた後のマーティーの解釈***
1.ピンが上がった状態か確認。
  通常は、電源ONのセルフテストの後、上がった状態。
2.上部のコアをプローブがチカチカ点滅するまで反時計回りに緩める。
3.Repetier-Hostから「M280 P0 S160」コマンドでLED消灯。
4.LEDが点灯するまでコアを時計回りに締める。

  可能な限りゆっくり回して点灯するポイント(約360°前後)にする。
5.「Marlin3DprinterTool」を使ってM48 (Touch Sensorの再現性テスト)
  Derivation(標準偏差)が、できるだけ小さくなるまで
  コアを微調整(0.01mm以下だといいのだが...)
6.No.4操作から180°程度、時計回りに回した方がよさそう。
  (No.6は、マーティーがやってみての感触)
*****

で、このスクリーンショットが気になるので調べると、
「Marlin3DprinterToolVersion: 」というToolのようです。
実は、これでM48(Touch Sensorの再現性テスト)ができるのです。
ソフトを探すと、公式サイトは、ここです。
一応、ここにもあったのですが、Installerがなく、使い方がわかりません。
Installerは、GitHubのここにあるのを使いました。
執筆中のバージョンは、「v0.25-beta」でした。
「Marlin3DprinterTool.msi」をクリックして
ダウンロードします。
ダウンロードした「Marlin3DprinterTool.msi」で右クリックして
インストールします。
ここの時間がちょっと長かったと思います。
進んでいって~
完了です。
「Marlin3DprinterTool」の起動画面が出ます。
ほどなくして、これがでるので、[Yes]します。
ちなみに[Download Link To Clipboard]はErrorがでました。
また、このInstall画面から始まります。
最初と異なるのは、この画面だけ
そのまま[Next]
Installが完了して、起動しました。
バージョンは、これになりました。
これらのアイコンが追加されています。
起動画面の左上のPortを選択して[Connect]します。
先にI3 Pro BをUSBで接続していないとPortの選択ができません。
これがでるので[OK]すると
RESETがかかり、この画面に変わります。
[Z Probe offset]タブにすると、この画面がでてきます。
最初のスクリーンショットとほぼ同じものです。
[Measure Z-Probe repeatability (M48)]ボタンを押すと
Homingが行われた後
Home位置で、Zレベルが4回測定され、下の欄に結果がでます。
ログの全内容はこれです。
Mean(平均)、Min、Max、Range(Max-Min)と
Standard Deviation( 標準偏差 σ)が表示されます。
*****
M48 Z-Probe Repeatability Test
Positioning the probe...
Bed X: 100.000 Y: 96.000 Z: 0.010
1 of 4: z: 0.030 mean: 0.0300 sigma: 0.000000 min: 0.030 max: 0.030 range: 0.000
2 of 4: z: -0.030 mean: -0.0000 sigma: 0.030000 min: -0.030 max: 0.030 range: 0.060
3 of 4: z: -0.030 mean: -0.0100 sigma: 0.028284 min: -0.030 max: 0.030 range: 0.060
4 of 4: z: 0.002 mean: -0.0069 sigma: 0.025086 min: -0.030 max: 0.030 range: 0.060
Finished!
Mean: -0.006875 Min: -0.030 Max: 0.030 Range: 0.060
Standard Deviation: 0.025086
*****

スライドバーで[Parform 10 tests]にすると
10回やってくれます。
ログの全内容は、こんな感じです。
標準偏差σ:0.022194
3σ=0.066582(確率 95%) となるので、
巾 0.07mmのZレベルバラツキ誤差があるということになります。
Touch Sensorの反応バラツキだけではないと思いますが。
*****
M48 Z-Probe Repeatability Test
Positioning the probe...
Bed X: 100.000 Y: 96.000 Z: 0.063(このZの意味だけ不明)
1 of 10: z: 0.030 mean: 0.0300 sigma: 0.000000 min: 0.030 max: 0.030 range: 0.000
2 of 10: z: -0.007 mean: 0.0112 sigma: 0.018750 min: -0.007 max: 0.030 range: 0.037
3 of 10: z: -0.022 mean: 0.0000 sigma: 0.022079 min: -0.022 max: 0.030 range: 0.052
4 of 10: z: -0.007 mean: -0.0019 sigma: 0.019395 min: -0.022 max: 0.030 range: 0.052
5 of 10: z: 0.000 mean: -0.0015 sigma: 0.017364 min: -0.022 max: 0.030 range: 0.052
6 of 10: z: -0.010 mean: -0.0029 sigma: 0.016164 min: -0.022 max: 0.030 range: 0.052
7 of 10: z: -0.033 mean: -0.0071 sigma: 0.018197 min: -0.033 max: 0.030 range: 0.063
8 of 10: z: -0.015 mean: -0.0081 sigma: 0.017219 min: -0.033 max: 0.030 range: 0.063
9 of 10: z: 0.043 mean: -0.0025 sigma: 0.022730 min: -0.033 max: 0.043 range: 0.075
10 of 10: z: -0.020 mean: -0.0042 sigma: 0.022194 min: -0.033 max: 0.043 range: 0.075
Finished!
Mean: -0.004250 Min: -0.033 Max: 0.043 Range: 0.075
Standard Deviation: 0.022194
*****

GeeetechサイトのここのVer.1.1.4を編集したOlimatou氏は、
2時間かけて追い込んだということなので
マーティーも地道にやりました! 以下は、その長~い記録です。
結論的には、
・50回平均しないと測定バラツキが大きい(それでもバラつく)
・冒頭の調整方法からコアを時計回りに1回転辺りがよさそう
・時計方向に回しすぎると悪化する様子
がマーティーの感触です。

それでは、3D Touch Sensorのコアを回して変化をみていきます。
まずは、180°時計方向に回します。
そう変わりありませんね~
*****
1 of 4: z: 0.045 mean: 0.0450 sigma: 0.000000 min: 0.045 max: 0.045 range: 0.000
~~
4 of 4: z: 0.007 mean: 0.0125 sigma: 0.023251 min: -0.020 max: 0.045 range: 0.065
Mean: 0.012500 Min: -0.020 Max: 0.045 Range: 0.065
Standard Deviation: 0.023251
*****

最初の状態から180°反時計方向に回してみます。
ん!良くなっているような?
*****
1 of 4: z: -0.040 mean: -0.0400 sigma: 0.000000 min: -0.040 max: -0.040 range: 0.000
~~
4 of 4: z: -0.017 mean: -0.0169 sigma: 0.016805 min: -0.040 max: 0.007 range: 0.048
Mean: -0.016875 Min: -0.040 Max: 0.007 Range: 0.048
Standard Deviation: 0.016805
*****

もう一回やってみると、悪くなりました!
*****
1 of 4 ~~ 4 of 4
Mean: -0.089375 Min: -0.145 Max: -0.045 Range: 0.100
Standard Deviation: 0.037599
*****

そこから90°時計方向に回します。
つまり最初から90°反時計方向に回したことになります。
*****
1 of 4 ~~ 4 of 4
Mean: 0.015000 Min: 0.002 Max: 0.035 Range: 0.032
Standard Deviation: 0.012374
*****

同じ条件で、10 testsでやり直すと
やっぱしこんなもんかあ~
*****
1 of 10 ~~~~~~~~ 10 of 10
Mean: 0.016500 Min: -0.017 Max: 0.055 Range: 0.072
Standard Deviation: 0.025500
*****

そこから45°時計方向に回します。
つまり最初から45°反時計方向に回したポイント。
*****
1 of 4 ~~ 4 of 4
Mean: 0.029375 Min: 0.010 Max: 0.060 Range: 0.050
Standard Deviation: 0.018740
*****

これも、もう一回、10 testsで!
良くなってきているのかな?
*****
1 of 10 ~~~~~~~~ 10 of 10
Mean: -0.051250 Min: -0.075 Max: -0.035 Range: 0.040
Standard Deviation: 0.014241
*****

もう一回、10 tests!
やっぱしこんなもんかな...(T_T)
10回位じゃ再現性良くないようです。
*****
1 of 10 ~~~~~~~~ 10 of 10
Mean: -0.013000 Min: -0.058 Max: 0.032 Range: 0.090
Standard Deviation: 0.029343
*****

ならばスライドバーをmaxの50回で!
やっぱこんなもんですね~
どうやら50回やらないと判定難しいです。
*****
1 of 50 ・・・・ 50 of 50
Mean: -0.052850 Min: -0.090 Max: 0.007 Range: 0.097
Standard Deviation: 0.023016
*****

そこから更に45°時計方向に回します。
つまり最初の位置。
やはり、この辺が限界のようです。
*****
1 of 50 ・・・・ 50 of 50
Mean: -0.040050 Min: -0.077 Max: 0.007 Range: 0.085
Standard Deviation: 0.023577
*****

一気に360°時計方向に回してみます。
最初から1回転、時計方向に回した所。
*****
1 of 50 ・・・・ 50 of 50
Mean: -0.044950 Min: -0.082 Max: 0.025 Range: 0.107
Standard Deviation: 0.021080
*****

更に360°時計方向に回します。
最初から2回転、時計方向に回したことになります。
これは、増えたと見ていいでしょう~
*****
1 of 50 ・・・・ 50 of 50
Mean: -0.097550 Min: -0.150 Max: -0.033 Range: 0.117
Standard Deviation: 0.031621
*****

更に180°反時計方向に回します。
最初から1.5回転、時計方向に回した所。
更にでかくなったようです。
*****
1 of 50 ・・・・ 50 of 50
Mean: 0.035000 Min: -0.103 Max: 0.145 Range: 0.248
Standard Deviation: 0.043534
*****

更に180°反時計方向に回します。
最初から1回転、時計方向に回した所。
今日は、この辺で終わりにしておきます。
*****
1 of 50 ・・・・ 50 of 50
Mean: 0.028550 Min: 0.000 Max: 0.077 Range: 0.077
Standard Deviation: 0.018655
*****

次の日、同じ条件で50回、電源入れて直ぐに測定しました。
ん~ん、再現性悪いですね~
ソレノイド方式なのであまり期待してはいけないのかな?
自己発熱や室温でも変わるのでしょう?
*****
1 of 50 ・・・・ 50 of 50
Mean: -0.019700 Min: -0.063 Max: 0.043 Range: 0.105
Standard Deviation: 0.025839
*****

で、冒頭の調整をやり直して
(No.6の180°時計方向に回す追加はしていません)
50回やると、ん~ん、こんなにバラつくのか~
*****
1 of 50 ・・・・ 50 of 50
Mean: 0.040250 Min: -0.007 Max: 0.110 Range: 0.118
Standard Deviation: 0.032071
*****

ちょっと脇道へ、M48コマンドを調べてみると
ここに解説とコマンド例がありました。

Repetier-Host V.1.6.0からコマンドでやってみます。
最初に「G28」でHomingしないと「M48」コマンド受付けません。
で、「M48 P4 X100 Y100 V2 E L2」します。
「1回毎に前後左右に10mm程移動して戻る」動作が加わっています。
結果は、これまでの約1/2に???
再度やってみますが、同じ位なのです。
*****
X:104.00 Y:139.00 Z:10.70 E:0.00 Count X:8320 Y:11120 Z:4280
M48 Z-Probe Repeatability Test
1 of 4: z: -0.017
2 of 4: z: -0.048
3 of 4: z: -0.033
4 of 4: z: -0.035
Finished!
Mean: -0.033125 Min: -0.048 Max: -0.017 Range: 0.030
Standard Deviation: 0.010662
*****

10回でやってみます。
「M48 P10 X100 Y100 V2 E L2」
所が、timeout errorが3回も!
*****
M48 Z-Probe Repeatability Test
1 of 10 ~~ 4 of 10
Communication timeout - reset send buffer block
5 of 10 ~~~ 9 of 10
Communication timeout - reset send buffer block
10 of 10: z: -0.048
Finished!
Mean: -0.015750 Min: -0.048 Max: 0.027 Range: 0.075
Standard Deviation: 0.024800
X:104.00 Y:143.00 Z:10.70 E:0.00 Count X:8320 Y:11440 Z:4280
Error:Line Number is not Last Line Number+1, Last Line: 233
Resend: 234
*****

Repetier-Host V.1.6.0で再度10ポイント
今度は、Errorはでず、Marlin3DprinterToolと同等の結果になりました。
*****
Mean: 0.011750 Min: -0.022 Max: 0.043 Range: 0.065
Standard Deviation: 0.022529
X:104.00 Y:143.00 Z:10.70 E:0.00 Count X:8320 Y:11440 Z:4280
*****

Marlin3DprinterToolでまた50回やっていたら
3D Touch Sensorが反応しなくなり、ガラス板に少しのめり込みました(T_T)
たぶん、冒頭の調整方法でLED点灯のポイントでは、いけないようです。
コアを180°時計回りに回します。
(冒頭の調整のNo.6の180°時計方向に回す追加のこと)
Repetier-Host V.1.6.0で再度10ポイント
この辺で諦めます(-_-;)
*****
Mean: 0.064600 Min: 0.017 Max: 0.145 Range: 0.127
Standard Deviation: 0.027154
*****

このOlimatouって方、
2時間かけて、Standard Deviation:0.005669まで追い込んでいるんです。
3D Touch Sensorの写真も載っていて、
マーティーのと同じものに見えますが、違うのかな~?
でサイトの下の方を見ていくと
*****
#define DEFAULT_AXIS_STEPS_PER_UNIT { 81.5, 81.5, 2577.46, 94 }
*****Z軸:2577.46 です。
これは、Z軸のリードスクリューがM8ネジのバージョンですね~
わずかに写っている左側のZ軸カプラー部を拡大すると、Mネジです!
M8ネジのピッチ=リードは、1.25mmです。
マーティーのは、T8リードスクリューで
ピッチ2mmの4条ネジなのでリード8mmのなのです。
たぶん、これが要因ではないかと思われます。
早いとこリード2mmに変えた方が色々と良さそうです。
ちなみに、「Marlin3DprinterTool」は、
この辺のボタンでZ Offset調整もできるのですが、別の機会にします。

2 件のコメント:

匿名 さんのコメント...

お疲れ様です。当方は中華部品での自作Anet A8コピーです。BL-Touchもコピー品です。ベッドレベリングで苦労して、たどり着きました。とても記事のように追い詰められないで苦心しています。

マーティーの工房日誌 さんのコメント...

見ていただきありがとうございます。
ベッドレベリングは疲れますよね~
BL-Touchは気まぐれなので日々調子が変わるし
その後の「その36」でIR方式レベルセンサーにして
一時は快適だったのですが、上の方で止まるようになり(T_T)
今では、もう諦めて
最初のシーソースイッチに戻ってます^^;