I have a CAN bus system with several nodes. One of the nodes is a Pixhawk, which is the flight computer for my system. Previously, the Pixhawk was the only node to output anything on the bus, and the other nodes just listened.
Now, I’d like these other nodes to output status information on the CAN bus so this information can be read by another device. The status information is broken up by UAVCAN and a multimessage is sent. The trouble I’m running into is this: it seems that sometimes parts of the multimessage from the Pixhawk and parts of the multimessage from the other node get entangled (all the frames of a single multimessage are not sent consecutively, but are interspersed with frames from the other multimessage), and a receiving node is unable to reassemble either multimessage. After the first instance when the messages become entangled, the receiving node seems unable to recover and receive any messages/multimessages in the future.
Is there something I need to reset to allow the CAN node to recover from missing the end or beginning of a multimessage? A counter or the toggle bit?