KP3SでMIXホットエンドを使ってフィラメントを混ぜてみました(klipper設定編)

前回↓の続きです。

KP3Sにklipperを導入して通常印刷できるように設定し、
その後、MIXホットエンドを使用する設定を行いました。

klipperの導入についてはこちらのmoyashiさんの記事を参考にしました。
http://hitoriblog.com/kingroon_kp3s/docs/improving_speed_and_quality_by_using_klipper/

また、マクロの設定についてはこちらのちゃたろうさんの記事を参考にしました。
https://note.com/tyatarou3/n/na91611dbe3e8

この場をお借りして感謝申し上げます。
ありがとうございます!

以下より、MIXエクストルーダーで行った設定になります。

エクストルーダー設定

sailfinエクストルーダーはsherpa mini用の設定を使用しました。

https://github.com/Annex-Engineering/Sherpa_Mini-Extruder/blob/master/Klipper_Config_Block.txt


設定はマクロ部分を含め、こちらを参考にしています。
https://klipper.discourse.group/t/x-in-1-out-non-mixing-extruder-config/2387

「extruder」が1番目、
「my_extra_stepper」が2番目のモーターとしました。

[extruder]
step_pin: PD6
dir_pin: PD3
enable_pin: !PB3
rotation_distance: 22.67895
gear_ratio: 50:10
microsteps: 32
full_steps_per_rotation: 200 #1 .8deg Motor
max_extrude_only_distance: 1400.0
max_extrude_only_velocity: 75.0
max_extrude_only_accel: 1500
max_Extrude_cross_section: 50.0
nozzle_diameter: 0.400
filament_diameter: 1.750
instantaneous_corner_velocity: 1.50
heater_pin: PC3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC1
min_temp: 0
max_temp: 260
pressure_advance: 0.09


[extruder_stepper my_extra_stepper]
extruder:
step_pin: PA6
dir_pin: !PA1 #左右対称なので逆回転 
enable_pin: !PA3
rotation_distance: 22.67895
gear_ratio: 50:10
microsteps: 32
full_steps_per_rotation: 200 #1 .8deg Motor



切り替えマクロ

エクストルーダーの切り替えをマクロで行っています。
以下のように設定しました
T0 = 1番目のエクストル―ダー
T1 = 2番目のエクストル―ダー
T2 = T0とT1を半分ずつ混ぜたもの

[gcode_macro T0]
gcode:
    SYNC_EXTRUDER_MOTION EXTRUDER=my_extra_stepper MOTION_QUEUE=
    SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
    SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=extruder DISTANCE=22.67895

[gcode_macro T1]
gcode:
    SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=
    SYNC_EXTRUDER_MOTION EXTRUDER=my_extra_stepper MOTION_QUEUE=extruder
    SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=my_extra_stepper DISTANCE=22.67895

[gcode_macro T2]
gcode:
    SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
    SYNC_EXTRUDER_MOTION EXTRUDER=my_extra_stepper MOTION_QUEUE=extruder
    SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=extruder DISTANCE=45.3579
    SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=my_extra_stepper DISTANCE=45.3579

[gcode_macro ACTIVATE_EXTRUDER]
description: Replaces built-in macro for a X-in, 1-out extruder configuration SuperSlicer fix
rename_existing: ACTIVATE_EXTRUDER_BASE
gcode:
    {% if 'EXTRUDER' in params %}
      {% set ext = params.EXTRUDER|default(EXTRUDER) %}
      {% if ext == "extruder"%}
        {action_respond_info("Switching to extruder.")}
        T0
      {% elif ext == "my_extra_stepper" %}
        {action_respond_info("Switching to my_extra_stepper.")}
        T1
      {% elif ext == "mix_extruder" %}
        {action_respond_info("Switching to mix_extruder.")}
        T2
      {% else %}
        {action_respond_info("EXTRUDER value being passed.")}
        ACTIVATE_EXTRUDER_BASE EXTRUDER={ext}
      {% endif %}
    {% endif %}

[delayed_gcode activate_default_extruder]
initial_duration: 1
gcode:
    ACTIVATE_EXTRUDER EXTRUDER=extruder



グラデーション印刷用マクロ

こちらはrotation_distanceの値を
22.648795が最大値、1/2の45.29759が半分、1/4の90.7156が最小値として、
T0からT1へ1レイヤー毎に混合する比率を変えていく式を記述しています。
(ただ、もっときれいなグラデーションが出せる計算式がありそうな気がするので、良い式があればぜひ教えてください…)

LAYER_NUM = 現在のレイヤー番号
LAYER_MAX = 最大レイヤー数
extdis = 1番目モーター(T0)のrotation_distanceの値
twodis = 2番目モーター(T1)のrotation_distanceの値

[gcode_macro VARPLUS]
gcode:
 {% set LAYER_NUM = params.LAYER_NUM|default(0)|float %}
 {% set LAYER_MAX = params.LAYER_MAX|default(0)|float %}
 #M118  "{LAYER_NUM}/{LAYER_MAX}" #デバッグ用 

 {% set LAYER_HAN = LAYER_MAX / 2|default(0)|float %}
      {% if LAYER_NUM < LAYER_HAN %}
        {% set extdis = 22.648795 + ((22.648795/(LAYER_HAN+0.75))*LAYER_NUM) %}
        {% set twodis = 90.59518 - (45.29759/(LAYER_HAN+0.75))*(LAYER_NUM) %}
      {% elif LAYER_NUM >= LAYER_HAN %}
        {% set extdis = 45.29759 + ((45.29759/(LAYER_HAN+0.75))*(LAYER_NUM-LAYER_HAN)) %}
        {% set twodis = 45.29759 - (22.648795/(LAYER_HAN+0.75))*(LAYER_NUM-LAYER_HAN) %}
      {% else %}
        {% set extdis = 45.29759 %}
        {% set twodis = 45.29759 %}
      {% endif %}
 #M118  "{extdis}"
 #M118  "{twodis}"

 SYNC_EXTRUDER_MOTION EXTRUDER=my_extra_stepper MOTION_QUEUE=extruder
 SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=extruder DISTANCE={extdis}
 SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=my_extra_stepper DISTANCE={twodis}



BLTouchやオートレベリングの設定

ノズルの位置やBLTouchの位置が今までの設定と違うため、
適切な数値に変えてあります。

[bltouch]
sensor_pin: ^PC4
control_pin: PA8
x_offset: -23 #BTT  2in1
y_offset: 0

[safe_z_home]
home_xy_position: 113,90 #BTT  2in1
speed: 50
z_hop: 10
z_hop_speed: 15

[bed_mesh]
speed: 150
horizontal_move_z: 6
mesh_min: 10,10
mesh_max: 157,170  #BTT  2in1
algorithm: bicubic
probe_count: 4,4



klipperの設定はこんな形です。
次回はこの設定を使って、2色切り替え印刷やグラデーション印刷をするためのスライサー設定を書いていこうと思います。

この記事が気に入ったらサポートをしてみませんか?