USBtingo - USB to CAN-FD Interface
USBtingo is a performant USB to CAN-FD interface with hardware timestamping and logic analyzing feature.- Classic CAN (up to 1 MBaud) and CAN-FD (up to 8 MBaud)
- High-Speed USB (480 MBit/s), micro-USB connector
- USB powered (no isolation between USB and CAN)
- Open source Python library (Windows, MacOS, Linux)
- Hardware timestamping and message filtering
- Logic analyzer function: sample logic levels on CAN-RX with up to 40 Msps
- 120 Ohm termination via jumper
- Bootloader for firmware updates
Contents
Software
A Python library is available for easy and rapid development on different operating systems.Python library "python-can-usbtingo" (Windows, MacOS, Linux)
python-can-usbtingo is a Python library based on the popular package which allows easy, platform-independent access to CAN busses.
Installation
The easiest way to install the library is using pip:pip install python-can-usbtingo
Drivers
Linux, MacOS X, and Windows (version 8.1 and above) do not require additional drivers. For older versions of Windows, you can use to install "WinUSB" driver.Example
Send a frame and wait for incoming message:import can with can.Bus(interface="usbtingo", bitrate=125000) as bus: msgtx = can.Message(arbitration_id=0x123, is_extended_id=False, data=[0x11, 0x22, 0x33, 0x44]) bus.send(msgtx) msgrx = bus.recv() print(msgrx)Further examples can be found on the .
Graphical interface tool "USBtingoGUI" (Windows, MacOS, Linux)
Graphical interface tool for sending and receiving CAN(-FD) messages based on the python library. Installation and usage:
pip install USBtingoGUI python -m USBtingoGUI
Logic analyzing with PulseView (Windows, MacOS, Linux)
With the logic recording function (USBtingoGUI -> Logic), the logic level on the CAN RX line can be captured and then analyzed with PulseView.
Firmware
Firmware download
The firmware of USBtingo is available as precompiled BIN file:USBtingo_v1.00.zip Version v1.00 - First public version
Firmware update via bootloader
The bootloader can be started by a command via USB or by shorting the bootloader jumper on the board while plugging to USB. Use bootloader application to load the new firmware into the flash of USBtingo:pip install mboot mboot -t 0x1FC9:0x0022 erase -m mboot -t 0x1FC9:0x0022 write USBtingo_v1.00.bin mboot -t 0x1FC9:0x0022 reset
Hardware
Schematic - USBtingo's circuit diagram
Documentation
USBtingo EB - Datasheet (PDF)
USBtingo - Schematics (PDF)
Troubleshooting
Linux: "LIBUSB_ERROR_ACCESS" as non-root
Add udev rule to give permissions to all users.sudo bash -c $'echo \'SUBSYSTEM=="usb", ATTRS{product}=="USBtingo", MODE="0666"\' > /etc/udev/rules.d/50-USBtingo.rules' sudo udevadm control --reload-rules
Gallery
Please tell me about your USBtingo project!
Analyze CAN bus messages on an e-Bike equipped with a Bosch PerformanceLine motor.
By Klaus G. (01/2024)
By Klaus G. (01/2024)
Vadym has designed a 3D printable enclosure for the USBtingo EB.
STL 3D file: Top.stl and Bottom.stl
By Vadym V. (02/2024)
STL 3D file: Top.stl and Bottom.stl
By Vadym V. (02/2024)