.. _external_module_cannectivity: 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 :ref:`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``: .. code-block:: yaml 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: .. code-block:: c #include Please see the header file for the API details. .. _CANnectivity: https://github.com/CANnectivity/cannectivity .. _gs_usb driver: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/can/usb/gs_usb.c .. _python-can: https://python-can.readthedocs.io/en/stable/interfaces/gs_usb.html