Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CANoopEn — CANopen Stack C++/OOP

CANoopEn – CANopen Stack C++/OOP

CANoopEn is a CANopen protocol stack written in clean, object-oriented C++17 — designed for portability, testability and readability. The stack is completely target-independent and runs on any hardware architecture; ready-to-build samples are currently available for STM32 (bare-metal and FreeRTOS), with more platforms to follow. CANoopEn is developed and maintained by Xyntos GmbH.

  • Modern C++ instead of C macros — your device is a class deriving from CoSlave or CoMaster, the object dictionary is a class with typed entry objects, callbacks are virtual methods on listener interfaces.
  • Hardware-agnostic by design — the stack talks to your CAN driver through a single method; porting means implementing three small interfaces.
  • No dynamic memory allocation — everything is statically sized at compile time.
  • Scales down — every service (LSS, MPDO, block transfer, …) can be compiled out to fit small flash budgets.
  • Complete — NMT, heartbeat, PDO/MPDO, SDO server & client incl. block transfer, SYNC, TIME, EMCY, LSS (CiA 305), LED indicators (CiA 303-3), plus the CiA 417 lift application profile.
  • Tested — a comprehensive Google Test unit test suite runs on every commit.

Documentation & quick start

📖 The full documentation lives at CANoopEn.net:

Ready-to-build sample projects (bare-metal and FreeRTOS) live in the companion repository canoopendemo.

License

CANoopEn is licensed under the Apache License, Version 2.0.

About

CANoopEn is developed by Xyntos GmbH, a Swiss engineering company specializing in embedded software. If you need support integrating CANopen into your product — from device firmware to conformance — get in touch.