跳到主要内容

工具板 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
区分 Klipper 固件与烧录模式

烧录模式下的 ID 通常包含 katapultstm32duino 字样(如 usb-katapult_stm32f446xx_...),请确保使用的是 Klipper 固件模式下的 ID,而非烧录模式 ID。

CAN 工具板

通过 SSH 登录上位机,执行以下命令搜索 CAN 设备 UUID:

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

输出示例:

Found canbus_uuid=688e89f0e402, Application: Klipper
CAN UUID 与 CANBoot UUID

CAN 工具板的 Klipper 固件 UUID 与 CANBoot 烧录 UUID 不同。Application 显示为 CANBOOTKatapult 表示设备处于烧录模式。如需详细排查,请参考 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 配置注意事项

RS232 通讯的工具板必须额外配置 baud: 250000restart_method: command 参数,否则无法正常通信。

添加工具板 MCU

获取工具板 ID 后,在 printer.cfg 末尾添加对应的 MCU 配置段:

[mcu toolboard]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00
命名规则
  • MCU 名称可完全自定义,例如 toolboardtoolextruder_mcu 等,只需在配置中保持唯一。
  • MCU 名称将用作跨板引脚的 前缀,例如 [mcu toolboard] 引用时写 toolboard:PA0。名称大小写要保持一致。
  • 每个 MCU 的名称和 ID 都必须唯一,不能与主 MCU 或其他工具板重复。
  • 配置多个工具板时,请为每个设备设置不同的名称以便区分。

配置完成后,点击 SAVE & RESTART 保存并重启 Klipper。

验证所有 MCU 连接

添加工具板并重启 Klipper 后,需要确认所有 MCU 都已上线:

  1. 打开 Fluidd 界面,点击左侧菜单中的 System
  2. Mcu Information 下方确认主 MCU 和所有工具板都已正确识别且显示为连接状态。
Loading...

检查固件版本

完成所有 MCU 连接后,需要验证固件版本兼容性:

  1. 打开 Fluidd 界面,点击左侧菜单中的 System
  2. Mcu Information 下方找到 Version 字段。
  3. 确认所有 MCU 的固件版本与上位机 Klipper 版本匹配。
版本兼容性说明
  • 除预配置的定制设备外,所有自行编译的固件必须与上位机 Klipper 版本保持一致。
  • FAST 系统的固件版本与系统版本保持一致,编译出来的 Klipper 固件与系统版本一致。
  • 不同版本的固件可能导致功能异常、通信失败或系统不稳定。

更新主配置文件

适用场景

如果你在 MCU 连接指南 中按流程备份了 printer_Backup.cfg,本节用于将已验证的 MCU ID 写回完整配置。如果你当前使用的已是正式配置文件,可直接跳过本节。

确认所有 MCU 连接正常后:

  1. 在配置文件管理界面删除当前临时的 printer.cfg
  2. 将之前备份的 printer_Backup.cfg 重命名为 printer.cfg
  3. 打开恢复后的 printer.cfg,找到原有 [mcu][mcu <名称>] 配置段,更新为已验证的真实 ID。
  4. 点击 SAVE & RESTART 保存并重启 Klipper。
重要提醒
  • 确保使用本次连接测试中实际搜索到的正确 ID。
  • RS232 工具板必须包含 baud: 250000restart_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>
注意事项
  • 跨板引用引脚时,请确保对应 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: 250000restart_method: command 是否已配置
Loading...