The CANopen slave stack is a CiA 301 / 302 compliant CANopen device implementation for embedded systems. It gives a slave device the complete CANopen communication layer — PDO and SDO exchange, emergency (EMCY) messaging, SYNC and TIME handling and network management — on top of any classic CAN or CAN FD controller.
Inside the CANopen slave stack
The stack covers every service CiA 301 defines for a device: transmit and receive PDOs with flexible mapping, expedited, segmented and block SDO transfer, an EMCY producer with error register and history, and SYNC and TIME consumers. Network management follows the NMT slave state machine — Pre-operational, Operational and Stopped — with heartbeat production and consumption plus legacy node-guarding for supervision.
Object Dictionary, EDS/DCF and LSS
At the heart of the device is its Object Dictionary, and the CANopen slave stack gives you full control of it — defined statically at compile time for the smallest footprint, or built dynamically at run time, and generated or validated against your EDS/DCF electronic data sheet (CiA 306). Application callbacks fire on every read and write, so mapping process data and parameters to your firmware stays clean and explicit, while an LSS slave (CiA 305) lets a commissioning master assign the node-ID and bit rate over the bus.
Portable, hardware-independent CANopen
The CANopen slave stack carries no third-party dependencies and runs on any MCU, any RTOS or bare metal. Because it covers both classic CAN 2.0A/B and CAN FD — up to 1 Mbit/s on the arbitration phase and up to 8 Mbit/s on the CAN FD data phase — a single code base scales from an 8/16-bit classic-CAN node to a high-bandwidth design with no vendor lock-in. It also coexists cleanly with the CANopen Safety (CiA 304 / SRDO) layer when the device needs functional-safety communication.
Where the CANopen slave stack fits
You’ll find the CANopen slave stack in sensors, actuators, drives, I/O modules and gateways that must appear as a conformant CANopen device on an industrial network. It’s a natural fit for factory automation, off-highway and mobile machinery, medical devices, laboratory and building automation — anywhere a device has to join a CANopen network over CAN or CAN FD.
Standards and conformance
The CANopen slave stack implements the CiA specifications behind every CANopen device: CiA 301 (application layer and communication profile), CiA 302 (network management), CiA 305 (LSS) and CiA 306 (EDS). It ships as a ready-to-integrate binary with a documented API and a sample application, backed directly by the engineers who wrote it.