CANopen protocol nodes

Hello everyone,

Who can help with advice. I have MSI controller (Node-Red inside) with CanBus port. Are there special nodes for CanOpen?

I need connect Joystick(CANopen) and radio control (CANopen).

Thank you!

If you have searched and not found any then it is likely there aren’t any.

What is the model of this device or can you share a link with the specifications ?
As Zenofmud said if you could not find anything in Node-RED library then it is likely that there is any contrib-node already available. I just add that you can search also in NPM to see the availability of Node.JS modules. If they are available and suit your needs and requirements then you can make them available to Node-RED easily.

There is a node js implementation. you could make a node-red node for everyone to use and contribute to...

Would be interested in this too. I have made a setup with CanBerry extension board and RPi, which works quite fine with CAN and standard drivers for MCP2515.
Now I want to make a kind of dashboard, which would show me latest PDOs from CANopen devices.

The question to Steve-Mcl - can you share some manual on how to implement a node from the .js code? I have a limited knowledge there.

There is also another implementation for CanOpen: https://github.com/CANopenNode/CANopenSocket
But I have no Idea how to bind this into NodeRED. Perhaps using some file-based mechanism? E.g. one application writes into file, and NodeRED reads from it, and vice-versa?

Terrible idea haha (my opinion :wink: )

There is a very good example in the docs to get you started. https://nodered.org/docs/creating-nodes/first-node

If you are new to programming it will take some learning to get it done but it will also be a very rewarding experience.

Give it a go & we will help when you get stuck.

Well, I'm not new to programming itself, but just to this specific approach.

The problem is that I just wanted to build a kind of quick proof of concept, which would just help me with other tasks on my project. I didn't plan to invest time into programming, as there are many other things which should play together before it works, and it would be quite disappointing if I do this work to find out later, that this implementation is not compatible with my CAN interface...

That's why I liked the file idea. Even if it sounds terrible, it can solve my(and perhaps other's) problem for less time!

You can easily POC without writing a node-red node.

Fire up a node instance and start typing. Or use the example - if it works you have a few choices....

  • Make a node (great for community)
  • Add a reference to the nodejs lib in settings.is and do it in a function node (quick solution)
  • Run it from a separate nodejs instance and use something to pass data into node red (clumsy imo- but doable)
  • Find another application that has a means of sending data to node-red (UDP/TCP/rest/MQTT)
1 Like

Actually there are a few CAN nodes already available - such as node-red-contrib-socketcan and node-red-contrib-canbus

I'm going to try with them first, before moving to CANopen. Actually to send/receive PDOs not so much else is required.