跳到主要内容

CAN网络配置与ID搜索

使用前注意

  1. 将 UTOR 或已刷 CAN 桥接固件的主板通过 USB 连接至上位机。
  2. 请通过网络登录上位机后台, 不要使用串口。
  3. 若使用 FlyOS-FAST 系统, 则无需配置 CAN(系统已预设为 1M 速率, 1024 缓存)。

检查上位机是否支持 CAN

若使用 FLY 上位机可跳过此步骤。

执行以下命令检测内核 CAN 支持:

sudo modprobe can && echo "内核支持CAN" || echo "内核不支持CAN"

若显示“内核支持CAN”, 则可继续配置。

配置 CAN0

⚠️ 此操作将覆盖原有 CAN0 配置, 完成后需重启系统。
FAST 系统无需执行!

根据系统类型选择对应配置方式:

普通 Linux 系统

1M 速率配置:

sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig \$IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF

500K 速率配置:
将上述命令中的 1000000 改为 500000 即可。

最后重启设备:

sudo reboot

搜索CAN ID的指令

  • 普通上位机搜索指令
    ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
  • FLY上位机搜索指令
    python3 ~/klipper/scripts/canbus_query.py can0
  • 如果出现ID并在最后面的Application:显示Klipper则代表此ID可以直接使用
  • 如果出现ID并在最后面的Application:显示CANBOOT或者Katapult则代表需要刷固件才可以使用
    Loading...

报错提示

  • 下方是常见的报错
    • OSError: [Errno 19] No such device
    • can.CanError: Failed to transmit: [Errno 100] Network is down
    • can.CanError: Failed to transmit: [Errno 105] No buffer space available
  • 第一种是上位机找不到CAN设备(刷了USB桥接固件的主板或者UTOC)
  • 第二种是上位机没有进行或者配置错了CAN0
  • 第三总是上位机缓存不足或者系统问题等导致缓存崩溃
  • 第二点与第三点可以看配置CAN0, 重新配置即可

搜索工具板 ID 指南与故障排查

1. 检查与配置 CAN 速率

工具板固件的 CAN 通信速率必须与上位机(主机)的配置完全一致, 否则设备将无法被发现。

操作步骤:

  1. 在主机终端中运行以下命令, 查看 CAN0 接口的当前状态:
    ip -details link show can0
  2. 在输出信息中, 确认两个关键参数:
    • bitrate: 当前的 CAN 通信速率(例如 1000000 表示 1Mbps)。
    • TxQueueLength: 发送队列长度/缓存大小(例如 1024)。

下图为命令输出的示例, 请重点核对红框内的 bitrate 参数是否与您的设备设置匹配:

Loading...

2. 排除系统 ID 占用

如果工具板已刷入 Klipper 固件, 并且其 ID 已被写入主机配置文件 (printer.cfg), 则该 ID 会被系统占用而无法在搜索中显示。

解决方法:

  1. 临时注释或删除 printer.cfg 中关于该工具板的所有配置段落。
  2. 执行修改后, 必须将机器完全关机并断开电源约 10 秒钟, 再重新上电。

3. 验证 CAN 总线终端电阻

  • 一个稳定的 CAN 总线网络必须在物理线路的两端安装 120Ω 的终端电阻
  • 必须保证CAN-H与CAN-L在断电情况下使用万用表测量阻值处于60Ω左右

检查方法:

  1. 务必在整机断电的情况下操作。
  2. 使用万用表的电阻档, 测量主板 CAN 接口或工具板上的 CAN-H 与 CAN-L 引脚之间的阻值
  3. 正确的总线阻值应约为 60Ω(两个 120Ω 电阻并联的结果)。若测量值偏差过大(如开路或仅 120Ω), 则表明接线或终端电阻配置有误。

各设备配置规则:

设备类型终端电阻要求操作说明
CAN 工具板需要 120Ω 终端电阻通过板载的跳线帽或拨码开关启用
主板 CAN 接口需要 120Ω 终端电阻通过板载的跳线帽或拨码开关启用
UTOC 类转换模块已内置 120Ω 电阻无需再启用其他终端电阻。
Loading...