USB-CANFD-HUB
USB-CANFD-HUB 是 HexMeow 设计的一款四通道 USB 转 CAN/CAN FD 模块,面向电机调试、机器人开发和通用 CAN 总线分析。
核心优势
基于 gs_usb,Linux 免驱
USB-CANFD-HUB 采用 Linux 内核原生支持的 gs_usb 协议。连接 Linux 主机后,设备会注册为标准 SocketCAN 接口(通常为 can0 至 can3),无需安装厂商专用驱动,即可配合 iproute2、can-utils 及其他 SocketCAN 工具使用。
XT30 (2+2),供电与 CAN 一线连接
四路 CAN FD 通道均采用 XT30 (2+2) 接口,将电源正负极与 CAN H/CAN L 集成在同一个连接器中。它可以直接衔接 HEX 43xx 系列电机,也适用于采用相同接口的达妙、小米等多种 CAN 电机,减少供电线与通信线之间的转接。
连接第三方电机前
接口外形相同不代表电气参数一定相同。上电前请核对电机的额定电压、接口引脚定义、CAN 波特率和终端电阻配置。
hex-gui,让非 Linux 平台也能访问 CAN
Linux 可以通过 SocketCAN 使用设备,而 Windows 和 macOS 没有相同的原生 SocketCAN 接口。为此,我们开发了开源的跨平台桌面工具 hex-gui。它可以通过用户态 gs_usb 后端直接访问 USB-CANFD-HUB,让 Windows 和 macOS 也能正确收发 CAN/CAN FD 报文。
其他特性
- 4 路独立 CAN FD 通道
- 高速 USB Type-C 接口
- 独立电源输入,可通过 XT30 (2+2) 接口为总线设备供电
- 图形化 CAN 分析仪,支持原始报文收发、过滤与 CANopen 解析
- 支持 CANopen SDO 读写
- 支持 HEX 43xx 系列电机的图形化控制与 CAN ID 修改
- 可接入 HexMeow 机器人、机械臂及多种第三方 CAN 设备
使用前说明
本设备带有两个拨码开关,如下图所示。

- 开关 1:先将开关 1 拨到 ON 端,再给设备上电,即可进入 Bootloader 模式。
开关 1 的正常位置
正常使用时,请确保开关 1 位于标有数字的一端,即 OFF 端。
- 开关 2:部分旧版 Linux 内核的内置驱动仅支持两个 CAN FD 通道,而本设备默认启用全部四个通道。在这些系统上出现异常时,可将开关 2 拨到 ON 端,使设备仅启用两个通道,以兼容旧版内核。
部分旧版 Linux 内核也可以通过补丁启用四路 CAN FD。详情请参考:旧版 Linux 内核的四路 CAN FD 补丁。
接线与使用
上电前请检查接线
确认电源极性、供电电压、CAN H/CAN L 引脚和终端电阻均符合目标设备的要求后,再接通电源。
选择 CAN 通道
USB-CANFD-HUB 提供编号为 0 至 3 的四路 CAN FD 通道。接线和连接软件时,使用的通道编号必须一致。
本章后续示例均使用 CAN 通道 0。
下图展示了电机连接到 CAN 通道 0 的方式:

接口名称对应关系
| 访问方式 | 适用平台 | 通道名称 |
|---|---|---|
| Linux SocketCAN | Linux | can0 至 can3 |
hex-gui 的 gs_usb 后端 |
Linux、Windows、macOS | gs_usb0 至 gs_usb3 |
在 Linux 上使用 SocketCAN
USB-CANFD-HUB 使用内核自带的 gs_usb 驱动,无需安装厂商专用驱动。SocketCAN 接口仍需在使用前配置位时序并启用。
请根据实际通道选择接口。以下命令配置 CAN 通道 0 对应的 can0。
推荐配置:
sudo ip link set can0 type can bitrate 1000000 sample-point 0.8 dbitrate 5000000 dsample-point 0.75 sjw 5 dsjw 3 fd on
配置完成后启用接口:
此后可以通过 can-utils、支持 SocketCAN 的程序或 hex-gui 访问 can0。
在 Windows 和 macOS 上使用
Windows 和 macOS 无需执行 Linux 的 ip link 初始化命令。安装并打开 hex-gui,在 Bus 输入框中选择实际使用的通道即可;例如,CAN 通道 0 对应 gs_usb0。
Linux 用户也可以选择 gs_usbN,通过 hex-gui 的用户态后端直接访问设备。

hex-gui 跨平台图形化工具
在 Linux 上,USB-CANFD-HUB 可以通过 SocketCAN 接入现有工具链。为了让 Windows 和 macOS 用户也能直接读写 CAN,我们开发了开源桌面应用 hex-gui。它内置跨平台 gs_usb 后端,可以直接访问 USB-CANFD-HUB,无需依赖 Linux 的 SocketCAN。
主要功能包括:
- 收发、过滤和记录 CAN/CAN FD 报文
- CANopen 报文解析与 SDO 读写
- HEX 43xx 系列电机的发现、参数配置、CAN ID 修改和运动控制
- 使用原始 CAN 帧调试达妙、M5Stack Unit RollerCAN 等第三方设备
可以从 Releases 页面下载已经打包的软件。下载前请阅读对应版本的说明,并选择与操作系统和处理器架构匹配的安装包。
推荐使用预编译安装包
从源码部署 hex-gui 需要配置 Rust、Node.js 和各平台的系统依赖。除非需要参与开发,否则建议直接使用 Releases 页面提供的安装包。
使用 CAN 分析仪
USB-CANFD-HUB 配合 hex-gui 可以图形化显示 CAN 报文的收发过程。将 CAN 设备连接到对应通道,然后打开 CAN Analyzer 即可开始使用。

下面通过几个示例介绍 CAN 分析仪的常用功能。
控制 HEX 43xx 系列电机(CANopen)
HEX 43xx 系列电机使用 CANopen 协议,因此本例使用 CAN 分析仪的 SDO 模式收发 CANopen 消息。其他 CANopen 设备也可以参考本节操作。

如上图所示:
- 使用 CANopen 时,建议开启 ① 处的 CANopen decode。
hex-gui会识别不同的 CANopen 通信类型,便于查看各类报文。 - 如需冻结接收窗口并检查某一帧数据,点击 ② 处的 Freeze。
- 如需发送 SDO 消息,选择 ③ 处的 SDO 模式。图中展示的是 SDO 读取操作,读写结果会显示在下方状态框中。
- 还可以在 ① 的右侧调整刷新频率,或在左侧选择按组显示,以便观察不同类型的 CANopen 帧。
使用图形化窗口控制 HEX 43xx 系列电机
详细操作请参考:使用上位机控制 HEX 43xx 系列电机。
控制其他 CAN 电机
CAN 分析仪可以收发标准帧、扩展帧以及 CAN FD 帧,因此也可以用于调试采用私有 CAN 协议的第三方电机。以下以达妙 DM-J4310 和 M5Stack Unit RollerCAN 为例。
达妙 DM-J4310 示例
免责声明
本节仅用于演示,不代替 DM-J4310 的产品文档。请先查阅该电机的官方资料并自行评估操作风险。下图所示命令发送成功后,电机将以 5 rad/s 运行。

如上图所示:
DM-J4310不使用 CANopen,因此先关闭 ① 处的 CANopen decode。- 选择 ② 处的 Send frame,编辑并发送原始 CAN 帧。选择扩展帧格式,输入对应的 CAN ID 和数据;发送后,中间的报文窗口会显示收发记录。
- ③ 表示该帧是接收(RX)还是发送(TX)。
- ④ 显示 CAN ID。
- ⑤ 显示帧数据。
DM-J4310 Motor Control
hex-gui 还提供专用于 DM-J4310 的图形化电机控制窗口,基本操作方式与 HEX 43xx 系列电机一致。
详细操作请参考:使用上位机控制 HEX 43xx 系列电机。

M5Stack Unit RollerCAN 示例
免责声明
本节仅用于演示,不代替 M5Stack Unit RollerCAN 的产品文档。请先查阅该电机的官方资料并自行评估操作风险。

如上图所示:
- 本例中的
M5Stack Unit RollerCAN不使用 CANopen,因此先关闭 ① 处的 CANopen decode。 - 选择 ② 处的 Send frame,编辑并发送原始 CAN 帧。选择扩展帧格式,输入对应的 CAN ID 和数据;发送后,中间的报文窗口会显示收发记录。
- ③ 表示该帧是接收(RX)还是发送(TX)。
- ④ 显示 CAN ID。
- ⑤ 显示帧数据。
Smart Knob
我们还提供适用于 M5Stack Unit RollerCAN 的智能力反馈旋钮固件。烧录固件后,通过 CAN 模式将电机连接到 USB-CANFD-HUB,再在 hex-gui 中进入 SmartKnob,即可将电机用作智能力反馈旋钮。

RollerCAN Control
hex-gui 还提供专用于 M5Stack Unit RollerCAN 的图形化电机控制窗口,基本操作方式与 HEX 43xx 系列电机一致。
详细操作请参考:使用上位机控制 HEX 43xx 系列电机。
