####################################################################################
# 3D MELLOW #
####################################################################################
## Fly micro資料サイト:http://mellow.klipper.cn/#/board/fly_micro/README
## Fly micro回路図サイト:http://mellow.klipper.cn/#/board/fly_micro/schematic
## FLY 公式淘宝店:https://shop126791347.taobao.com/shop/view_shop.htm?spm=a230r.1.14.4.1a4840a8hyvpPJ&user_number_id=2464680006
## アフターサービスが必要な場合は淘宝カスタマーサービスにご連絡ください
## FLY アフターサービス技術サポートグループ:621032883
## FLY#RRFファームウェア交流グループ:786561979
#####################################################################
# 注意事項
#####################################################################
##***変更/確認が必要な項目:***
## MCU パス [mcu]
## プリンタの動作範囲 xyzのposition
## サーミスタの種類 [extruder] と [heater_bed]
## Z軸リミットスイッチ停止位置 [safe_z_home]
## Z軸リミットスイッチオフセット位置 [stepper_z]
## PID キャリブレーション [extruder] と [heater_bed]
## エクストルーダーモーターのステップ値微調整 [extruder]
#####################################################################
# ファイル呼び出し
#####################################################################
[include fluidd.cfg] # FLUIDD呼び出しファイル。
#[include mainsail.cfg] # MAINSDIL呼び出しファイル。
#どちらのファイルを使うかはご自身でご確認ください
#####################################################################
# Master ID 設定
#####################################################################
[mcu]
serial: /dev/serial/by-id/usb-Klipper_rp2040_MELLOW-if00
### USBファームウェアIDの確認方法:ls /dev/serial/by-id/*
### /dev/serial/by-id/usb-Klipper_rp2040_MELLOW-if00を確認したIDに置き換えてください
#canbus_uuid: 114514114514
### CANファームウェアIDの確認方法:~/klippy#env/bin/python ~/klipper/scripts/canbus_query.py can0
### CANのIDはserialをcanbus_uuid: に置き換えてIDを追加
#####################################################################
# 温度監視
#####################################################################
[temperature_sensor Micro4] #メインボードの温度表示
sensor_type: temperature_mcu
#####################################################################
# [temperature_sensor lite2] #ホストPC温度
# sensor_type: temperature_host
#####################################################################
# モデルと加速度
#####################################################################
[printer]
kinematics: corexy
max_velocity: 200
max_accel: 2000
max_z_velocity: 15
max_z_accel: 300
square_corner_velocity: 6.0
#####################################################################
# X/Y ステッパー設定
#####################################################################
[stepper_x]
## 参照:https://docs.vorondesign.com/build/startup/#v0
step_pin: gpio6
dir_pin:gpio3 # モーターの回転方向は上記リンクで確認。逆の場合はgpio3の前に!を追加
enable_pin:!gpio7
rotation_distance: 40
microsteps: 32
full_steps_per_rotation: 200 # 0.9°ステッパーモーターは400、1.8°は200
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 120
position_max: 120
homing_speed: 40 # センサーレスホーミング時は40mm/sを超えないことを推奨
homing_retract_dist: 0
[tmc2209 stepper_x]
uart_pin:gpio9
uart_address:0
interpolate: False
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0 # 999999でstealthchopオン、0でspreadcycle
diag_pin: ^gpio13
driver_SGTHRS: 80
[stepper_y]
## 参照:https://docs.vorondesign.com/build/startup/#v0
step_pin:gpio1
dir_pin:gpio0 # モーターの回転方向は上記リンクで確認。逆の場合はgpio0の前に!を追加
enable_pin:!gpio2
rotation_distance: 40
microsteps: 32
full_steps_per_rotation: 200
endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: 120
position_max: 120
homing_speed: 40
homing_retract_dist: 0
[tmc2209 stepper_y]
uart_pin:gpio9
uart_address:1
interpolate: False
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0
diag_pin: ^gpio14
driver_SGTHRS: 80
#####################################################################
# Z ステッパー設定
#####################################################################
[stepper_z]
## 参照:https://docs.vorondesign.com/build/startup/#v0
step_pin: gpio26
dir_pin:!gpio25 # モーターの回転方向は上記リンクで確認。逆の場合はgpio25の前に!を追加
enable_pin: !gpio27
rotation_distance: 8
microsteps: 32
endstop_pin: ^gpio12
position_endstop: 105
position_max: 105
position_min: -1.5
homing_speed: 20
second_homing_speed: 3.0
homing_retract_dist: 3.0
[tmc2209 stepper_z]
uart_pin:gpio9
uart_address:2
interpolate: False
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# エクストルーダー
#####################################################################
[extruder]
## センサーの種類 # よく使われるサーミスタは
## センサータイプ # 一般的なサーミスタは
sensor_type: ATC Semitec 104GT-2
sensor_pin: gpio28
#####################################################################
## PT1000を使用する場合は、サーミスタ横のジャンパーを接続してください。
## PT1000を使う場合はサーミスタ横のジャンパーを接続
# sensor_type:PT1000
#pullup_resistor: 1100
#sensor_pin: gpio28
#####################################################################
# エクストルーダー
#####################################################################
## https://www.klipper3d.org/Config_Reference.html#extruder
[extruder]
step_pin: gpio23
dir_pin: gpio22
enable_pin: !gpio24
rotation_distance: 21.84
## rotation_distance = 元のrotation_distance × 実際の押出長 ÷ 指定押出長
## ステップ値のキャリブレーション: 22.44=旧値22*実測値102/目標値100
gear_ratio:50:10
## 減速比(Galileoギア比7.5:1でこの行はコメントアウト;BMGは50:17、出力軸が前、入力軸が後ろ)
microsteps:16
full_steps_per_rotation: 200
nozzle_diameter:0.400
filament_diameter:1.75
heater_pin: gpio20
min_temp: -50
max_temp: 350
max_power: 1.0
min_extrude_temp: 150
pressure_advance: 0.05
##Pressure in advance
##圧力アドバンス
##https://www.klipper3d.org/ja/Pressure_Advance.html
pressure_advance_smooth_time: 0.040
#max_extrude_only_distance: 200.0 # 押出量エラーが出る場合はコメントアウト、ただし再スライス推奨
#ノズル温度PIDキャリブレーションコマンド: "PID_CALIBRATE HEATER=extruder TARGET=245
control: pid
pid_kp: 26.213
pid_ki:1.304
pid_kd: 131.721
step_pulse_duration: 0.000004
[tmc2209 extruder]
uart_pin:gpio9
uart_address:3
interpolate: False
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# ベッドヒーター
#####################################################################
[heater_bed]
heater_pin: gpio21
## サーミスタの種類を確認してください。https://www.klipper3d.org/Config_Reference.html#common#thermistors を参照。
## Keenovoヒーターには"Generic 3950"を使用
sensor_type:Generic 3950
sensor_pin: gpio29
smooth_time: 3.0
#max_power: 0.6 # 100wパッドのみ必要
min_temp: -50
max_temp: 120
control: pid # 初期チェック後にPIDキャリブレーションを実施
pid_kp: 68.453
pid_ki: 2.749
pid_kd: 426.122
#####################################################################
# ファン制御
#####################################################################
[fan]
pin: gpio16
max_power: 1.0
kick_start_time: 0.5 # ファンが起動しない場合はこの値を増やしてください
off_below: 0.13
cycle_time: 0.010
#####################################################################
[heater_fan hotend_fan]
pin: gpio17
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
#####################################################################
# フィラメント切れセンサー
#####################################################################
#[filament_switch_sensor Filament_Runout_Sensor]
#pause_on_runout: True
#runout_gcode: PAUSE
#switch_pin: gpio11
#####################################################################
# ホーミングとガントリー調整ルーチン
#####################################################################
[idle_timeout]
timeout: 1800
[homing_override]
axes: xyz
set_position_z: 0
gcode:
G90
G0 Z5 F600
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}
{% if home_all or 'X' in params %}
_HOME_X
{% endif %}
{% if home_all or 'Y' in params %}
_HOME_Y
{% endif %}
{% if home_all or 'Z' in params %}
_HOME_Z
{% endif %}
#[safe_z_home] V0.0またはV0.1のZエンドストップ位置を使用する場合のみ必要
#home_xy_position: 120,120
#speed: 50.0
#z_hop: 5
## BED_SCREWS_ADJUSTと併用
[bed_screws]
screw1: 60,5
screw1_name: 前ネジ
screw2: 5,115
screw2_name: 左後ろ
screw3: 115,115
screw3_name: 右後ろ
Probe_height: 0.1
#####################################################################
# マクロ
#####################################################################
[gcode_macro PRINT_START]
# スライサーの開始スクリプトでPRINT_STARTを使用 # お使いのスライサーに合わせてカスタマイズしてください
gcode:
G28 ; 全軸ホーム
G90 ; 絶対位置指定
G1 Z20 F3000 ; ノズルをベッドから離す
[gcode_macro PRINT_END]
# スライサーの終了スクリプトでPRINT_ENDを使用 - お使いのスライサーに合わせてカスタマイズしてください
gcode:
M400 ; バッファクリア待ち
G92 E0 ; エクストルーダーゼロ
G1 E-4.0 F3600 ; フィラメントリトラクト
G91 ; 相対位置指定
# 境界取得
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
{% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %}
# 終了位置に応じて安全な移動方向を決定
{% if printer.toolhead.position.x < %}
{% set x_safe = 20.0 %}
{% else %}
{% set x_safe = -20.0 %}
{% endif %}
{% if printer.toolhead.position.y < %}
{% set y_safe = 20.0 %}
{% else %}
{% set y_safe = -20.0 %}
{% endif %}
{% if printer.toolhead.position.z < %}
{% set z_safe = 2.0 %}
{% else %}
{% set z_safe = max_z - printer.toolhead.position.z %}
{% endif %}
G0 Z{z_safe} F3600
G0 X{x_safe} Y{y_safe} F20000
TURN_OFF_HEATERS
M107
G90
G0 X60 Y{max_y-10} F3600
[gcode_macro LOAD_FILAMENT]
gcode:
M83
G1 E30 F300
G1 E15 F150
M82
[gcode_macro UNLOAD_FILAMENT]
gcode:
M83
G1 E10 F300
G1 E#40 F1800
M82
[gcode_macro _HOME_X]
gcode:
A/Bステッパーのrun_currentを統一
{% set RUN_CURRENT_X = printer.configfile.settings['tmc2209 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc2209 stepper_y'].run_current|float %}
{% set HOME_CURRENT_RATIO = 0.7 %} # デフォルトでホーミング時にモーター電流を下げます。スキップする場合はこの値を調整してください
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT_RATIO * RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT_RATIO * RUN_CURRENT_Y}
# ホーム
G28 X
# 離れる
G91
G1 X#10 F1200
# StallGuardレジスタクリア待ち
M400
G90
# 印刷時の電流設定
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[gcode_macro _HOME_Y]
gcode:
{% set RUN_CURRENT_X = printer.configfile.settings['tmc2209 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc2209 stepper_y'].run_current|float %}
{% set HOME_CURRENT_RATIO = 0.7 %} # デフォルトでホーミング時にモーター電流を下げます。スキップする場合はこの値を調整してください
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT_RATIO * RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT_RATIO * RUN_CURRENT_Y}
# ホーム
G28 Y
# 離れる
G91
G1 Y#10 F1200
# StallGuardレジスタクリア待ち
M400
G90
# 印刷時の電流設定
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[gcode_macro _HOME_Z]
gcode:
G90
G28 Z
G1 Z30