I saw that the CAN bus could be accessed by the io expansion port, but unfortunatly the can bus pins are not exposed on the provided io expansion port connector. How can I access it, am I obliged to build my own pcb expansion port connector to achieve it?
There is a CAN Controller on the compute board and a second CAN controller on the flight controller. Which one are you trying to access?
For the CAN Controller on the compute board, it is connected to the processor's SPI interface on bus 1, chip select 0. You can access it via spidev as /dev/spidev1.0
Hope this helps!
thanks for your answer, but what I wanted to know, is how I can access to the CAN bus physically? as the CAN bus pins are not exposed in the IO expander connector.
The CAN bus pins are not exposed on the 80-pin IO Expansion connector. You will need to design your own expansion connector to access the CAN bus pins. An alternative to designing your own expansion connector would be to solder directly on the 80 pin connector. This will require the right tools and expertise as the pitch of the connector pins are very narrow.
Thank you for your patience.
In previous software releases prior to v1.6.1 the can bus was accessed via SPI bus 1 with chip select 0. On version 1.6.1 we added instructions to the wiki on how to configure/use the CAN bus via socketCAN.
https://github.com/intel-aero/meta-intel-aero/wiki/94-(References)-Sensors-GPIOs-LEDs-CAN-bus# example-socketcan-configuration https://github.com/intel-aero/meta-intel-aero/wiki/94-(References)-Sensors-GPIOs-LEDs-CAN-bus# example-socketcan-configuration
Hope this helps.
We found the problem, it is due to the FPGA code which is not correct. We will post the fix to your github. There are still caveats in your FPGA documentation but now we know how to access the FPGA by ourself as we modified the code.