Talon CAN bus IoT Expansion


I’m developing a project on FX30s. I’m pretty new to this and would like to know how to enable the CAN bux IoT card.
I found a few instructions on how to enable it with MangOH Red, but still couldn’t find anything for the FX30.

Thank you very much!


Hi cporto,
The canbus iot card isn’t officially supported on the FX30, so there isn’t a document available. Have you tried the mangOH instructions? The kernel configuration should be the same. However, there are differences with the IOT UART and GPIO. Let me know if you need more information.




I would like to help and share my experience developing using the Talon CAN bus IoT Expansion Board.

Even though it is not officially supported, I was able to make it work using a little bit of different information that I found online.
Here are the steps required to enable it on FX30S, I use the Developer Studio for Windows:

  1. First you will need to create a new system project and add the CAN modules. I got the CAN modules from Mangoh project, https://github.com/mangOH/mangOH/tree/master/linux_kernel_modules
    I just downloaded the whole linux_kernel_modules folder and added that to my system project.

  2. Added this lines to the .SDEF based on the Mangoh project:


  1. Compile the project and flash the unit. Restart the unit and you will see the modules under /legato/system/current/modules

  2. Now you need to enable the board. Create a script to initialize the CAN board and enable it. Also based on Mangoh project and some other posts that shared the right ports mapping between Mangoh Red and FX30. This script needs to be executed every time the system is restarted. You can automate that process.


export PATH=$PATH:/sbin

drv_file=find /legato/systems/current/modules/ -name "*mcp251x.ko"
drv=basename $drv_file
# remove the driver
rmmod $drv

#Take IoT card out of reset
echo 6 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio6/direction
echo 1 > /sys/class/gpio/gpio6/value

# Enable level shifter on the CAN IoT card
echo 33 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio33/direction
echo 1 > /sys/class/gpio/gpio33/value

modprobe can &&
sleep 3 &&
modprobe can-dev &&
sleep 3 &&
modprobe can-raw &&
sleep 3 &&
modprobe mcp251x &&
sleep 3

# Bring driver back & iproute2 add in CAN
insmod $drv_file
ip link set can0 type can bitrate 500000 triple-sampling on
ifconfig can0 up

  1. You can see that device is available if you do “ifconfig”

Hope it helps future people working on similar projects.

Caio Porto