I have not been able to find any information on CANBUS communication. Is there any documentation anywhere? I am looking to communicate through CANBUS due to its robustness over UART. Robustness is extremely important in my application.
I too am trying to communicate over CAN and I asked about this a few months back on vedder.se forums. Here is what Ben said:
I would read through the code and see what you can get from it. I have not dug too deep into it yet but I will soon hopefully. Once I get my setup working, I am planning on doing some examples and tutorials for the community.
Thanks much Josh! I'll see what I can do
Thanks a lot Josh !
I'll need it as well to communicate with a BMS.
Keep us updated ! ;)
hi,friends,I also have the same needs. How is your work going?
Any updates on a unified manual/instruction documentation for communicating with the VESC over CAN?
Aside from the info in Josh's post above, no. As will most VESC things you'll have to reverese engineer it from the source code.
Ah, I see.
That's not very promising. I'm new to all this, so looks like it'll be a while before I get any kind of solid footing. Thank you for your prompt response, though!
I know this is a silly question, but are there any other resources that have started off reverse engineering and successfully using CAN data from VESC hardware? I've tried using an Arduino to read data from the CAN bus at 500K rate, but no luck. It doesn't seem to be picking up anything. I'm of the opinion I have to send a trigger message to the VESC hardware to make it send back status data to me.
I'll keep an eye out on the forums for any kind of resources that may surface.
I've added CAN frame description and packet/ID decoding for VESC 6 into a spreadsheet linked in my Github, for anyone in the future that comes across this.
Thank you for sharing! Will try it soon
I've created both Arduino/C and CircuitPython implementations of a CAN bus reader for a VESC and VESC-compatible BMS (ENNOID-SS).
Here is a link to the CircuitPython implementation:
This method uses the emitted messages from the controller and the BMS but I've also used the commands to request values over CAN.
I've just started tinkering on Vescs and i want to use can to control it. Ive first started by probing the can bus and decoding the contents on the bus. After looking at Tinkerer's spreadsheet and the command lists, I figured that the can updates the can transceivers buffer with values. I wanted to figure what values is it updating in the buffer. Any suggestions on this?