モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

Ender3 Neoにラズパイを接続し、Mainsail OSを導入してみた(その3・ レベリング編)

さてレベリングです。 3Dプリンタ単体で使っていた手順と似ていますが、Klipperではスクリューでの手動調整が遥かに便利になっています。

  1. プローブのZオフセット*1を導出・保存 (マクロ:PROBE_CALIBRATE)
  2. スクリューを回して可能な限り平坦に調整(マクロ:SCREW_TILT_ADJUST)
  3. プローブでベッドの局所的な歪みを調べ、高低マップ*2を作成・保存

ここでの手順は全てwebサーバのインターフェースで行います。

プローブのZオフセットを導出する

まずは、ホームボタンでホーム位置に戻す必要があります。

そしてweb制御画面のコンソール*3からPROBE_CALIBRATEを実行すると、ホーム位置に戻ってbl touchセンサーが反応したあたりで止まります。そして、ダイアログが出て入力待ちとなります。

ここで何をするのかと言うと、コピー紙を差し込んでの初期ノズル高さの調整です。3Dプリンタの調整ではおなじみのやつです。 コピー紙がカスカスに触れるまでノズルを下げて「確認」ボタンで設定を保存です

スクリューを回して可能な限り平坦に調整

注: これとハイトマップ作成は、ベッドをプリント温度(60度程度?)に温めてから行ったほうが、実際の印刷状況に近づいて良いです。

次はスクリューを回して可能な限り平坦に調整します。これを、今までは目視のカンでやっていましたが、Mainsailではプローブの値から計算して、各スクリューをどれだけ回せば良いかを時計の分で教えてくれます。なお、左手前のスクリューは基準スクリューとなるため、このスクリューに対する調整指示は出ません。 ので、予め平均的な位置に調整しておくのが良いかと思います。

さてこれを行うにはコンソールで「SCREW_TILT_ADJUST」を実行します。するとダイアログが現れ、前述のprinter.cfgで設定されたネジ位置(もしくは、ネジに近い適切に設定された場所)における高さをそれぞれ測って、回転すべき方向と量を計算して表示してくれます。回転量は時計の分です。

ここでスクリューを回すコツとしては…例えば「右に6分」回すとすれば、スクリューに向かって正面を0分と考え、右に6分回転=「逆に、向かって左側に6分のあたりに指を付け、真正面の0分に来るまで回す」という方法が、自分的にはわかりやすいと感じました。

指示に合わせて大体回したら、再度計測してもらいます。というのも調整する事自体により、傾きに偏りが出来ている可能性があるからです。そして調整したら再度計測。これを繰り返します。目安としては、全てのネジの回転量が5分位内に収まっていれば良いらしいのですが、私は2分以下まで追い込んでいます…

だいたい良くなったらOKでダイアログを抜け、設定を保存してklipperを再起動します。

高低マップの作成

次はコンソールではなく左のタブで高低マップ画面に切り替えます。そして、「校正」を押して、高低マップの測定=作成を開始します。 なお、この画面状態は既に高低マップが作成され、そして読み込み済みのときの状態です。読み込まれていないときは、ポリゴンの高低マップは表示されていません。

これはおまかせでよいので、楽です。適切にスクリュー調整が成されていれば、異様に傾いていたりはしないはずですし、ベッドの歪みに対しては、なすすべがありません。

高低差のmin/maxが0.1に収まっていれば良好なベッドと言えると思います。名称「default」でセーブしましょう。(初期名が既にdefaultのはずですが)

しかしながら、この設定を印刷前に適用しなければなりません。毎回起動するたびに高低マップ画面を開いてdefault高低マップをロードする…というのも、面倒くさいです。自動化したい。

検索によって知られる情報では、 defaultという名前の高低マップは起動時に自動的に読み込まれる …というのですが、どうも怪しいのですねぇ。というのも、起動するとこのポリゴンが表示されていないのですよ。しかし、後述するマクロ&スライサーソフト設定での自動適用を使用した時には、上に掲載したスクショのようにポリゴンが表示されている、というですね…*4

ですから、次回説明するスライサーソフトとの協調で開始時マクロ・終了時マクロを実装するときに、ついでにこの高低マップを読み込む処理をつけることになります。

次回予告

以上でレベリングは完了し、ようやく印刷が可能な状況になりました。しかし、私の環境ではこれだけでは最低限印刷が出来るだけで、純正ファームウェアとは違う挙動が若干不満でした。

例えば、印刷開始時にノズルとベッドの加熱が別々であるために余計な時間がかかる…とか、印刷終了時にベッドを前に出してくれないので、自分で出す必要があるなどです。これらは純正ファームでは出来ていたことですので、なんとかしたい。

次回は基本的なマクロ設定による定番の使いこなしを紹介して、それらの不満を解決して完全に純正ファームの上位互換の環境を目指します。

ではでは!

*1:bl touchセンサーの先とノズル先の高低差

*2:高低マップというのはベッドの微妙な高低差をメッシュ状に記録したマップで、プリント品質を上げるためのものだそうです

*3:なお、コンソールではTABキーで補完が効きますので、便利です。

*4:まぁそれ以前に、今ひとつ高低マップの効果が薄いようにも思うのですが😅