You are here

CANopen integration

4 posts / 0 new
Last post
blevruz
Offline
Last seen: 5 days 6 hours ago
VESC Free
Joined: 2022-10-05 10:18
Posts: 2
CANopen integration

Hello,

I've been working on an integration of the CANopen protocol (as implemented by Embedded Office's CANopen Stack) with VESC, on this github repository.

I am new to this project, and would be grateful for feedback and advice on what to do before opening a pull request!

The current objective list is:

  1. Add build options for using canopen-stack (done)
  2. Add canopen-stack drivers (done)
  3. Allocate memory for, and build an object dictionary (done, 256 3-word-long entries starting at 0x08080000 currently)
  4. Add a canopen-stack thread (repurposed the can read thread for this)
  5. Test canopen-stack T- and R-Pdo (done)
  6. Test canopen-stack Sdo
  7. Implement an example motor setup (work in progress)

My repository contains a simplistic test application that I will flesh out as features become usable.

Looking forward to reading your thoughts!

benjamin
Offline
Last seen: 1 week 5 days ago
VESC OriginalVESC Platinum
Joined: 2016-12-26 15:20
Posts: 486

Nice work, many people have been asking about CANopen support. I think this might be better as a VESC Package:

https://github.com/vedderb/vesc_pkg

VESC Packages are a new feature that I'm working on that allows making an independent module that can be installed on the firmware during runtime. I think everything you need is already in place except that I should add a can-mode that disables the existing can-decoding and just relies on the custom handling. I will that can-mode asap.

blevruz
Offline
Last seen: 5 days 6 hours ago
VESC Free
Joined: 2022-10-05 10:18
Posts: 2

Thanks for the feedback!

I have no experience with LISP, this would be a good learning opportunity. I'll try to make a package once the C version is working well enough for my project.

benjamin
Offline
Last seen: 1 week 5 days ago
VESC OriginalVESC Platinum
Joined: 2016-12-26 15:20
Posts: 486

I was thinking of a C version as a compiled package, it is probably difficult to translate that library to lisp.