Code Monkey home page Code Monkey logo

Comments (2)

bryn51 avatar bryn51 commented on July 16, 2024

serial is simpler to develop and use. Can bus requires a library, and its a complex protocol. There are also different flavours of CAN to contend with. Thus deployment of CAN requires a number of decisions to be reached as to the exact flavour which engineering effort would be better directed to the electromechanical design of the robot which is the main focus of this project.
But I too think it would be better. CAN-FD/CAN Open would be the obvious choice if its supported by all the devices. If I get around to implementing my idea of refactoring the code into C++ then maybe I can look at that too. Meanwhile soldiering on trying to source the arts.

from open_robot_actuator_hardware.

thomasfla avatar thomasfla commented on July 16, 2024

It's true that CAN can be easier to work with, especially for the wiring part (number of wires, noise immunity). However, it also has its limitations and this is why we decided to switch to SPI instead.

  • The CAN frequency is limited to 1Mbps. In the ODRI project, we use SPI from 6 to 8Mbps.
  • The protocol is half duplex (you can only exchange data in one direction) instead the SPI protocol we implemented is full duplex, so the effective bandwidth is doubled.
  • The CAN frames need to be encapsulated with quite some overhead (address, framing header etc.)
  • The CAN frames are very short (8Bytes) making the header overhead even more problematic.
  • The addressing of CAN in not implemented yet in the uDriver (only one uDriver per CAN channel) and we have no manpower to work on this.

We are considering other solutions (CAN-FD, and RS485 at 12Mbps) with the new version of the motor drivers (still under test): https://github.com/open-dynamic-robot-initiative/open-motor-driver-initiative
It was not possible to implement this with the older electronics.

Sorry for entering so late in this conversation.
Best,
Thomas.

from open_robot_actuator_hardware.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.