Beaglebone Blue[CAN] with VESC for Robotics


I want to build a quadruped robot, for that I need to control multiple VESC attached to the CAN bus.

Beaglebone Blue which has CAN, will send out POSITION COMMAND to each VESC individually, and should also read ENCODER value from each VESC independently.

I know that VESC has CAN bus forwarding option which won’t be useful in this case because, they have one master VESC which receives input from ADC/PPM and forwards it to the the remaining VESC.

My question is, Will it be possible to dump the firmware change made in this repository and use the & from rover_control in Beaglebone Bluefor my purpose?



Are you using the AS5047 encoder as mentioned in this post?

If so, you can download the firmware bin file from this folder:

And you should be able to use the and files on your beaglebone. You do need a USB to CAN bus adapter though, since I haven’t written any code to use one VESC as a master using CAN forwarding (my library does not ever talk to the VESC over USB). If you use the CANable USB adapter, the code should run readily.

Note that on the raspberry pi, I run the following command to get the CAN bus working on each run:

ip link set can0 up type can bitrate 1000000

That happens here:

Please let me know if this works for you! I’m happy to answer any other questions! :slight_smile: