From Waveshare Wiki
Jump to: navigation, search
2-CH CAN MiniPCIe.jpg

MiniPCIe(USB) to CAN
USB-CAN-B (1).jpg




The 2-CH CAN MiniPCIe expands two CAN interfaces, adopts standard MiniPCIe card size and can be easily installed on a laptop or industrial computer with MiniPCIe slot, and integrates two complete CAN isolation interface circuits. Supports Windows and Linux systems, comes with drivers, CANTools related software, secondary development examples and tutorials. Comes with a USB TO MiniPCIe adapter board, for connecting to the PCs or industrial control hosts via USB port to realize transceiver control, data analysis, collection and monitoring of CAN bus network. Compact in size and easy to use, it can be used for learning and debugging of CAN bus, and secondary development and integration into various applications that require CAN bus communication.


Model Industrial Grade MiniPCIe interface to CAN card USB to CAN interface converter/CAN-bus communication interface card/CAN protocol data analyzer USB to CAN FD interface converter, CAN/CAN FD bus communication interface card, CAN/CAN FD protocol data analyzer
USB Interface Operation Level 3.3V 5V (Power via USB interface, no external power supply required)
Connector MiniPCIe/USB USB-B
CAN/CAN FD CAN/CAN FD Channels Dual channel: CAN1 and CAN2 (independent and isolated, fully isolated, isolated voltage 3000V DC)
Interface Standard 1.25mm pitch Screw Terminal (OPEN6 5.08mm pitch)
Terminal resistor Each CAN channel has a 120Ω terminal resistor Each CAN/CAN FD has two built-in 120Ω, enabled via the switch
Baudrate 10Kbps~1Mbps (Configurable via the switch) 100Kbps~5Mbps (Configurable via software)
Protocol Support CAN2.0A and 2.0B, CANOpen, SAE J1939, DeviceNet, iCAN, and ISO 15765 protocol CAN2.0A and CAN2.0B protocols, complies with ISO 11898-1 standards
Transfer Speed The receiving and sending of each CAN channel can reach: 8500 frames/s 2000 frames receiving buffer and 5000 frames sending buffer per CAN/CAN FD channel
Transmit Buffer 2000 frames receiving buffer and 1000 frames sending buffer per channel (automatically retransmit when the transmission fails) 1500 frames receiving buffer and 64 frames sending buffer per channel (automatically retransmit when the transmission fails)
Indicator PWR Power Indicator
SYS System status indicator, normally off; keeps on when there is a bus error
CAN1 CAN1 channel indicator (blinking when sending and receiving data)
CAN2 CAN2 channel indicator (blinking when sending and receiving data)
System Support Windows Windows XP/7/8/10/11 (32bits and 64 bits)
Linux Raspberry Pi OS, Ubuntu (Jetson Nano), VMware virtual PC and so on. Does Not support the Linux system now, and the related drivers are under development.
Operation Temperature -40~85℃
Case / Aluminum alloy case + 3D flame-retardant insulating sheets on both sides (This design can provide better protection against metal tip discharge, also improves product safety, and extends service life)
Dimensions 51×30 mm 104 × 70 × 25 mm

Onboard Interface

2-CH CAN MiniPCIe Inter.jpg
2-CH CAN MiniPCIe Inter2.jpg


2-CH CAN MiniPCIe Dim.jpg

Windows User Guide

Driver Installation

Please install the 2-CH CAN MiniPCIe into the USB to MiniPCIe adapter and connect it properly to the PC via the USB interface. Once the hardware is detected, Windows will automatically launch the "Found New Hardware" installation wizard. Select "Install the software automatically (Recommended)." Click "Next" to continue.

  • Click "Next" to continue;

Image4-USB-CAN-B-Driver (1).png
Image4-USB-CAN-B-Driver (2).png
Image4-USB-CAN-B-Driver (3).png
Image4-USB-CAN-B-Driver (4).png

USB-CAN-B Tool Software

Download and Install

Download and unzip USB-CAN-B TOOL_EN, then run and install USB_CAN_Tool.exe.
USB-CAN-B-TOOL (1).png
USB-CAN-B-TOOL (1).jpeg
USB-CAN-B-TOOL (2).png
USB-CAN-B-TOOL (3).png
USB-CAN-B-TOOL (4).png
The first time to install the USB-CAN-B please make sure to check "run Engine". This installation package is needed for the application developed from the LABVIEW environment.

USB-CAN-B-TOOL (5).png
USB-CAN-B-TOOL (6).png
USB-CAN-B-TOOL (7).png
USB-CAN-B-TOOL (8).png
USB-CAN-B-TOOL (9).png
USB-CAN-B-TOOL (10).png

Directions for Use

The following instructions use the accompanying USB-CAN Tool for demonstration. If you need to use other host tools, such as CANTest and CANPro, please refer to ZLG-CAN Tool User Guide.

Connect the USB port of the device to the PC via USB and run the "USB-CAN-B Tool.exe" as shown below:
USB-CAN-TOOL image10.jpg

1.Title Bar

When the device is turned off, USB-CAN Tool V9.xx will be displayed, where V9.xx represents the current program version number; when a USB-CAN adapter is successfully opened, the model, serial number, firmware version number, and brand name will be appended to the above name.

2.Menu Bar

Most of the functions of this tool are in the menu, and the functions can be realized by clicking the corresponding menu.

3.Sending Setting Section

This section contains the setting information related to CAN information transmission, among which the "ID increment" function is that when sending multi-frame data, the ID value of the next frame of data is 1 greater than the ID value of the previous frame; The sent 8 bytes of data from a 64-bit number according to the byte order from low to high, and each time the data is sent, it is automatically incremented by 1. This function cooperates with the "receive incremental check" function to test the frame loss rate during high-speed transmission. Note: This function is generally used for internal testing and is not recommended for users. When the data length is set to be less than 8 bytes, it will be automatically filled with 0 and filled to 8 bytes.

4.Can Relay

The CAN relay function is configured in the menu "Device Operation" -> "Relay Mode Options". When configured in relay mode, the relay status will be displayed here. If you want to turn off this function, you can close in the menu "Device Operation" -> "Relay Mode Options". Note: After the relay function is enabled, the baud rate and other parameter settings are invalid, but the sending and receiving, and intelligent filtering functions can be used normally.

5.Intelligent Filtering Function

The two channels can be set separately, and the filter is only for reception. After enabling the filtering function, the ID in the filter list or the ID in the ID segment will be displayed and received, and the data outside the filter list will be masked and discarded. With flexible settings for intelligent filtering, any ID or ID segment can be allowed or blocked from being received.

6.Control Button

"Stop sending" - stop the current sending operation; "Send file" - store the sent frame information in a file in a specific format, and send it in the order of the frames stored in the file; "Open CAN reception" - the CAN receive is enabled, otherwise the CAN receiving function is in the "suspended" state, at this time the host computer will no longer display the CAN bus data received by the USBCAN device, but the USBCAN device is still receiving the data on the CAN bus; "Clear" - clear The contents of the current data list; "Real-time storage" - saves the real-time data to a file.

Note: Sending a file may be consistent with the file format saved by the real-time storage function, and the saved file can be sent directly in the form of a file.
7.Statistics Area

Includes one-way rate and receives incrementing parity error counters for channel 1 and channel 2. "Frame rate R" - receiving rate, unit: fps (frames per second); "frame rate T" - sending rate, unit: fps (frames per second); "Parity error" (internal functions are hidden by default) - —Receive data increment parity error counter, this value is the total number of dropped frames when receiving increment parity. 8. Data list
The list for displaying the data sent and received.

Please refer to the USB-CAN TOOL Debugging Software User Manual documentation for details.

Linux System User Guide


Support connection to mainstream 32-bit Linux system boards, take Raspberry Pi 4B as an example:

  • Connect the USB-CAN-A and Raspberry Pi via USB, connect the H and L ports of channel 1 of the USB-CAB-B to the H and L ports of channel 2 respectively.



  • Copy the following command lines of the C or Python sample demo to the Raspberry Pi terminal and run:
cd ~
wget https://files.waveshare.com/upload/1/1c/USB-CAN-B_Code.zip
unzip USB-CAN-B_Code.zip
sudo chmod 777 -R USB-CAN-B_Code
cd USB-CAN-B_Code/Raspberry/c/
sudo make clean
sudo make
sudo ./hello_cpp
  • The running effect of C sample demo is shown below:



cd ~
cd USB-CAN-B_Code/Raspberry/python/
sudo python3 python3-32bit.py
  • The running effect of Python demo is shown below:


Jetson Nano


Support connection to the mainstream 64-bit Linux system boards, take JETSON-IO-BASE-A as an example:

wget https://files.waveshare.com/upload/1/1c/USB-CAN-B_Code.zip
unzip USB-CAN-B_Code.zip
sudo chmod 777 -R USB-CAN-B_Code
cd USB-CAN-B_Code/Jetson/c
sudo make clean
sudo make
sudo ./hello_cpp



cd ~
cd USB-CAN-B_Code/Jetson/python/
sudo python3 python3-64bit.py




Sample Demo






Technical Support

If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)