Board Porting Guide

Hardware Requirements

Since the CANnectivity firmware is based on the Zephyr RTOS, it requires Zephyr support for the board it is to run on. The board configuration must support both an USB device driver and at least one CAN controller.

Check the list of supported boards in the Zephyr documentation to see if your board is already supported. If not, have a look at the instructions in the board porting guide.

Board Configuration

By default, CANnectivity relies on the devicetree zephyr,canbus chosen node property for specifying the CAN controller to use. If a devicetree alias for led0 is present, it is used as status LED. This means that virtually any Zephyr board configuration supporting USB device, a CAN controller, and an optional user LED will work without any further configuration.

Advanced board configuration (e.g. multiple CAN controllers, multiple LEDs, hardware timestamp counter) is also supported via devicetree overlays. Check the description for the cannectivity devicetree binding app/dts/bindings/cannectivity.yaml and the example devicetree overlays under app/boards/.