Voron CANBus 设置指南 — 简化您的工具头接线
固件 电子 CANBus
CANBus (Controller Area Network) is the gold standard for Voron toolhead wiring in 2025. Instead of running 10+ individual wires from the main controller board to the toolhead — heater cartridge, thermistor, fans, stepper motor, endstop, probe, LEDs — you run just 四根线: 24V power, ground, CAN_H, and CAN_L. The result is a cleaner build, easier maintenance, and dramatically reduced wire drag on the toolhead. 最后更新时间:2025 年 5 月。
本指南涵盖了在 Voron 上设置 CANBus 所需的一切:所需组件(U2C 适配器、EBB 工具头板、电缆)、完整接线图、适配器和工具头板的 Klipper 固件配置、UUID 发现、通过 CAN 闪烁、与 Mainsail/Fluidd 集成以及对最常见问题进行故障排除。
先决条件: You should have Klipper installed on your SBC and a basic understanding of Klipper's firmware configuration. If you're new to Klipper, start with our Klipper setup guide.
为什么选择 CAN 总线?Voron的优势
传统的 Voron 接线采用粗“脐带”电缆从主板到工具头。在 V2.4 上,当工具头在整个构建体积上移动时,该电缆必须弯曲。电缆产生的阻力会影响打印质量——尤其是在高速和加速时。排除故障也很麻烦:如果电缆链内的一根电线断裂,您就必须重新运行整个电缆束。
CANBus solves this by putting a 工具头上的辅助 MCU. This toolhead board handles all the local I/O — reading the thermistor, controlling the hotend heater, running the part cooling fan, driving the extruder stepper, and processing the probe signal — and communicates with the main SBC over just two data wires (CAN_H and CAN_L). The mainboard only needs to provide 24V power.
好处是实实在在的:
- 电缆链中的电线更少: 4 wires instead of 14+. Less drag, less friction, fewer failure points.
- 更清洁的电缆管理: A simple 4-wire shielded cable is easier to route and hide.
- 更轻松的热端更换: Unplug the CAN cable and the toolhead is free. No need to disconnect individual wires from the mainboard.
- 降低电气噪声: Stepper motor wires and heater wires run near each other in the traditional bundle. CANBus separates the data lines (shielded twisted pair) from power, reducing EMI.
- 可扩展性: Add more CAN devices later (enclosure sensors, filament runout, LED controllers) without running new wires all the way to the mainboard.
您需要的组件
CANBus 设置包含三个主要组件:
1.U2C适配器(USB转CAN)
U2C(USB 至 CAN)适配器通过 USB 连接到 SBC,并将 SBC 的 USB 总线桥接到 CAN 总线网络。它处理 CAN 协议转换,因此 Klipper 可以通过 CAN 与工具头板进行通信。
- BTT U2C V2.1: The most popular choice. Uses an STM32G0B1 microcontroller. Has screw terminals for CAN_H/CAN_L, a jumper for 120 ohm termination resistor, and a 5V output (useful for powering an ADXL345 over the same CAN bus). ~$15 from AliExpress.
- 柔和的U2C: Similar to the BTT version. Uses an STM32F072. Slightly cheaper at ~$12. Compatible with all standard EBB boards.
- Fysetc UC2: Another option. ~$10. Less common but works fine.
2. EBB工具头板(CAN工具头MCU)
这是位于工具头上并控制所有本地组件的 MCU。它通过 CAN 接收命令并发回传感器数据。
- BTT EBB36 V1.2(CAN V2.2): The community standard. 36x36mm form factor, fits most Voron toolheads. Has integrated CAN transceiver, TMC2209 stepper driver (for extruder), thermistor input, heater FET (up to 3A), fan headers (2x), probe input, endstop input, RGB LED header, and ADXL345 accelerometer header. ~$25 from AliExpress.
- BTT EBB42 V1.2: Larger (42x42mm), more I/O. Useful if you need additional fan channels or sensor inputs. ~$28.
- 柔和的FLY-SHT36 V2(或SHT42): Direct competitor to the BTT EBB series. Similar specs, slightly different pin layout. ~$22-26. The SHT36 has a removable terminal block which some builders prefer.
- 柔美FLY-SHT-42 V2 Pro: Higher-end option with integrated accelerometer and more robust connectors. ~$30.
3. CAN 电缆
带屏蔽的简单 4 线电缆。标准电线颜色和信号:
- 红色的: 24V (power for toolhead)
- 黑色的: GND
- 白色或黄色: CAN_H (twisted with CAN_L)
- 绿色或蓝色: CAN_L (twisted with CAN_H)
使用 20-22 AWG 电线连接电源 (24V/GND),使用 22-24 AWG 双绞线连接 CAN_H/CAN_L。您可以在 AliExpress 上购买预制 CAN 电缆(查找“Voron CAN 电缆 4 针”),也可以使用硅胶线和屏蔽双绞线自行制作。带连接器的预制电缆每 150 万条售价约为 5-8 美元。
接线图
以下是 Voron CANBus 设置的完整接线拓扑:
电源路径:
PSU (24V) -> Mainboard (power input) -> U2C adapter (24V input) -> CAN cable (red/black) -> EBB toolhead board (24V input)
数据路径:
SBC (USB) -> U2C adapter (USB) -> U2C (CAN_H/CAN_L screw terminals) -> CAN cable (white/green) -> EBB toolhead board (CAN_H/CAN_L)
详细连接:
| 小型计算机公司 | U2C适配器 | CAN电缆 | EBB 工具头 |
|---|---|---|---|
| USB端口 | USB-C(数据+电源) | — | — |
| — | 24V 输入(+) | 红色(24V) | 24V 输入(+) |
| — | 接地(-) | 黑色(接地) | 接地(-) |
| — | CAN_H端子 | 白色 (CAN_H) | CAN_H引脚 |
| — | CAN_L端子 | 绿色 (CAN_L) | CAN_L引脚 |
终端电阻: CANBus requires a 120 ohm resistor at 两端 of the bus. The U2C adapter has a jumper to enable its built-in 120 ohm termination. The EBB36/EBB42 also has a jumper for termination. Enable termination on both — the U2C is one end of the bus, the EBB board is the other end. If you add more CAN devices between them, do not enable termination on those devices.
Klipper CAN 总线配置
第 1 步:在 U2C 上的 Klipper 固件中启用 CAN
首先,您需要使用已启用 CAN 总线支持的 Klipper 固件刷新 U2C 适配器。
cd ~/klipper制作菜单配置- 设置:微控制器 = STM32G0B1(适用于 BTT U2C V2.1)或 STM32F072(适用于 Mellow U2C)
- Set: Communication interface = USB 转 CAN 总线桥
- Set: CAN bus interface = CAN 总线(在 PB0/PB1 上) (this varies by board — check your board's Klipper config)
- 将 CAN 总线速度保留为默认值(1000000 = 1 Mbps)
maketo build the firmware- Flash via DFU or SD card (varies by U2C version — BTT U2C V2.1 uses DFU: hold BOOT button, plug in USB,
dfu-util -a 0 -D out/klipper.bin --dfuse-address 0x08000000:leave)
第 2 步:刷新 EBB 工具头板
EBB 板还需要为 CAN 构建的 Klipper 固件。
cd ~/klipper && make menuconfig- Set: Microcontroller = STM32G0B1 (for EBB36/42 V1.2) or STM32F072 (for older versions)
- Set: Communication interface = CAN 总线(在 PB0/PB1 上) for EBB36/42
- Set: CAN bus speed = 1000000 (1 Mbps — must match the U2C setting)
制作- 通过DFU刷新EBB板(与U2C相同的过程:BOOT按钮+ USB + dfu-util)
替代方案:在初始 DFU 刷新后通过 CAN 进行刷新。 Once the EBB board has been initially flashed via DFU (with CAN interface enabled), subsequent firmware updates can be sent over the CAN bus itself. This is convenient once the board is installed in your printer.
步骤 3:UUID 发现
每个 CAN 设备都有一个唯一的 UUID。您需要先找到它,然后才能在 Klipper 中对其进行配置。
运行发现脚本:
〜/klipper/scripts/flash_can.py -q
这会查询 CAN 总线并列出所有连接的设备。输出看起来像:
找到canbus_uuid=abcdef123456,应用程序:Klipper
复制此 UUID — 您将需要它来用于 Printer.cfg。如果脚本没有返回任何内容,请检查:
- U2C 适配器已连接并通电(LED 应亮起)
- 两个 120 欧姆终端电阻均已启用
- CAN 电缆接线正确(CAN_H 至 CAN_H、CAN_L 至 CAN_L)
- Your SBC has the CAN interface up:
sudo ip link set can0 up type can bitrate 1000000
步骤 4:为 CAN 配置 Printer.cfg
Add the following to your printer.cfg:
[mcu canbus]
serial: canbus_uuid:abcdef123456
canbus_interface: can0
Replace abcdef123456 with the UUID from Step 3. The canbus_interface: can0 tells Klipper which CAN interface to use (default is can0 if you only have one U2C adapter).
If you have multiple CAN devices (e.g., a second toolhead or an accelerometer on CAN), add additional [mcu] sections with their respective UUIDs:
[mcu ebb36]
serial: canbus_uuid:abcdef123456
canbus_interface: can0
[mcu adxl345_can]
serial: canbus_uuid:7890def45678
canbus_interface: can0
After updating printer.cfg, run RESTART in the Klipper console. If the connection is successful, you'll see the EBB board appear in the Mainsail dashboard with its MCU temperature and status.
第 5 步:通过 CAN 刷新固件
一旦 EBB 板位于 CAN 总线上,您无需物理访问即可刷新固件更新:
python3 ~/klipper/scripts/flash_can.py -u abcdef123456
This sends the out/klipper.bin file (from make) to the device over CAN. The device receives it, writes it to flash, and reboots with the new firmware. No DFU jumpers needed.
与 Mainsail / Fluidd 集成
在 Klipper 中配置 CANBus 后,Mainsail 和 Fluidd 会自动检测附加 MCU。您将在仪表板中看到 EBB 板与主控制器板并列。工具头板的传感器(MCU 温度、电压)显示为附加数据点。
对于EBB36/42,您还可以监控该板的独特功能:
- Neopixel/RGB LED: Configure via
[neopixel ebb_led]section in printer.cfg. Great for status indicators (red = heating, green = ready, blue = printing). - 内置ADXL345: Some EBB versions have an onboard accelerometer. Add
[adxl345]to the EBB's MCU section and run input shaper calibration directly on the toolhead — no separate wiring needed. - 风扇控制: The EBB's fan headers are independently controllable. Assign them in printer.cfg as
[heater_fan hotend_fan]and[fan part_cooling_fan].
常见问题和故障排除
- 未找到 UUID(flash_can.py -q 不返回任何内容): Check that the CAN interface is up:
sudo ip link set can0 up type can bitrate 1000000. Verify both termination resistors are enabled. Check wiring — CAN_H and CAN_L crossed is the most common mistake. Test continuity with a multimeter. - 添加UUID后Klipper无法连接MCU: Make sure the UUID is entered correctly (all lowercase, no spaces). Verify the EBB board is powered (24V connected). Use
dmesg | grep canon the SBC to check for CAN bus errors. - 比特率不匹配: The U2C and EBB must use the same bitrate. If you flashed the U2C with 1 Mbps but the EBB with 500 Kbps (default on some boards), they won't communicate. Rebuild and re-flash both with the same speed. 1 Mbps (1000000) is recommended.
- 打印过程中间歇性断开连接: Usually a power issue. The CAN cable's 24V wires must be thick enough (20 AWG minimum) to carry the current without voltage drop. Check that the EBB board is getting 24V ± 10% at the board — measure with a multimeter during a print cycle. Voltage sag below 20V causes the board to brown out and disconnect.
- dmesg 中的 CAN 总线错误:
dmesg | grep canshowing "bit error" or "stuff error" indicates electrical noise on the bus. Use shielded twisted pair for the CAN_H/CAN_L wires. Keep the CAN cable away from stepper motor cables and the hotend heater power wires. - EBB 板变得非常热: The TMC2209 stepper driver on the EBB gets warm during extrusion. If it's too hot to touch, check that the extruder motor current isn't set too high (typical Voron extruder: 0.4-0.6A RMS). Add a small heatsink or fan over the EBB board if needed.
- 无法通过 CAN 刷新 EBB: The board must already have Klipper firmware with CAN interface enabled (flashed via DFU first). After the initial DFU flash, subsequent updates work over CAN. If CAN flashing fails, re-flash via DFU with the board connected directly to USB.
成本比较:中国直接与美国/欧盟
在 Voron 上使用 CANBus 的最佳理由之一是从中国采购时成本大幅降低。这是您需要支付的费用:
| 成分 | 中国直达(速卖通) | 美国/欧盟零售商 | 储蓄 |
|---|---|---|---|
| BTT U2C V2.1 | $12-15 | $35-45 | ~65% |
| BTT EBB36 V1.2 | $22-28 | $50-65 | ~55% |
| 飞翔SHT36 V2 | $20-26 | $45-60 | ~55% |
| 预制 CAN 电缆 1.5m | $5-8 | $12-20 | ~55% |
| CANBus 全面升级 | $40-50 | $100-130 | ~55-60% |
对于完全相同的硬件,这可以节省 50-80 美元。美国零售商销售的 BTT 和 Mellow 组件实际上是同一工厂生产的相同组件 - 中国直销价格才是真实价格。
CANBus 与传统接线:哪种适合您?
CANBus 是现代选择,但传统布线仍然完全有效。以下是如何决定:
- 新版本: Go CANBus. The small additional cost ($40-50) saves hours of wiring and makes future maintenance much easier. Every new Voron build in 2025 should use CANBus unless you already have a traditional mainboard.
- 现有打印机升级: Worth it if you frequently swap hotends or are rebuilding your toolhead anyway. If your current wiring is working fine, there's no urgent need to switch — but you'll appreciate the cleaner cable chain when you do.
- 预算构建: CANBus components from China direct are cheap enough that the upgrade is negligible in a $700+ build. Skip it only if you already have a traditional mainboard with enough stepper channels.
- 刀头板选择: The EBB36 is the safe choice — it's the most documented and has the largest community. The FLY-SHT36 is a good alternative if you prefer removable terminal blocks. Both work identically once configured.
For complete beginners, we recommend starting with a traditional wired build and upgrading to CANBus when you're comfortable with Klipper. The initial wiring is more complex and adds another layer of troubleshooting if something goes wrong. See our Klipper setup guide for traditional wiring instructions.