Open16

3Dプリンターの調整方法をまとめたい

KaGoMeKaGoMe

3Dプリンターを始めたものの調整方法が結構まとまっていなかったりする。
一目でわかるように3Dプリンターの調整方法をフローチャートかマップにまとめたい。

最終的にはXYZCubeと3DBenchyを印刷するところからスタートして、
「この現象ならここを修正、そのときこのモデル(スクリプト)を印刷して値を決めよう」
という内容がまとまっているチャートを作りたい。

完成できるかどうかは分からないが、勉強になるのでよし。
Kp3s, Prusa Slicer, Klipper, Mainsailの利用を基準とする。

KaGoMeKaGoMe

ADXL345を使った共振周波数の測定

ミニPCでKlipperを使う予定なので加速度センサーを使うには、
SPI to USB Serial変換してくれるPi Pico準備すればできるかなーとか考えていたけど、
まさにその方法がKlipper公式ドキュメントに詳しく記載してあった。
Measuring Resonances

KaGoMeKaGoMe

input shaperの手動設定

共振周波数を測定しなくてもマニュアルで設定する方法が下記に記載されている。
Klipper: Input Shaping – Simply Explained(ALL3DP)

サンプルモデルを印刷して、ゴースティングが起きた距離をノギスで測定し、
その距離の中で何回ゴースティングが起きているかカウントする。
よく考えれば当然で周波数は単位時間当たりの波の数のことなので、
波の数をcとすると単位はc/s、つまり下記の式で計算できる。
プリント速度[mm/s] × 波の数[c] ÷ 測定した距離[mm] = 周波数[c/s]

KaGoMeKaGoMe

フィラメント送り出し量、XYZStep

All3DPに大体記載されている。
モデルはXYZCubeでOKだが、校正にはKP3SとUSB接続が必要。
Slicerソフトが入っているPCをUSB接続するか、Octoprintが入ったPCを接続してWeb越しにコードを送る。

M503
M92 X###.## Y###.## Z###.## E###.##
M500

ちなみにOctoprintは印刷しだすと通信ロスでエラーになった。
色々な原因があるが、ファームウェアはMarlin2.x系に変えた方が良いらしい。

KaGoMeKaGoMe

ノズル温度

Temperature TowerモデルにPrusa SlicerでカスタムG-codeを使用する方法の解説

Smart compact temperature calibration tower
上記Youtubeの動画で利用しているモデル。ここにも利用方法が書いてあるので、こちらを参照してもOK。
積層ピッチは0.2mm

そのまま利用すると3h以上印刷時間がかかるので、
必要数分だけstlファイルを自分で3DCADで重ねて印刷すると良い。

基本的にSlicerで温度を変えたいレイヤーを表示し、"Add Cutome g-Code"から'M104 S###'を追加するだけ。

KaGoMeKaGoMe

リトラクション関連

条件を入れるとカスタムでG-CODEを作ってくれるWebサイトもあるが、普段使っているSlicerの条件をできるだけそのまま入れたいので、下記の簡単なモデルをダウンロードして、G-CODEを出力した後、テキストエディタの置換機能を使いながらカスタムG-CODEを追加した。
Stringing test
もう少し楽な方法を確立したい。

正直、いまいち結果の善し悪しが分からなかったため、とりあえず元の設定を使っている。

KaGoMeKaGoMe

KlipperのPressure Advance

下記のマクロが大体そのまま使えて便利
https://note.com/eitoku_note/n/n78f0d240940a?magazine_key=mfac1329e1dff

ただし、プリント開始/終了マクロが必要で、"PRINT_START","PRINT_END"という名前のマクロが必要。
Klipperの開始/終了マクロのサンプルは"START_PRINT","END_PRINT"なので、そちらに合わせた。
https://github.com/Klipper3d/klipper/blob/master/config/sample-macros.cfg

KaGoMeKaGoMe

KilipperのSlicerではなくRetraction設定を有効にする

下記動画でSlicerとFirmwareによるRetractionの違いと、FWでの設定方法が解説されている。
https://www.youtube.com/watch?v=T4N59u4wm-Y

最適値はマクロで調整用のモデルを出力して確認する。
出来ればRetraction lengthとspeedともに変えたマクロが良いのだが・・・。
https://www.printables.com/model/236366-klipper-stringing-test-with-firmware-retraction

KaGoMeKaGoMe

Klipperで共振周波数を測定する

加速度センサー'ADXL345'とRaspberry pi pico・・・ではなくRP2040-zeroを使う

RP2040-zeroへのつなぎ方と設定方法
https://travis90x.altervista.org/klipper-adxl345-raspberry-pi-rp2040-zero/?doing_wp_cron=1693667469.4764280319213867187500

測定方法の紹介ブログ
http://hitoriblog.com/kingroon_kp3s/docs/tuning_klipper_using_an_accelerometer/

Klipper公式ドキュメント
https://www.klipper3d.org/Measuring_Resonances.html

KaGoMeKaGoMe

BL Touch for klipper

Kingroon社製のBL Touchを使用した。
config設定してからの動作確認は公式ドキュメントを参照した。
https://www.klipper3d.org/BLTouch.html

ただし、"Initial tests"に記載されてある方法は使えなかった。
BL Touchを反応させた状態で"QUERY_PROBE"コマンドを送信しても"probe: TRIGGERED"にはならない。
printer.cfgの[bltouch]の"probe_with_touch_mode"を'False 'に指定した状態で、"PROBE"コマンドを送信すれば問題なく動作することが分かった。
BL-Touch v3はTrueに設定するらしい。
keepang storeで購入するとき違いが分からずv2とv3の両方を購入してしまったが、今になって違いが出てくるとは・・・。でも実際に送られてきたのは同じシリアル番号付いたものだったけどな・・・。

z_offsetは下記の方法で調整する。理想は1mmとのこと。
https://www.klipper3d.org/Probe_Calibrate.html

Z軸の稼働範囲を~-5までに設定しておかないと調整したい値には"out of range"になると思う。