配置引脚替换说明
本页用于指导用户把已有 Klipper 配置改成当前 FLY 主板可用的引脚。很多网上配置只能作为结构参考,不能直接照抄使用;正式使用前,需要按实际主板型号、接口位置和接线方式替换对应引脚。
开始前请完全关闭打印机并断开电源供应。不要在通电状态下插拔线束、整理接口线序或触碰端子。
- 本文只说明如何查找并替换配置中的引脚,不提供某一台机器的完整成品配置。
position_max、rotation_distance、microsteps、run_current、sensor_type等参数需要按实际机器和硬件确认,不要因为更换主板就盲目照抄。- 主板引脚请以对应 FLY 产品文档、主板丝印和官方参考配置为准。
修改思路
修改配置时建议按下面顺序处理:
- 确认当前使用的 FLY 主板型号。
- 打开对应主板产品文档,找到驱动口、限位口、风扇口、加热口、热敏口等引脚说明。也可直接参考对应主板的 Klipper 参考配置。
- 在
printer.cfg和所有[include]文件中找到需要修改的功能段。 - 搜索准备使用的新引脚,确认它没有被其他已启用配置占用。
- 只替换与主板接口相关的引脚项,并保留必要的
!、^、~符号。 - 保存配置并重启 Klipper。
- 按单项功能逐个测试,不要一次性上电测试全部外设。
常见功能段
| 功能 | 常见配置段 | 常见需要替换的项目 |
|---|---|---|
| X / Y / Z 电机 | [stepper_x]、[stepper_y]、[stepper_z] | step_pin、dir_pin、enable_pin、endstop_pin |
| 挤出机电机 | [extruder] | step_pin、dir_pin、enable_pin |
| TMC 驱动通信 | [tmc2209 stepper_x]、[tmc5160 stepper_x] 等 | uart_pin、cs_pin、spi_software_mosi_pin、spi_software_miso_pin、spi_software_sclk_pin、diag_pin |
| 热端加热 | [extruder] | heater_pin、sensor_pin |
| 热床加热 | [heater_bed] | heater_pin、sensor_pin |
| 风扇 | [fan]、[heater_fan xxx]、[fan_generic xxx] | pin、tachometer_pin |
| 限位开关 | [stepper_x]、[stepper_y]、[stepper_z] | endstop_pin |
| 探针 | [probe]、[bltouch] | pin、sensor_pin、control_pin |
| LED / 蜂鸣器 | [output_pin xxx]、[neopixel xxx] | pin |
查找对应配置
如果不确定配置在哪个文件中,推荐通过网页配置界面查找。
- 在浏览器打开打印机 Web 界面,例如 Fluidd 或 Mainsail。
- 进入配置文件页面,打开
printer.cfg。 - 使用浏览器或编辑器搜索功能,搜索下方关键词。
- 如果看到
[include xxx.cfg],说明部分配置被拆分到其他文件中,需要打开对应 include 文件继续查找。
常见查找方式:
- 查找 X 轴:搜索
[stepper_x] - 查找 Y 轴:搜索
[stepper_y] - 查找 Z 轴:搜索
[stepper_z] - 查找挤出机:搜索
[extruder] - 查找热床:搜索
[heater_bed] - 查找风扇:搜索
[fan]、[heater_fan、[fan_generic - 查找驱动:搜索
[tmc2209、[tmc5160、[tmc2240 - 查找引脚项:搜索
step_pin、dir_pin、enable_pin、heater_pin、sensor_pin、endstop_pin、uart_pin、cs_pin
配置通常不会全部写在 printer.cfg 一个文件里。看到 [include mainsail.cfg]、[include fluidd.cfg]、[include printer/*.cfg]、[include xxx.cfg] 这类内容时,需要进入对应文件查看实际配置。
检查引脚是否冲突
替换引脚前,请先搜索准备使用的新引脚,确认它没有被其他功能重复占用。Klipper 中同一个物理 GPIO 通常只能分配给一个功能,如果重复使用,可能会出现 pin xxx used multiple times in config 报错。
搜索时请去掉引脚前的修饰符。例如准备使用 !PA15,应搜索 PA15;准备使用 ^PD9,应搜索 PD9。
| 搜索到的位置 | 是否需要处理 | 说明 |
|---|---|---|
| 同一个功能段里的同一项 | 通常不用处理 | 例如正在修改的 [stepper_x] 中出现 step_pin |
| 已注释的示例行 | 通常不用处理 | 行首有 # 的示例不会生效 |
| 其他已启用功能段 | 需要处理 | 同一个引脚不能同时给风扇、加热、限位、探针等多个功能使用 |
TMC 驱动的 diag_pin 与物理限位共用 | 需要二选一 | 使用物理限位时不要同时启用同一引脚的 diag_pin;使用无限位归位时,endstop_pin 应改为对应驱动的 virtual_endstop |
| 多 MCU 引脚 | 需要确认前缀 | toolboard:PA0 和主板 PA0 不是同一个 MCU,但前缀必须与 [mcu toolboard] 名称一致 |
如果保存后出现 pin xxx used multiple times in config,请回到网页配置界面,在 printer.cfg 和所有 include 文件中搜索报错里的 xxx,保留正确功能,删除、注释或改掉其他重复占用项。
引脚符号说明
Klipper 引脚前可能带有特殊符号,替换引脚时不要随意删除:
| 符号 | 含义 | 常见位置 |
|---|---|---|
! | 反转电平 | dir_pin、enable_pin、endstop_pin |
^ | 启用上拉 | 机械限位、探针输入 |
~ | 启用下拉 | 少数输入信号 |
mcu1:PA0 | 指定某个 MCU 的引脚 | 多 MCU 或工具板配置 |
例如:
enable_pin: !PC3
endstop_pin: ^PA1
sensor_pin: toolboard:PA0
!PC3 中的实际引脚是 PC3,! 只表示电平取反。替换到新主板时,应根据新主板引脚写成类似 !<new_enable_pin>,不要直接把 ! 删除。
替换示例
假设旧配置中的 X 轴使用了其他主板引脚:
[stepper_x]
step_pin: PA3
dir_pin: PA2
enable_pin: !PA1
endstop_pin: ^PB10
下面以 FLY-C8P 的 X 轴驱动位为例。查看 C8P 主板资料后,可以把 X 轴驱动口和 X 限位口改成对应引脚。修改前请先搜索 PE5、PA8、PA15、PD9,确认这些引脚没有被其他已启用配置占用。
[stepper_x]
step_pin: PE5
dir_pin: !PA8
enable_pin: !PA15
endstop_pin: ^PD9
如果 X 轴使用 TMC2209 驱动,还需要检查对应驱动通信引脚:
[tmc2209 stepper_x]
uart_pin: PC9
run_current: 0.800
上方示例只表示 FLY-C8P 的 X 轴驱动位写法。如果你的电机接在其他驱动位,或使用的不是 C8P,请按实际主板文档和实际接线位置填写,不要直接照抄。
如果电机方向相反,通常只需要添加或删除 dir_pin 前面的 !。例如当前为 dir_pin: !PA8,改为 dir_pin: PA8;反之亦然。
如果限位状态相反,通常检查 endstop_pin 前面的 ! 和 ^ 是否符合实际接线方式:
endstop_pin: ^!PD9
按功能替换
电机与驱动
同一个电机通常需要同时检查 [stepper_x] 和 [tmc2209 stepper_x] 两个配置段(完整示例见上方「替换示例」)。替换引脚时还需注意以下几点:
[tmc2209 stepper_x]、[tmc5160 stepper_x]、[tmc2240 stepper_x] 等配置段必须与实际驱动型号一致。更换主板时不要只改引脚,还要确认驱动型号、通信方式和采样电阻参数是否匹配。
C8P 的 X 限位口示例为 PD9。如果使用无限位归位,不应继续使用 endstop_pin: ^PD9,而应按驱动型号改为 virtual_endstop,并在 TMC 配置中启用对应 diag_pin。物理限位和无限位归位不要混用同一个限位引脚。
[stepper_x]
endstop_pin: tmc2209_stepper_x:virtual_endstop
homing_speed: 40
homing_retract_dist: 0
[tmc2209 stepper_x]
uart_pin: PC9
diag_pin: ^PD9
run_current: 0.800
加热与温度
热端加热一般在 [extruder] 中:
[extruder]
heater_pin: PD12
sensor_pin: PC2
sensor_type: Generic 3950
热床加热一般在 [heater_bed] 中:
[heater_bed]
heater_pin: PB0
sensor_pin: PC5
sensor_type: Generic 3950
上方是 C8P 的常见热端与热床示例。heater_pin 对应加热输出口,sensor_pin 对应热敏输入口。两者不要填反,也不要把同一个热敏引脚同时写到多个温度传感器中。sensor_type 示例为 Generic 3950,请以实际热敏型号为准(常见还有 ATC Semitec 104GT-2、PT1000 等)。
风扇
普通模型风扇常见写法:
[fan]
pin: PA0
热端散热风扇常见写法:
[heater_fan hotend_fan]
pin: PA1
heater: extruder
heater_temp: 50.0
上方是 C8P 的风扇口示例。替换前请先搜索 PA0、PA1,确认这些引脚没有同时被 [output_pin]、[fan_generic] 或其他风扇配置占用。如果主板风扇口分为常开口和可控口,请确认文档中对应风扇口是否支持 PWM 控制。
探针与限位
机械限位常见写法:
[stepper_x]
endstop_pin: ^PD9
普通探针常见写法:
[probe]
pin: ^PC0
BLTouch 类探针常见写法:
[bltouch]
sensor_pin: ^PC0
control_pin: PE6
上方是 C8P 的限位与探针口示例。普通 [probe] 和 [bltouch] 只选择实际使用的一种,不要同时启用同一个探针信号脚。限位、探针等输入信号是否需要 ^ 或 !,取决于模块类型和接线方式。修改前请先搜索 PD9、PC0、PE6,确认没有重复占用;修改后应先在 Web 控制台使用 QUERY_ENDSTOPS、QUERY_PROBE 等命令查看触发状态,再进行归位或调平。
保存与验证
修改完成后,点击网页右上角的 SAVE & RESTART 保存并重启 Klipper。如果修改涉及 MCU 连接、驱动通信等底层配置,可能需要在控制台执行 FIRMWARE_RESTART 而不是普通 RESTART。
建议按以下顺序验证:
- 查看 Klipper 是否能正常启动,没有
Unknown pin chip name、Pin is not a valid pin name、Unable to parse option等配置报错。 - 如果出现
pin xxx used multiple times in config,先搜索并处理重复占用的xxx,不要继续测试。 - 在 Web 控制台使用
QUERY_ENDSTOPS检查限位状态是否正常。 - 单独测试风扇、加热和探针,不要同时测试多个外设。
- 使用小距离移动测试电机方向,例如先移动
1mm或5mm。 - 确认方向、限位、温度、风扇都正常后,再进行归位和打印测试。
常见问题
| 现象 | 常见原因 | 处理方向 |
|---|---|---|
| 电机不动 | enable_pin 电平错误、驱动通信引脚错误、驱动型号配置不匹配 | 检查 enable_pin 是否需要 !,核对 TMC 配置段 |
| 电机方向相反 | dir_pin 电平方向不匹配 | 添加或删除 dir_pin 前面的 ! |
| 限位一直触发 | endstop_pin 反相或上拉配置不匹配 | 检查 ^ 和 !,执行 QUERY_ENDSTOPS 验证 |
| 保存后提示引脚重复 | 同一个 GPIO 被多个功能同时使用 | 搜索报错里的引脚名,删除、注释或改掉重复占用项 |
| TMC 通信报错 | uart_pin / cs_pin / SPI 引脚错误,或驱动型号不一致 | 按主板驱动位重新核对通信引脚 |
| 加热无反应 | heater_pin 填错,或接到了不可控输出口 | 核对加热口编号和主板资料 |
| 温度显示异常 | sensor_pin 或 sensor_type 不匹配 | 核对热敏口和热敏类型 |
| 风扇不可控 | pin 填错,或接到了常开风扇口 | 换到支持控制的风扇口并修改配置 |
更多主板安装注意事项请参考:主板常见注意事项。