The RT-Labs CANOpen stack C-Open can be used to implement a CANOpen master or slave. It supports multiple instances and can be run on bare-metal hardware, an RTOS such as RT-Kernel, or on Linux or Windows.


CANOpen logoThe CANOpen stack is supplied with full sources including a porting layer. A slave application interfaces with the stack primarily using the object dictionary, while a master uses the full API to control the CANOpen network. It is designed for minimal foot print and efficiency (memory usage on Cortex M4, 14968 B ROM / 368 B RAM, plus user defined objects stored in RAM) and tested using the CANOpen Conformance Test Tool.

Price and documentation

How to obtainContact sales@rt-labs.com
Priceeuro 5000
Product categoryCommunication stacks
Link to documentationhttps://github.com/rtlabs-com/c-open
Link to downloadhttps://github.com/rtlabs-com/c-open


  • CANOpen master
  • CANOpen slave
  • CANOpen services (CiA 301)
  • Network management (NMT)
  • Service data objects (SDO)
  • Process Data Objects (PDO)
  • Emergency object (EMCY)
  • Heartbeat
  • Node guarding
  • Layer Setting Services (LSS, CiA 305)
  • Bare-metal or RTOS
  • Porting layer provided
  • Linux (SocketCAN)
  • Windows (Kvaser CAN interface)
  • Source code provided
  • Integration services available