CAN固件连接注意事项
接线说明
请按顺序完成以下三步操作:
第一步:设置拨码开关
- 先断电:拔掉所有电源。
- 找拨码:将工具板翻过来.找到背面的拨码开关组。
- 拨到位:为了使用CAN模式.需将所有开关拨到下方示例的位置。

重要提示:修改拨码后.必须重新烧录对应的固件(本指南使用CAN固件)。
第二步:连接线路
- 保持断电:接线全程请勿通电。
- 准备线材:使用
XT30(2+2)-F四芯数据线.其颜色定义如下:- 红 (VCC):接 12V-24V 电源正极
- 黑 (GND):接电源负极
- 黄 (CAN-H):接CAN扩展口的H
- 白/绿 (CAN-L):接CAN扩展口的L
- 连接设备:
- 将线的
XT30(2+2)-F接口插到工具板上。 - 将线的接线端子接到 UTOC模块 或已刷好“USB桥接CAN”固件的主板上。
- 最后.通过USB线将UTOC模块或主板连接到您的上位机(如FLY派或者树莓派)。
- 将线的
第三步:配置并检查终端电阻
为确保信号稳定.必须正确连接终端电阻。请按照下表配置.并在断电状态下测量:
| 设备 | 操作说明 |
|---|---|
| 工具板 | 找到并插上标有 120Ω 的跳线帽。 |
| 主板 | 如连接主板.请同样插上其 120Ω 跳线帽。 |
| UTOC模块 | 自带电阻*。 |
如何检查:
- 保持完全断电。
- 使用万用表测量工具板CAN口的 CAN-H与CAN-L 之间的电阻。
- 结果判断:
- 约60Ω:正常.两端电阻已正确连接。
- 约140Ω:可能CAN-H与CAN-L接反了。
- 约120Ω:没有安装
120Ω或者断线。 - 约90Ω:只安装了一个
120Ω。 - 约40Ω:可能有多余的电阻.请检查中间节点。
一句话总结:先断电.拨好拨码.插对线.再接好两头的120Ω跳线帽.最后测一下电阻是不是60Ω左右。
检查清单:
- 全程断电操作
- 拨码已全部拨下(CAN模式)
- 工具板
120Ω跳线帽已插 - 主板(如适用)
120Ω跳线帽已插 - CAN数据线连接牢固
- 测量电阻值约60Ω
CAN网络配置与故障排查
第一步:检查上位机是否识别CAN设备
- 登录上位机.输入命令:
lsusb - 观察结果:
- 看到
1d50:606f→ 设备识别成功 - 提示找不到
ls指令 → 执行:sudo apt-get install usbutils - 没有任何反应 → 可能是系统问题.建议更换系统
- 有多个
1d50:606f→ 建议只保留一个设备(如使用UTOC就断开其他刷了USB桥接CAN固件的设备)
- 看到
⚠️ 重要:只有看到
1d50:606f才能继续搜索CAN ID
第二步:配置CAN网络
根据系统类型选择配置方法:
如果已经配置过或者使用FlyOS-FAST系统则不需要此步!
- 普通Linux系统
- 树莓派系统
普通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速率:
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig \$IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 1024
EOF
注意:FAST系统不需要执行此操作!
树莓派系统配置方法
-
创建网络配置(可修改BitRate为500000):
sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF -
创建连接配置(TxQueueLength不建议修改):
sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=1024
EOF
- 重启系统生效:
sudo reboot
第三步:搜索CAN ID
检查CAN状态:
ip -details link show can0
- 下图圈起来的地方为上位机CAN速率与缓存
- 上方
1024是当前CAN0缓存 - 下方
1000000是当前CAN0速率

搜索设备:
- Fly-Armbian与普通上位机搜索指令
- Fly-FAST搜索指令
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/klipper/scripts/canbus_query.py can0
正常会显示:Found canbus_uuid=xxxx...
常见错误解决
| 错误信息 | 原因 | 解决方法 |
|---|---|---|
OSError: [Errno 19] No such device | 找不到CAN设备 | 1. 检查USB连接 2. 确认固件正确 3. 执行 lsusb验证 |
can.CanError: Failed to transmit: [Errno 100] Network is down | CAN网络未配置 | 1. 执行上方配置步骤 2. 重启系统 |
can.CanError: Failed to transmit: [Errno 105] No buffer space available | 缓存不足 | 1. 确认CAN缓存是否为10242. 重启系统 |
搜不到CAN ID的检查步骤
第一步:基本检查
- 执行
lsusb能看到1d50:606f - CAN设备和工具板都已通电
- 数据线连接牢固
第二步:配置检查
- CAN网络已正确配置
- 上位机CAN速率与工具板固件一致(默认1M)
- 已重启系统
第三步:硬件检查
- CAN总线两端都有120Ω终端电阻
- 断电测量CAN-H与CAN-L电阻≈60Ω
- 检查线路无断裂
- CAN-H和CAN-L没有接反
第四步:特殊情况处理
-
如果Klipper已占用ID:
- 屏蔽Klipper中的对应配置
- 完全断电1分钟
- 重新上电搜索
-
终端电阻测量值:
- ≈60Ω:正常
- ≈120Ω:只有一端有电阻
- ≈40Ω:有三端有电阻
- ≈140Ω:可能线接反了
快速排查顺序
- 先看设备:
lsusb→ 有1d50:606f? - 再看配置:
ip -details link show can0→ 速率正确? - 最后硬件:断电测电阻 → 约60Ω?
全部检查后仍不行:尝试更换数据线或设备.或联系技术支持。
工具板固件更新步骤
第一步:准备工作
- 按教程编译好新的固件文件
- 停止Klipper服务:
sudo systemctl stop klipper
第二步:获取工具板ID
在Klipper配置文件中找到对应工具板的CAN UUID(例如:241696050c56)
第三步:执行固件更新
使用以下命令刷写固件(将241696050c56替换为您的实际CAN UUID):
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
第四步:验证结果
- 看到
CAN Flash Success提示 → 烧录成功 - 看到其他错误信息 → 烧录失败.请检查UUID和连接
注意:
-u后面必须有一个空格.然后是您工具板的CAN UUID

第五步:重启服务
sudo systemctl start klipper
更新完成!
Loading...