Introduction

CANnectivity is an open source firmware for Universal Serial Bus (USB) to Controller Area Network (CAN) adapters.

The firmware implements the Geschwister Schneider USB/CAN device protocol (often referred to as “gs_usb”). This protocol is supported by the Linux kernel SocketCAN gs_usb driver, by python-can, and by many other software packages.

The firmware, which is based on the Zephyr RTOS, allows turning your favorite microcontroller development board into a full-fledged USB to CAN adapter.

CANnectivity is licenced under the Apache-2.0 license. The CANnectivity documentation is licensed under the CC BY 4.0 license.

Firmware Features

The CANnectivity firmware supports the following features, some of which depend on hardware support:

  • CAN classic

  • CAN FD (flexible data rate)

  • Fast-speed and Hi-speed USB

  • Multiple, independent CAN channels

  • GPIO-controlled LEDs:

    • CAN channel state LEDs

    • CAN channel activity LEDs

    • Visual CAN channel identification

  • GPIO-controlled CAN bus termination resistors

  • Hardware timestamping of received and transmitted CAN frames

  • CAN bus state reporting

  • CAN bus error reporting

  • Automatic gs_usb driver loading under Linux using custom udev rules

  • Automatic WinUSB driver installation under Microsoft Windows 8.1 and newer

  • USB Device Firmware Upgrade (DFU) mode