VORON v2.4製作メモ-11(printer.cfgのこと)

はじめに

現在公開されているVORON V2.4向け設定ファイルは知る限り2種あります。
・FYSETCのgithub-spider printer.cfg

・VORON Designのgithub-VORON2 printer.cfgと結線説明

困ったことに結線ルールが違い、従ってcfgの内容も若干異なります。
ここでは公式より先に公開されていたFYSETCのもので解説します。

printer.cfg

#の付いてる行はコメント行となってKlipperには読み込まれません。
見にくいので解説はコメント無しで書き込んでいます。コピペする場合は注意ください。
先頭からはof kkhhbnmcnbファームウエアの作成手順と方法が書いてます。

# This file contains common pin mappings for the Fysetc Spider board.
# To use this config, the firmware should be compiled for the STM32F446.
# When calling "menuconfig", enable "extra low-level configuration setup" 
# and select the "12MHz crystal" as clock reference 
#    ↓32kbブートローダーオフセットの指示
# For flashing, write the compiled klipper.bin to memory location 0x08000000

 
VORONv2 250、300、350mmでSpiderボードにTMC2209 UART仕様を搭載した場合のcfgとなります。
このcfgでの変更する場所(セクション)確認点を列挙しています。え

## Voron Design VORON2 250/300/350mm Spider TMC2209 UART config
## *** THINGS TO CHANGE/CHECK: *** 

## MCU paths							[mcu] section 
## Thermistor types						[extruder] and [heater_bed] sections - See 'sensor types' list at end of file
## Z Endstop Switch location			[safe_z_home] section
## Homing end position				    [gcode_macro G32] section
## Z Endstop Switch  offset for Z0		[stepper_z] section
## Probe points							[quad_gantry_level] section
## Min & Max gantry corner postions		[quad_gantry_level] section
## PID tune								[extruder] and [heater_bed] sections
## Fine tune E steps					[extruder] section

[mcu]

## Uncomment below if you're using the Raspberry uart0 to communicate with Spider
USB接続の場合はこのまま。UART接続の場合は#を外してください。

#restart_method: command

## You need to select 'Communication interface' to USB in 'make menuconfig'
## when you compile Klipper for Spider
## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify

USB接続の場合はボードのMCUIDが必要でここで指定します。Rpiにsshでログイン

ls -l /dev/serial/by-id/

するとこんな感じで
Klipper_stm32f446xx_(ボードによって違う数字列)-if00

スクリーンショット 2021-09-21 23.44.47

が出ますのでコピーしてprinter.cfgの以下のところにペーストします。

serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_(ボードによって違う数字列)-if00 #


## If you want to use the Raspberry uart0 to communicate with Spider,
## you need to select 'Communication interface' to 'Serial (on USART1 PA10/PA9)'
## in 'make menuconfig' when you compile klipper and set the serial as below
UART接続の場合は以下の行先頭の#外してください

#serial: /dev/ttyAMA0

[printer]

kinematics: corexy              動作方式です。これはCoreXY機です。
max_velocity: 300               最高速度(mm/s)LDOのモーターで450mm/sぐらいはいけます。
max_accel: 3000	      		    加速度ですMax 4000となってます。 私は6000で使いますが・・・
max_z_velocity: 15			    Z軸の最高速度です。Max 15 は 12V時 TMC Driversで。24V時はもっと上げれます。私は30mm/sで使ってます
max_z_accel: 350                Z軸の最高加速度です。
square_corner_velocity: 5.0     直角コーナ通過時の速度制限値mm/s。大きくすると造形が速くなりますが品質落ち気味です。

X/Y Stepper Settings

X、Y軸のセッティングを行います。
CoreXY機は厳密には1軸の移動にも両方のモーターが作動する設計。
ここではBモータを指します。

[stepper_x]
##	Connected to X-MOT (B Motor) BモーターをボードX端子に繋いでください
step_pin: PE11                   移動出力信号ピン
dir_pin: !PE10                   回転方向指示ピン 「!」は逆転の指示です。外すと現在の反対方向へ回るようになります。
enable_pin: !PE9                 ドライバー起動のピンモーターOFF時はこのピンが出力されません。
rotation_distance: 40            モータープーリー1回転でのヘッド移動量です。 GT2(ピッチ12mm)xプーリー歯数(20歯)で計算されます。
microsteps: 16                   モータの1ステップ(1.8度や09度)をこの数字で分割高精度化します。通常16 16の倍数で指定します。
full_steps_per_rotation:200      モーター軸1回転でのステップ数 09度モーターは400(360度÷0.9度) 1.8度モーターだと200になります。
endstop_pin: ^PB14               Xエンドストップスイッチの入力ピン指示 先頭の「^」はMCU入力をプルアップ(+33vへ内部接続)せよの指示です。
position_min: 0                  X軸の最小座標です。

##	Uncomment below for 250mm build      250mmの方用
#position_endstop: 250
#position_max: 250
##	Uncomment for 300mm build            300mmの方用
#position_endstop: 300
#position_max: 300

##	Uncomment for 350mm build            350mmの方はこちら
position_endstop: 350             Xエンドストップのある座標を示します。VORONは左手前が X0,Y0となります。必須
position_max: 350                 X軸の最大移動距離です。実際には少し大きめに余裕があります。(mm)必須

homing_speed: 25                  MAX 100mm/s ホームへ戻る動作時の速度です。あまり速いと検出時に当たりが強くなりすぎてリミットが破損することがあります。
homing_retract_dist: 5            一度ホーム検出後2度目の検出の為一旦離れる動作距離です。(mm)
homing_positive_dir: true         ホーム時に座標+方向へ移動する場合はtrueに(この行は無くてもPosition_max値とposition_endostopで自動判断)

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]               X(B)モータードライバー設定セクション
uart_pin: PE7                     ドライバとシリアル通信を行うMCUピンの指定
interpolate: True                 内部256マイクロステップ補間スムージングするかの指定
run_current: 0.8                  モーター動作中の駆動電流値(A)です。RMS値になります。必須
hold_current: 0.7                 モーター停止中の保持電流値(A)です。RMS値になります。この行がない場合駆動電流と同じになります。
sense_resistor: 0.110             基板上の電流検出抵抗の抵抗値を指定します。通常0110です。
stealthchop_threshold: 0          静音モードとちょっと静音モード(シュワシュワ言います)の切替閾値(mm/s)これを超えるとちょっと静音モードに切り替えます。通常0です。

[stepper_y]
##	Connected to Y-MOT (A Motor)  AモーターをボードY端子に接続してください
step_pin: PD8
dir_pin: !PB12
enable_pin: !PD9
rotation_distance: 40
microsteps: 16
full_steps_per_rotation:200  #set to 400 for 0.9 degree stepper
endstop_pin: ^PB13
position_min: 0
##--------------------------------------------------------------------

##	Uncomment for 250mm build
#position_endstop: 250
#position_max: 250

##	Uncomment for 300mm build
#position_endstop: 300
#position_max: 300

##	Uncomment for 350mm build
position_endstop: 350
position_max: 350

##--------------------------------------------------------------------
homing_speed: 25  #Max 100
homing_retract_dist: 5
homing_positive_dir: true

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_y]
uart_pin: PE15
interpolate: True
run_current: 0.8
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 0

Z Stepper settings

Z軸はマルチSステッパー駆動です。
【Z0】軸にエンドストップ設定を書きます。

#####################################################################
#   Z Stepper Settings
#####################################################################

## In Z-MOT Position        Z0モーター(手前左)をボードZ端子に接続します。
## Z0 Stepper - Front Left
[stepper_z]
step_pin: PD14
dir_pin: !PD13
enable_pin: !PD15
rotation_distance: 40       ZベルトはGT2-20Tプーリーで駆動します2mmピッチx20歯=40mm
gear_ratio: 80:16           ベルト・プーリー減速していますので歯数を(出力:入力)で指定します。
microsteps: 16
##  In Z- Position          Z軸のメカリミットスイッチをボードZ-端子に接続。
endstop_pin: ^PA0           リミットスイッチはオンするとマイナスとつながるのでMCUピンを(^)プルアップして電圧変化を読めるようにします。
##  Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0)
##  (+) value = endstop above Z0, (-) value = endstop below
##	Increasing position_endstop brings nozzle closer to the bed
##  After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config
position_endstop: -0.5      ベッド表面とZエンドストップの高さ位置を指示。数値増加するほどノズルがベッド表面に近づきます。z_endstop_calibrationで決定します。
##--------------------------------------------------------------------

##	Uncomment below for 250mm build
#position_max: 240

##	Uncomment below for 300mm build
#position_max: 290

##	Uncomment below for 350mm build
#position_max: 340           340mmZ高指定しますが実際は干渉して上がらないと思います。300mmぐらいにしています。

##--------------------------------------------------------------------
position_min: -5             Z最低位置。-5はエンドストップ探索時に探せるようにマイナスめ
homing_speed: 8
second_homing_speed: 3       2回めのホーミング速度を別で指示できます。遅いほうが比較的正確に位置決めできます。
homing_retract_dist: 3

[tmc2209 stepper_z]          Z0軸のドライバー設定です。
uart_pin: PD10               
uart_address: 0              ここにだけアドレス指定する行が出てきますが、無くても大丈夫そうです。(ほかはないので)
interpolate: True
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

##	In E1-MOT Position       
##	Z1 Stepper - Rear Left
[stepper_z1]                Z1軸(奥左)のドライバー設定です。ボードE1端子に接続します。
step_pin: PE6
dir_pin: PC13
enable_pin: !PE5
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z1]
uart_pin: PC14
interpolate: True
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

##	In E2-MOT Position
##	Z2 Stepper - Rear Right
[stepper_z2]            Z2軸(奥右)のドライバー設定です。ボードE2端子に接続します。
step_pin: PE2
dir_pin: !PE4
enable_pin: !PE3
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z2]
uart_pin: PC15
interpolate: true
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

##	In E3-MOT Position
##	Z3 Stepper - Front Right
[stepper_z3]            Z3軸(手前右)のドライバー設定です。ボードE3端子に接続します。
step_pin: PD12
dir_pin: PC4
enable_pin: !PE8
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16

[tmc2209 stepper_z3]
uart_pin: PA15
interpolate: true
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

Extruder

#####################################################################
#   Extruder
#####################################################################

##	In E0-MOT Position      モーターはボードE0に接続します。
[extruder]
step_pin: PD5
dir_pin: !PD6               逆転する場合先頭の!を削除してください。
enable_pin: !PD4

##	Update value below when you perform extruder calibration
##	If you ask for 100mm of filament, but in reality it is 98mm:
##	rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
##  22.6789511 is a good starting point

100mmの要求に対し98mmが押し出された場合
現在のrotation_distance値 x 押し出された長さ(98mm)÷要求値(100mm)=新しいrotation_distance値

rotation_distance: 22.6789511	BMGギヤ仕様での初期値です。この値で始めてください。
##	Update Gear Ratio depending on your Extruder Type
##	Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)
##	Use 80:20 for M4, M3.1      M4などはこの数値を使います。
gear_ratio: 50:17				BMGギヤでのギヤ比です。
microsteps: 16
full_steps_per_rotation: 200	#200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400          オプションの小移動時の押出抑制機能と多分フロー計算にも使用していると思います。必須
filament_diameter: 1.75         フィラメント径です。上記に準ずる。必須
##      In E0 OUT Position
heater_pin: PB15
##	Validate the following thermistor type to make sure it is correct
sensor_type: ATC Semitec 104GT-2   使用するサーミスタの種類を指定します。末尾に代表的なものが記載されています。
sensor_pin: PC0 # TE0 Position     センサーはボードTE0に接続します。
min_temp: 10                       最低温度です。10度未満の設定値は受け付けません。
max_temp: 270                      最高制限温度です。これを超えるとシャットダウンされます。仕様より少し大きめの値が良いです
max_power: 1.0                     ヒーターの出力wを制限します。1.0=100%です。
min_extrude_temp: 170              最低押出可能温度です。170度未満ではエクストルーダモータが起動しません
control = pid                      温度制御方式を指定します pidとwatermarkがあります。pidで問題ないでしょう。
pid_kp = 26.213                    pid初期値です。オートチューニングを行うとコメントアウトされcfg末尾に新たにsaveされます
pid_ki = 1.304
pid_kd = 131.721
##	Try to keep pressure_advance below 1.0
pressure_advance: 0.05             圧力先読:押出制御を移動を先読みし制御する係数となります。別途キャリブレーションの方法があります。
##	Default is 0.040, leave stock
pressure_advance_smooth_time: 0.040上記のスムージング係数です。このままで問題ないです。

##	In E0-MOT Position
##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 extruder]
uart_pin: PD7
interpolate: false
run_current: 0.5
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0

Bed Heater

#####################################################################
#   Bed Heater
#####################################################################
[heater_bed]
##	SSR Pin - In BED OUT position
heater_pin: PB4
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PC3 # TB Position
##	Adjust Max Power so your heater doesn't warp your bed
max_power: 0.6        300~400wに出力制限を行い急加熱によるベッドプレートが反るのを防止します。
min_temp: 0
max_temp: 120
control: pid
pid_kp: 58.437
pid_ki: 2.347
pid_kd: 363.769

Probe

#####################################################################
#	Probe
#####################################################################

[probe]
##	Inductive Probe - If you use this section , please comment the [bltouch] section
##	This probe is not used for Z height, only Quad Gantry Leveling
##	In Z+ position
##	If your probe is NC instead of NO, add change pin to ^PA3
pin: ^!PA3                    未検出時オンになるセンサーの場合はこのまま。逆の場合は!を外します。^はプルアップ指定(オンするとマイナスに接続されるセンサーなので
x_offset: 0                   ノズルとのX位置ずれ値を記述します
y_offset: 25.0                同Y位置のずれ値。
z_offset: 0                   ここでのオフセットは0です。プローブをZ軸の位置決めに使用していません
speed: 10.0                   プローブ上下時のガントリーZ移動速度(mm/s)
samples: 3                    1ポイントあたりの測定サンプル数です。
samples_result: median        測定値の処理方法median=中央値、他にaverage=平均値も選べます
sample_retract_dist: 3.0      繰り返しサンプル時のガントリー持ち上げ距離(mm)センサーによっては一旦距離離さないと検出OFFにならないことがあります
samples_tolerance: 0.006      ポイントで(この場合)3回測定値のバラツキがここの値を超えた場合リトライ動作をします。
samples_tolerance_retries: 3  バラツキによるリトライがこの回数を超えるとエラーが報告されます。

Fan Control

#####################################################################
#	Fan Control
#####################################################################

[heater_fan hotend_fan]
##	Hotend Fan - FAN0 Connector    ホットエンドファンはボードFAN0に接続
pin: PB0
max_power: 1.0                        
kick_start_time: 0.5               ファンの起動時に指定の時間だけ全開運転をします。低速回転させる場合などにファン起動ミスを防ぎます。
heater: extruder                   エクストルーダーのヒーターに連動します宣言。
heater_temp: 50.0                  ホットエンドがオンまたは50℃以上の場合にファンが起動します。
##	If you are experiencing back flow, you can reduce fan_speed
#fan_speed: 1.0                    ファン速度設定。1.0=100% 風量が強すぎて逆流などが起こる場合はファン速度を落とすことでよくなることがあります。

[fan]
##	Print Cooling Fan - FAN1 Connector 印刷物冷却ファンはボードFAN1へ接続
pin: PB1
max_power: 10                      最大パワー。初期値が0.4の事がありますが10にしてください
kick_start_time: 0.5
##	Depending on your fan, you may need to increase this value
##	if your fan will not start. Can change cycle_time (increase)
##	if your fan is not able to slow down effectively
off_below: 0.10                    この数値以下の出力指示は無視されます。01=10% 低速では回らないファンの場合ここで指定します。

[heater_fan controller_fan]
##	Controller fan - FAN2 Connector底面の電装収納部分の冷却ファンはボードFAN2へ接続
pin: PB2
kick_start_time: 0.5
heater: heater_bed                 ベッドヒーターに連動して作動します宣言 輻射熱でかなり熱くなるので必須 
heater_temp: 45.0

#[heater_fan exhaust_fan]
##  Exhaust fan - In E2 OUT Positonエンクロージャ背面の排気ファンはボードE2OUTへ接続します
#pin: PB3
#max_power: 1.0
#shutdown_speed: 0.0               MCUのソフトエラーなどが発生した際の回転速度を指定できます。ここでは0になっています。
#kick_start_time: 5.0
#heater: heater_bed
#heater_temp: 60
#fan_speed: 1.0

LED Control

ですが、FYSETCの方は

#####################################################################
#	LED Control
#####################################################################

[output_pin caselight ]                    
##  Chamber Lighting - In 5V-RGB Position    5vRGB????????え?
pin: PD3
pwm: true
shutdown_value: 0
value:100
cycle_time: 0.01

こう書いているんですが、5VRGBはNeopixel専用なので普通のLEDをここに繋げないと思います。故障の原因に。
ここはVORON designの用意した.cfgが正しいと思います。

#####################################################################
#	LED Control
#####################################################################

[output_pin caselight ]
##  Chamber Lighting - In E1 OUT Position    24v仕様のLEDはボードE1端子へ接続
pin: PC8
pwm: true
shutdown_value: 0
cycle_time: 0.01

Homing and Gantry Adjustment Routines

Zセーフホーミング、XYホーム動作と4点ガントリーレベリング設定

#####################################################################
#	Homing and Gantry Adjustment Routines
#####################################################################

[idle_timeout]
timeout: 1800

[safe_z_home]
##	XY Location of the Z Endstop Switch
##	Update -10,-10 to the XY coordinates of your endstop pin 
##	(such as 157,305) after going through Z Endstop Pin
##	Location Definition step.
home_xy_position:-10,-10 Zエンドストップリミットスイッチの座標を指定します。XYホーミングのみやり、後に手動でヘッド移動させて真上に来るようにします。
speed:100
z_hop:10
  
[quad_gantry_level]
##	Use QUAD_GANTRY_LEVEL to level a gantry.
##	Min & Max gantry corners - measure from nozzle at MIN (0,0) and 
##	MAX (250, 250), (300,300), or (350,350) depending on your printer size
##	to respective belt positions

#--------------------------------------------------------------------
##	Gantry Corners for 250mm Build
##	Uncomment for 250mm build
#gantry_corners:
#	-60,-10
#	310, 320
##	Probe points
#points:
#	50,25
#	50,175
#	200,175
#	200,25
	
##	Gantry Corners for 300mm Build
##	Uncomment for 300mm build
#gantry_corners:
#	-60,-10
#	360,370
##	Probe points
#points:
#	50,25
#	50,225
#	250,225
#	250,25

##	Gantry Corners for 350mm Build
##	Uncomment for 350mm build
gantry_corners:
	-60,-10
	410,420
##	Probe points
points:
	50,25
	50,275
	300,275
	300,25

#--------------------------------------------------------------------
speed: 100
horizontal_move_z: 10
retries: 5
retry_tolerance: 0.0075 プローブした際の公差がこの数値を超える場合にリトライします
max_adjust: 10

Displays

ディスプレイコントローラーに関する設定
そのままでEXP1 EXP2へ接続するディスプレイは動作すると思います。

#####################################################################
#	Displays
#####################################################################
[display]
#	mini12864 LCD Display
lcd_type: uc1701
cs_pin: PC11
a0_pin: PD2
rst_pin: PC10
encoder_pins: ^PC6,^PC7
click_pin: ^!PA8
contrast: 63
#spi_bus: spi1
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
spi_software_sclk_pin: PA5

[neopixel fysetc_mini12864]
#	To control Neopixel RGB in mini12864 display
pin: PC12
chain_count: 3
initial_RED: 0.1
initial_GREEN: 0.5
initial_BLUE: 0.0
color_order: RGB

#	Set RGB values on boot up for each Neopixel. 
#	Index 1 = display, Index 2 and 3 = Knob
[delayed_gcode setdisplayneopixel]
initial_duration: 1
gcode:
       SET_LED LED=fysetc_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=1 TRANSMIT=0
       SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=2 TRANSMIT=0
       SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=3 

Macros

gcode_macro機能の設定
klipperに実装されていないgcodeや特殊な動作をさせる場合などを記述しています。ここはひとまず提供されているままで特に問題は無いと思います。
ビルドしたサイズの部分だけコメントを外してください。

#####################################################################
#	Macros
#####################################################################

[gcode_macro G32]
gcode:
   BED_MESH_CLEAR
   G28
   QUAD_GANTRY_LEVEL
   G28
   ##	Uncomment for for your size printer:
   #--------------------------------------------------------------------
   ##	Uncomment for 250mm build
   #G0 X125 Y125 Z30 F3600
   
   ##	Uncomment for 300 build
   #G0 X150 Y150 Z30 F3600
   
   ##	Uncomment for 350mm build
   G0 X175 Y175 Z30 F3600
   #--------------------------------------------------------------------
  
[gcode_macro PRINT_START]
#   Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
   G32                            ; home all axes
   G1 Z20 F3000                   ; move nozzle away from bed 

[gcode_macro PRINT_END]
#   Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
   M400                           ; wait for buffer to clear
   G92 E0                         ; zero the extruder
   G1 E-10.0 F3600                ; retract filament
   G91                            ; relative positioning
   G0 Z1.00 X20.0 Y20.0 F20000    ; move nozzle to remove stringing
   TURN_OFF_HEATERS
   M107                           ; turn off fan
   G1 Z2 F3000                    ; move nozzle up 2mm
   G90                            ; absolute positioning
   G0  X125 Y250 F3600            ; park nozzle at rear
   BED_MESH_CLEAR

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