CANnectivity USB to CAN adapter firmware
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 Zephyr RTOS, allows turning your favorite microcontroller development board into a full-fledged USB to CAN adapter.
CANnectivity is licensed under the Apache-2.0 license.
Usage with Zephyr
The CANnectivity firmware repository is a Zephyr module which allows for reuse of its components (i.e. the “gs_usb” protocol implementation) outside of the CANnectivity firmware application.
To pull in CANnectivity as a Zephyr module, either add it as a West project in the west.yaml
file or pull it in by adding a submanifest (e.g. zephyr/submanifests/cannectivity.yaml
) file
with the following content and run west update
:
manifest:
projects:
- name: cannectivity
url: https://github.com/CANnectivity/cannectivity.git
revision: main
path: custom/cannectivity # adjust the path as needed
Once CANnectivity is added as a Zephyr module, the “gs_usb” implementation can be reused outside of the CANnectivity firmware application by including its header:
#include <cannectivity/usb/class/gs_usb.h>
Please see the header file for the API details.