工具板 MCU 添加与跨板配置
本页用于主 MCU 已连接成功后,添加工具板、验证多 MCU 状态及配置跨板引脚。如果你尚未完成主 MCU 的连接验证,请先完成 MCU 连接指南。
前置条件
开始添加工具板前,请确保:
- 主 MCU 已按 MCU 连接指南 完成连接验证。
- 工具板已完成固件烧录。
- 工具板的数据线已连接到上位机或主板的对应接口(CAN/USB/RS232)。
查询工具板 ID
工具板的 ID 查询方式取决于其通信接口。关于 MCU ID 的完整填写规则,请参考 MCU ID 配置,以下是快速操作指引:
USB 工具板
通过 SSH 登录上位机,执行以下命令查看所有 USB 串口设备:
ls /dev/serial/by-id/*
输出示例:
/dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00
烧录模式下的 ID 通常包含 katapult 或 stm32duino 字样(如 usb-katapult_stm32f446xx_...),请确保使用的是 Klipper 固件模式下的 ID,而非烧录模式 ID。
CAN 工具板
- SSH 命令行
- FlyOS-FAST / FLY 上位机
通过 SSH 登录上位机,执行以下命令搜索 CAN 设备 UUID:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
输出示例:
Found canbus_uuid=688e89f0e402, Application: Klipper
FAST 或 FLY 上位机直接使用 python3 执行搜索:
python3 ~/klipper/scripts/canbus_query.py can0
FAST 系统的 CAN0 已预设为 1M 速率、1024 缓存,一般无需手动配置。
CAN 工具板的 Klipper 固件 UUID 与 CANBoot 烧录 UUID 不同。Application 显示为 CANBOOT 或 Katapult 表示设备处于烧录模式。如需详细排查,请参考 CAN 网络与 ID 搜索。
RS232 工具板
通过 SSH 登录上位机,执行以下命令查看 USB 转串口设备路径:
ls -l /dev/serial/by-path/
输出示例:
/dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
RS232 通讯的工具板必须额外配置 baud: 250000 和 restart_method: command 参数,否则无法正常通信。
添加工具板 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 固件与系统版本一致。
- 不同版本的固件可能导致功能异常、通信失败或系统不稳定。
更新主配置文件
如果你在 MCU 连接指南 中按流程备份了 printer_Backup.cfg,本节用于将已验证的 MCU ID 写回完整配置。如果你当前使用的已是正式配置文件,可直接跳过本节。
确认所有 MCU 连接正常后:
- 在配置文件管理界面删除当前临时的
printer.cfg。 - 将之前备份的
printer_Backup.cfg重命名为printer.cfg。 - 打开恢复后的
printer.cfg,找到原有[mcu]及[mcu <名称>]配置段,更新为已验证的真实 ID。 - 点击 SAVE & RESTART 保存并重启 Klipper。
- 确保使用本次连接测试中实际搜索到的正确 ID。
- RS232 工具板必须包含
baud: 250000和restart_method: command参数。 - 恢复配置后,原有的打印机参数(如步进电机、限位开关等设置)将保持不变。
多工具板跨板引脚配置
当使用多个工具板时,可能会遇到引脚跨板分配的需求。例如:加热功能使用第一个工具板的加热口,但温度传感器连接到主板或第二个工具板。
在 Klipper 多 MCU 配置中,任何配置段的引脚都可以直接通过 <mcu名称>:<引脚号> 格式引用任意已定义 MCU 上的引脚,无需额外配置。Klipper 会自动通过通信总线(CAN/USB/串口)将指令发送到对应的 MCU。
典型场景:加热在工具板,温度传感器在主板
假设系统配置如下:
- 主 MCU:运行上位机 Klipper 主机固件,温度传感器接在主板上。
- toolboard1:工具板,加热棒和挤出机步进接在工具板上。
步骤一:定义所有 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: ATC Semitec 104GT-2
sensor_pin: <sensor_pin>
rotation_distance: 22.44
gear_ratio: 50:17
microsteps: 16
full_steps_per_rotation: 200
nozzle_diameter: 0.400
filament_diameter: 1.75
min_temp: -235
max_temp: 350
max_power: 1.0
min_extrude_temp: 170
control: watermark
- 工具板引脚格式为
<mcu名称>:<引脚号>,例如toolboard1:<heater_pin>。 - 主 MCU 引脚可以直接写实际引脚名,无需前缀。
- 同一个配置段中的引脚可以来自不同的 MCU,Klipper 会自动处理跨板通信。
更多跨板配置示例
- 温度传感器在第二工具板
- 多挤出机分属不同工具板
- 风扇跨板控制
加热棒在第一工具板,温度传感器在第二工具板:
[extruder]
step_pin: toolboard1:<step_pin>
heater_pin: toolboard1:<heater_pin>
sensor_type: ATC Semitec 104GT-2
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 是否已配置 |