🖇️
TRONXY CXY-V6-191121 (STM32F446 based) メインボードをKlipper化する
TRONXYのSTM32F446ベースの新型メインボードは比較的簡易な手順でファームウェアの書き換えができます。本稿ではKlipperファームウェアをビルドして書き込みます。
1. Klipperファームウェアのビルド
最新のKlipperをインストールしたディレクトリで、make menuconfig
で設定した後、make
でビルドを行います。
1.1. make menuconfig
設定を行います。
make menuconfig
項目 | 値 |
---|---|
Architecture | STM32 |
model | STM32F446 |
Bootloader offset | 64KiB |
interface | Serial on USART1 PA10/PA9 |
1.2. make
ビルドします。
make
生成されたout/klipper.bin
がプリンタへ書き込むKlipperファームウェアです。
2. Klipperファームウェアをプリンタへ書き込む
2.1. SDカードへの書き込み
SDカードにUPDATE
ディレクトリを作成し、そこへKlipperファームウェアをコピーします。このとき機種によりファイル名を変更する必要があります。
機種 | ファイル名 |
---|---|
X5SA(2022) | UPDATE/FMW_X5~1.BIN |
XY-3 SE(2022) | UPDATE/FMW_XY~2.BIN |
2.2. SDカードからプリンタファームウェアを書き換え
SDカードをプリンタのスロットへ挿入し、電源を入れます。ブート画面の左下に書き換え状況が表示されます。
X5SAの書き込みのようす | XY-3 SEの書き込みのようす |
---|---|
書き換えが終了しても画面が変化しませんが、それで正常です。
3. Klipperの設定
printer.cfgを設定します。環境に合わせて変更してください。
参考までに、本稿のX5SAとXY-3 SEの設定例を3.1.~3.2.に示します。
3.1. X5SAの設定例
本稿のX5SA(VzBot化改造済、BMGエクストルーダ使用)では次のように設定しています。
[mcu]
serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.4:1.0-port0
restart_method: command
[pause_resume]
[display_status]
[virtual_sdcard]
path: ~/gcode_files
[printer]
kinematics: corexy
max_velocity: 1000
max_accel: 10000
max_z_velocity: 25
max_z_accel: 30
[stepper_x]
step_pin: PE5
dir_pin: !PF1
enable_pin: !PF0
microsteps: 32
rotation_distance: 40
endstop_pin: !PC15
position_endstop: -1
position_min: -1
position_max: 330
homing_speed: 50
homing_retract_dist: 10
second_homing_speed: 10.0
[stepper_y]
step_pin: PF9
dir_pin: !PF3
enable_pin: !PF5
microsteps: 32
rotation_distance: 40
endstop_pin: !PC14
position_endstop: 0
position_max: 280
homing_retract_dist: 10
homing_speed: 50.0
second_homing_speed: 10.0
[stepper_z]
step_pin: PA6
dir_pin: PF15
enable_pin: !PA5
microsteps: 32
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: -2
[extruder]
step_pin: PB1
dir_pin: PF13
enable_pin: !PF14
microsteps: 32
rotation_distance: 22.409 # BMG Clone
gear_ratio: 50:17 # BMG Clone
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PG7
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
control: pid
pid_kp: 21.111
pid_ki: 0.991
pid_kd: 112.413
min_temp: -257
max_temp: 300
max_extrude_only_distance: 350
min_extrude_temp: -257
max_extrude_cross_section: 50.0
[heater_bed]
heater_pin: PE2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC2
min_temp: -257
max_temp: 130
control: pid
pid_kp: 73.625
pid_ki: 1.337
pid_kd: 1013.258
[heater_fan hotend_fan]
heater: extruder
heater_temp: 50.0
pin: PG9
[fan]
pin: PG0
[controller_fan drivers_fan]
pin: PD7
[filament_switch_sensor filament_sensor]
pause_on_runout: True
runout_gcode:
M25
switch_pin: !PE6
[output_pin beeper]
pin: PA8
[safe_z_home]
home_xy_position: 177, 94.5
speed: 50
z_hop: 10
z_hop_speed: 5
[bed_screws]
screw1: 5, 5
screw2: 165, 5
screw3: 325, 5
screw4: 5, 325
screw5: 165, 325
screw6: 325, 325
[bed_mesh]
speed: 120
probe_count: 5, 5
horizontal_move_z: 10
algorithm: lagrange
mesh_min : 60, 72
mesh_max : 300, 300
mesh_pps: 0
fade_start: 1
fade_end: 10
fade_target: 0
[probe]
x_offset: -12
y_offset: 70.5
pin: !PE3
speed: 30
z_offset: 4.7
[gcode_macro G29]
gcode:
G28
BED_MESH_CALIBRATE
3.2. XY-3 SE 3-in-1の設定例
本稿のXY-3 SE 3-in-1では次のように設定しています。
[include mainsail.cfg]
[mcu]
serial: /dev/serial/by-path/platform-70090000.xusb-usb-0:2.3:1.0-port0
restart_method: command
[virtual_sdcard]
path: ~/printer_3_data/gcodes
[printer]
kinematics: cartesian
max_velocity: 150
max_accel: 500
max_accel_to_decel: 250
max_z_velocity: 25
max_z_accel: 100
[stepper_x]
step_pin: PE5
dir_pin: PF1
enable_pin: !PF0
microsteps: 32
rotation_distance: 40
endstop_pin: !PC15
position_endstop: -1
position_min: -1
position_max: 255
homing_speed: 50
homing_retract_dist: 10
second_homing_speed: 10.0
[stepper_y]
step_pin: PF9
dir_pin: !PF3
enable_pin: !PF5
microsteps: 32
rotation_distance: 40
endstop_pin: !PC14
position_endstop: 0
position_max: 255
homing_retract_dist: 10
homing_speed: 50.0
second_homing_speed: 10.0
[stepper_z]
step_pin: PA6
dir_pin: !PF15
enable_pin: !PA5
microsteps: 32
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 260
position_min: -1
[extruder]
step_pin: PB1
dir_pin: !PF13
enable_pin: !PF14
microsteps: 32
rotation_distance: 7.64
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 400
max_extrude_cross_section: 55.0
pressure_advance: 0.4
heater_pin: PG7
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
min_temp: -10
max_temp: 275
min_extrude_temp: 0 # 170
control = pid
pid_kp = 24.0
pid_ki = 1.360
pid_kd = 106.0
[gcode_macro T0]
gcode:
SAVE_GCODE_STATE NAME=T0_state
{% if printer.toolhead.extruder != "extruder" %}
{% set E = params.E|default(80)|float %}
G91
G1 E-{E} F3000
ACTIVATE_EXTRUDER EXTRUDER=extruder
G1 E{E} F3000
G90
{% endif %}
RESTORE_GCODE_STATE NAME=T0_state
[extruder1]
step_pin: PD12
dir_pin: !PG4
enable_pin: !PG5
microsteps: 32
rotation_distance: 7.64
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 400
max_extrude_cross_section: 55.0
pressure_advance: 0.4
shared_heater: extruder
[gcode_macro T1]
gcode:
SAVE_GCODE_STATE NAME=T1_state
{% if printer.toolhead.extruder != "extruder1" %}
{% set E = params.E|default(80)|float %}
G91
G1 E-{E} F3000
ACTIVATE_EXTRUDER EXTRUDER=extruder1
G1 E{E} F3000
G90
{% endif %}
RESTORE_GCODE_STATE NAME=T1_state
[heater_bed]
heater_pin: PE2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC2
min_temp: -10
max_temp: 110
control = pid
pid_kp = 70.0
pid_ki = 1.123
pid_kd = 1088.0
[heater_fan hotend_fan]
heater: extruder
heater_temp: 50.0
pin: PG9
[fan]
pin: PG0
[controller_fan drivers_fan]
pin: PD7
[temperature_sensor stm32f446]
sensor_type: temperature_mcu
[filament_switch_sensor filament_sensor]
pause_on_runout: True
runout_gcode:
M25
switch_pin: !PE6
[output_pin beeper]
pin: PA8
[safe_z_home]
home_xy_position: 155.3,119.5
speed: 50
z_hop: 10
z_hop_speed: 5
[bed_screws]
screw1: 25, 25
screw2: 230, 25
screw3: 25, 230
screw4: 230, 230
[bed_mesh]
speed: 120
probe_count: 5,5
horizontal_move_z: 5
algorithm: lagrange
mesh_min : 35,35
mesh_max : 220,220
mesh_pps: 0
fade_start: 1
fade_end: 10
fade_target: 0
[probe]
x_offset: -28.3
y_offset: 7.5
pin: !PE3
speed: 30
z_offset: 1.25
[gcode_macro G29]
gcode:
G28
BED_MESH_CALIBRATE
発展情報
ステッパードライバTMC2225をシリアル接続したい場合は、TRONXY CXY-V6-191121 (STM32F446 based) メインボードでTMC2225をシリアル制御するページを参照してください。
まとめ
TRONXYのSTM32F446ベースの新型メインボードは、Klipperをビルドして、SDカードへ入れて、電源を再投入するだけでKlipperファームウェアを書き込むことができます。
Discussion