0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ender5Pro+SKR3+OctoPrint+Klipperの基本設定

Last updated at Posted at 2023-03-16

記事一覧

今回の目的

(だいぶ時間が空きましたが)とりあえず印刷可能な状態に持ってきます。

事前準備

前回と重複しますが、以下の準備を済ませておきます。

  • RaspberryPiにOctoprint+Klipperの環境をインストール
  • SKR3のハードウェアに合わせたファームのコンパイル・書き込み
  • ボードのgithubからcfgファイルを入手しprinter.cfgとしてhomeディレクトリに保存します

cfgファイルは公式HPを読んで構築するのがセオリーですが、ピン配置の設定は面倒でミスも起きやすいのでボードの公式から流用したほうが賢明です。

温度関係

まずはベッドとノズルの温度制御ができる必要があります。

温度センサ

大抵の温度センサであればそのまま温度が取得できているはずです。
温度が取得できていれば、Octoprintの画面で室温が計測できます。

ヒータ

Octoprintの画面でノズルやベッドに温度設定を実施すると、温度が上昇するはずです。
(ファームやcfgファイルが正しく、SKR3とskr3が接続できていれば。)

PIDチューニング

いくつかやり方があるようですが、klipperにPIDチューニングコマンドを使いました。実行すると目標温度が何回か変化します。
スクリーンショット 2023-03-17 014813.png
チューニングが終わると、このようにゲインを教えてくれるのでprinter.cfgに反映します。
スクリーンショット 2023-03-17 014739.png

各軸設定

温度が正しく制御でき、各軸が正しく動けば印刷できるはずです。
設定には公式ドキュメントが役に立ちました。

エンドスイッチ

まず、エンドスイッチが押されるよう、(電源OFFの状態で)手で動かします。
この状態でシステムを起動し、OctoprintのTerminalに「QUERY_ENDSTOPS」と入れてEnterを押すと、各エンドスイッチの状態が"TRIGGERED"と帰ってくるはずです。
また、各スイッチが押されていない状態にして再度コマンドを送ると"open"が帰ってきます。
もし想定どおりでない場合は、ケーブルの接続が間違っているか、論理が間違っています。論理が間違っている場合、以下の通りに設定を変えると正しく読めるようになるはずです。
(cfgファイルの基本的な設定はピン設定に!をつけたり着けなかったりするのがほとんどです)

printer.cfg
# 正論理。エンドストップが押されるとHiの電圧。
endstop_pin: PC0

# 負論理。エンドストップが押されるとLoの電圧。
# endstop_pin: !PC0

# 負論理かつマイコン内プルアップ有効。エンドストップが押されるとLoの電圧。
# endstop_pin: ^!PC0

モータ

基本設定

使用するモータ・ドライバに合わせてコメントアウトします。今回はTMC2209を使用します。
この設定を行い、Terminalに以下のコマンドを打ち込むと、何かしらモータが動きます。

STEPPER_BUZZ STEPPER=stepper_x
STEPPER_BUZZ STEPPER=stepper_y
STEPPER_BUZZ STEPPER=stepper_z

また、M84を打ち込むと、モータがフリーになるはずです。
この辺が正しく動かない場合は、enable_pinの設定を見直します。

printer.cfg
#### Y軸の例 ####
[stepper_y]
step_pin: PA15
dir_pin: PA8
enable_pin: !PD1

距離・方向の設定

各軸の方向とエンドスイッチの位置関係を整理します。
XYZ.png

座標系の設定

図の考えに従いエンドスイッチの位置を設定します。

printer.cfg
[stepper_x]
# 3DプリンタのX軸最大可動位置220mmにエンドスイッチがある
position_endstop: 220
position_max: 220

[stepper_y]
# 3DプリンタのY軸最大可動位置220mmにエンドスイッチがある
position_endstop: 220
position_max: 220

[stepper_z]
endstop_pin: PC0
# 3DプリンタのZ軸最大可動範囲300mm。0.5mmにエンドスイッチがある
position_endstop: 0.5
position_max: 300

回転方向の設定

ヘッドやベッドをエンドスイッチ近くに動かしてOctoprintでHommingを指示します。
各モータの向きが合っていて、エンドスイッチの設定が正しければとりあえずHommingできるはずです。逆に動いてしまった場合はdir_pinの論理を反転させます。

各軸の移動距離設定

コメントによくあるMarlin Firmwareからの設定値変換例があります。80[step/mm]の場合、rotation_distanceは40となるようです(microstep = 16)。
これはあくまでも理論値ですので、最終的にはマジックで印を着けて確認します。
Extruderはノズルの温度を上昇させないと動かせないため、温めてから動かします。
(こちらはなぜか計算通りに行かなかったので、何度か調整します)

最終的な設定

とりあえずこの設定で印刷できました。

printer.cfg
####中略###
[stepper_x]
step_pin: PD4
dir_pin: PD3
enable_pin: !PD6
rotation_distance: 40
microsteps: 16
endstop_pin: PC1
# 3DプリンタのX軸最大可動位置220mmにエンドスイッチがある
position_endstop: 220
position_max: 220
homing_speed: 50

[tmc2209 stepper_x]
uart_pin: PD5
run_current: 1.200
hold_current: 0.950
stealthchop_threshold: 500
diag_pin: PC1

[stepper_y]
step_pin: PA15
dir_pin: PA8
enable_pin: !PD1
microsteps: 16
rotation_distance: 40
endstop_pin: PC3
# 3DプリンタのY軸最大可動位置220mmにエンドスイッチがある
position_endstop: 220
position_max: 220
homing_speed: 50
[tmc2209 stepper_y]
uart_pin: PD0
#run_current: 0.800
run_current: 1.200
hold_current: 0.950
stealthchop_threshold: 500
diag_pin: PC3

[stepper_z]
step_pin: PE2
dir_pin: !PE3
enable_pin: !PE0
microsteps: 16
rotation_distance: 4
endstop_pin: PC0
# 3DプリンタのZ軸最大可動範囲300mm。0.5mmにエンドスイッチがある
position_endstop: 0.5
position_max: 300
[tmc2209 stepper_z]
uart_pin: PE1
#run_current: 0.800
run_current: 1.200
hold_current: 0.950
stealthchop_threshold: 500
diag_pin: PC0

[extruder]
step_pin: PD15
dir_pin: PD14
enable_pin: !PC7
microsteps: 16
rotation_distance: 30.613
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB3
#heater_pin: PB4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA2
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250

[tmc2209 extruder]
uart_pin: PC6
# モータが熱々なので多分過剰
run_current: 1.200
hold_current: 0.650
stealthchop_threshold: 500
diag_pin: PC2_C
####後略###

感想と今後

Marlinと違い、設定変更するたびにコンパイル・書き込みが不要なので結構楽ですね。設定ファイルも散り散りになっていないので見通しが付きやすい点も嬉しいです。
ただ、Marlinに比べてマイナーな感じが否めず、情報が少なめな点がデメリットです。
今後は、細かい設定を煮詰めつつ、BLtouchやfilamentセンサを使えるようにします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?