Resetting a node is typically performed by the CANopen master via NMT protocol messages. This is done by the CANopen stack without any necessary actions by the application.

The CANopen stack provides a service function to reset the node by the application. The following line initiates the reset of the node.

CONmtReset(&demo.Nmt, CO_RESET_NODE);

There are two different kinds of resets possible:

The internal behavior of the CANopen stack is shown in the following diagram: