The issue appears when two different devices are running CANopenNode on the same CAN bus.
I have observed that the problem occurs most frequently during:
- LSS-based scanning and node assignment
- SDO communication
Problem behavior
Initially, it seemed that the device not being debugged was responding late. However, after further investigation, I have confirmed that the issue actually originates from the device being debugged
After debugging session is stopped while the CANopen stack is running, the following behavior is observed:
- The debugged device starts responding very slowly or incorrectly
- SDO communication fails
- LSS scanning and node assignment become unreliable
- SDO abort errors are observed (e.g.,
0x06040043 – parameter incompatibility)
Once this condition occurs:
- Retrying the request does not recover communication
- The system remains stuck in this faulty state
Important observation
-
The issue is triggered specifically when:
- Debugging during CANopen execution
- Using step-over / line-by-line debugging
-
The issue does NOT occur if:
- Debugging is performed before the CANopen stack starts
-
This problem do not occur currently when debugging session is not done for now.
Recovery methods
The only ways to recover are:
- Performing a full device reset, after which communication works again
- Performing a CANopen communication reset, which also restores operation
- Sometimes increasing the timeout of the SDO (time_difference_us and SDOtimeoutTime_ms) resolves the issue but the system and SDO become very slow and eventually fail as well. I am following the SDO code given here : https://canopennode.github.io/CANopenNode/group__CO__SDOclient.html
However, this issue should ideally not occur in the first place.
How to reproduce
- Connect two CANopenNode devices on the same bus
- Start normal CANopen communication
- Begin debugging one device
- Step through the firmware (step-over) while CANopen is running
- Stop the debugging session
- Now the SDO communication or LSS communication must start to let the problem occur. Also try to call them consecutively as well in a loop.
After this, the communication problem appears consistently once it starts occurring.
Similar issue
My issue seems very similar to the one reported here:
#89
Screenshots
SDO
Overall :

SDO request:
SDO response:
Abort SDO:
LSS
LSS Timed out after this:

Request
I would appreciate any guidance on how to resolve this issue, as I am currently blocked by it.
I would be happy to provide any additional information if required.
The issue appears when two different devices are running CANopenNode on the same CAN bus.
I have observed that the problem occurs most frequently during:
Problem behavior
Initially, it seemed that the device not being debugged was responding late. However, after further investigation, I have confirmed that the issue actually originates from the device being debugged
After debugging session is stopped while the CANopen stack is running, the following behavior is observed:
0x06040043 – parameter incompatibility)Once this condition occurs:
Important observation
The issue is triggered specifically when:
The issue does NOT occur if:
This problem do not occur currently when debugging session is not done for now.
Recovery methods
The only ways to recover are:
However, this issue should ideally not occur in the first place.
How to reproduce
After this, the communication problem appears consistently once it starts occurring.
Similar issue
My issue seems very similar to the one reported here:
#89
Screenshots
SDO
Overall :

SDO request:
SDO response:
Abort SDO:
LSS
LSS Timed out after this:

Request
I would appreciate any guidance on how to resolve this issue, as I am currently blocked by it.
I would be happy to provide any additional information if required.