工具板 MCU 添加与跨板配置
本页用于主 MCU 已连接成功后,添加工具板、验证多 MCU 状态及配置跨板引脚。如果你尚未完成主 MCU 的连接验证,请先完成 MCU 连接指南。
第一步:准备并连接工具板
开始添加工具板前,请确保:
- 主 MCU 已按 MCU 连接指南 完成连接验证。
- 工具板已完成固件烧录。
- 已确认工具板使用 CAN、USB 或 RS232 中的哪一种通信方式。
开始前请完全关闭打印机并断开电源供应。不要在通电状态下插拔线束、整理接口线序或触碰端子。
完全断电后,将工具板数据线连接到上位机或主板的对应接口。不要拆解电源、改动市电接线或触碰裸露端子。确认连接可靠后再重新上电。
同时连接多个同类型工具板时不容易区分 ID。建议每次只连接并记录一个工具板;每次增减工具板前都必须重新完全断电。
第二步:查询并记录工具板 ID
工具板与主板使用相同的 MCU ID 填写规则:
MCU ID 配置说明
Klipper 中的 MCU ID 指的是 [mcu] 或 [mcu xxx] 配置段里用于连接控制板的识别信息。不同通信方式写法不同:
| 连接方式 | 配置项 | 示例 |
|---|---|---|
| USB 固件 | serial: | serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxxx |
| CAN 固件 | canbus_uuid: | canbus_uuid: xxxxxxxxxxxx |
| RS232 设备 | serial: | serial: /dev/serial/by-path/xxxxxxxxxxxx |
| 上位机 MCU | serial: | serial: /tmp/klipper_host_mcu |
填写规则:
- 主板默认使用
[mcu],工具板或扩展板使用[mcu tool]、[mcu toolboard]等自定义名称。 - USB 固件只填写
serial:,CAN 固件只填写canbus_uuid:,不要在同一个[mcu]中同时保留两项。 - 多 MCU 机器中,每个
[mcu xxx]都必须使用自己的真实 ID,不要复制同一个 USB ID 或 CAN UUID。 [mcu xxx]的名称会影响引脚前缀,例如[mcu tool]的引脚应写成tool:gpio13;名称大小写要保持一致。- 文档示例里的
xxxxxxxx不能直接使用,必须替换为实际搜索到的 ID。 - RS232 设备除
serial:外,通常还需要填写baud: 250000和restart_method: command;以对应产品文档为准。
常见错误:
- 把烧录模式 ID(如包含
katapult、canboot的 ID)当作 Klipper 固件 ID 使用。 - USB 固件配置了
canbus_uuid:,或 CAN 固件仍保留旧的serial:。 - RS232 设备只填写路径,遗漏所需的
baud:或restart_method:。 - 工具板配置成
[mcu],覆盖了主板 MCU 配置。 - 引脚前缀和 MCU 名称不一致,例如配置是
[mcu toolboard],引脚却写tool:gpio13。
USB ID 查询:USB 固件可执行
ls /dev/serial/by-id/*获取 ID。
CAN ID 查询:CAN 网络与 ID 搜索
RS232 路径查询:执行
ls -l /dev/serial/by-path/获取稳定设备路径。
工具板配置:工具板 MCU 添加与跨板配置
USB、CAN、RS232 查询命令与结果说明:MCU ID 配置
记录 ID 时同时确定一个唯一、简短的 MCU 名称,例如 toolboard、toolboard1 或 toolboard2,并确认:
- USB ID 包含
usb-Klipper_...,不是 Katapult/Bootloader 烧录模式 ID。 - CAN 查询结果显示
Application: Klipper。 - RS232 使用
/dev/serial/by-path/下的稳定路径,并按产品要求填写波特率和重启方式。 - 工具板 ID 与主板及其他工具板均不重复。
第三步:添加工具板 MCU
获取工具板 ID 后,先备份当前完整的 printer.cfg,再在其中添加对应的 MCU 配置段:
- USB 工具板
- CAN 工具板
- RS232 工具板
[mcu toolboard]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00
[mcu toolboard]
canbus_uuid: 688e89f0e402
[mcu toolboard]
serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
baud: 250000
restart_method: command
- MCU 名称可完全自定义,例如
toolboard、tool、extruder_mcu等,只需在配置中保持唯一。 - MCU 名称将用作跨板引脚的 前缀,例如
[mcu toolboard]引用时写toolboard:PA0。名称大小写要保持一致。 - 每个 MCU 的名称和 ID 都必须唯一,不能与主 MCU 或其他工具板重复。
- 配置多个工具板时,请为每个设备设置不同的名称以便区分。
配置完成后,点击 SAVE & RESTART 保存并重启 Klipper。
第四步:验证所有 MCU 连接
添加工具板并重启 Klipper 后,需要确认所有 MCU 都已上线:
- 打开 Fluidd 界面,点击左侧菜单中的
System。 - 在
Mcu Information下方确认主 MCU 和所有工具板都已正确识别且显示为连接状态。
检查固件版本
完成所有 MCU 连接后,需要验证固件版本兼容性:
- 打开 Fluidd 界面,点击左侧菜单中的
System。 - 在
Mcu Information下方找到Version字段。 - 确认所有 MCU 的固件版本与上位机 Klipper 版本匹配。
- 除预配置的定制设备外,所有自行编译的固件必须与上位机 Klipper 版本保持一致。
- FAST 系统的固件版本与系统版本保持一致,编译出来的 Klipper 固件与系统版本一致。
- 不同版本的固件可能导致功能异常、通信失败或系统不稳定。
第五步:配置跨板引脚
当使用多个工具板时,可能会遇到引脚跨板分配的需求。例如:加热功能使用第一个工具板的加热口,但温度传感器连接到主板或第二个工具板。
在 Klipper 多 MCU 配置中,任何配置段的引脚都可以直接通过 <mcu名称>:<引脚号> 格式引用任意已定义 MCU 上的引脚,无需额外配置。Klipper 会自动通过通信总线(CAN/USB/串口)将指令发送到对应的 MCU。
典型场景:加热在工具板,温度传感器在主板
假设系统配置如下:
- 主板 MCU:主板通过 USB 连接,温度传感器接在主板上。
- toolboard1:工具板,加热棒和挤出机步进接在工具板上。
下方 <step_pin>、<heater_pin>、<sensor_pin> 等内容是位置占位符。必须根据对应 FLY 主板或工具板的产品文档替换为真实引脚,并确认 ! 取反逻辑是否适用于实际硬件。
步骤一:定义所有 MCU
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
[mcu toolboard1]
canbus_uuid: e51d5c71a901
步骤二:在配置中直接跨板引用引脚
[extruder]
# 步进和加热使用工具板引脚
step_pin: toolboard1:<step_pin>
dir_pin: toolboard1:<dir_pin>
enable_pin: !toolboard1:<enable_pin>
heater_pin: toolboard1:<heater_pin>
# 温度传感器使用主板引脚
sensor_type: <sensor_type>
sensor_pin: <sensor_pin>
# rotation_distance、温度范围等其余参数按实际硬件配置
- 工具板引脚格式为
<mcu名称>:<引脚号>,例如toolboard1:<heater_pin>。 - 主 MCU 引脚可以直接写实际引脚名,无需前缀。
- 同一个配置段中的引脚可以来自不同的 MCU,Klipper 会自动处理跨板通信。
更多跨板配置示例
- 温度传感器在第二工具板
- 多挤出机分属不同工具板
- 风扇跨板控制
加热棒在第一工具板,温度传感器在第二工具板:
[extruder]
step_pin: toolboard1:<step_pin>
heater_pin: toolboard1:<heater_pin>
sensor_type: <sensor_type>
sensor_pin: toolboard2:<sensor_pin>
两个挤出机分别连接在不同工具板上:
[extruder]
step_pin: toolboard1:<step_pin>
heater_pin: toolboard1:<heater_pin>
sensor_pin: toolboard1:<sensor_pin>
[extruder1]
step_pin: toolboard2:<step_pin>
heater_pin: toolboard2:<heater_pin>
sensor_pin: toolboard2:<sensor_pin>
挤出机在工具板,模型风扇接在主板上:
[fan]
pin: <fan_pin>
[heater_fan throat_fan]
pin: toolboard1:<fan_pin>
heater: extruder
heater_temp: 50
fan_speed: 1.0
- 跨板引用引脚时,请确保对应 MCU 已在配置文件中通过
[mcu <名称>]正确定义。 - MCU 名称大小写必须一致,
[mcu ToolBoard]和引用toolboard:PA0会导致错误。 - 建议将功能关联紧密的设备(如加热棒和温度传感器)尽量接在同一个工具板上,以获得最佳的响应速度和可靠性。
常见问题
| 问题表现 | 排查方向 |
|---|---|
| 工具板不在线 | 断电后检查数据线连接,确认 ID 是否正确,区分 Klipper 固件 ID 与烧录模式 ID |
| 多工具板名称/ID 冲突 | 每个 [mcu] 的名称和 ID 都必须唯一,参考 MCU ID 配置 |
| 引脚前缀不匹配 | [mcu toolboard] 的引脚前缀应为 toolboard:,名称大小写需一致 |
| 固件版本不兼容 | 重新编译固件使其与上位机 Klipper 版本一致 |
| CAN UUID 找不到 | 参考 CAN 网络与 ID 搜索 |
| RS232 通信失败 | 检查 baud: 250000 和 restart_method: command 是否已配置 |