Skip to main content
KMew
Senior III
February 24, 2023
Question

CANbus: Check if CAN message failed to send X number of times

  • February 24, 2023
  • 1 reply
  • 685 views

Hello,

I am working on a CANbus communication with a critical system component that, if it is NOT communicating, portions of the systems should be shut down. I am trying to come up with a way to determine if communication is lost, but I feel like the solutions I'm coming up with are way more complicated than they need to be.

One feature that I noticed is AutoRetransmission in the CAN configuration. So it will try to resend the message if it does not get an ACK from the device it's communicating with. Is there a way to keep track of how many transmission attempts have occurred with no response from a specific node? If so, then I can just say "If the message failed to send X times, then communication is lost and react accordingly."

Does anyone know if this exists and, if so, how to implement something like this?

For reference, I am using the STM32H7B3IIT6 MCU.

This topic has been closed for replies.

1 reply

mƎALLEm
ST Technical Moderator
September 22, 2026

Hello,

There is no way to know about the node that hasn’t acknowledged the frame.

You need to know that if you send a frame to a specific node, all CAN nodes received that will acknowledge the frame if they are not the ID recipients. The only information you get is that frame was acknowledged by other nodes or not.

For you case you need to implement a software mechanism where the node recipient should send a software ACK in the data field to know if the frame has been well received (same implementation of the ST bootloader).

Hope that helps you and others ..

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.