My leading hypothesis is that what we’d originally attributed to CAN problems is actually something like the watchdog events you describe. The problems correlate with software delays, regardless of the CAN configuration. The pauses we’re seeing are extremely brief though - feels like 100-200ms. Could the watchdog events explain a shorter pause as well? It seems to fit. I suspect (but can’t prove) the bugs in our code (multiple instantiations of the PDP class) were causing the code to wait around too long for CAN messages to arrive, making it seem like CAN errors correlated with the motors pausing. But in reality, it seems more likely it was the timeline abuse that was causing the problem.
We’ll check for those watchdog events next time we get a chance. Thanks for filling us in, I had no idea that information was there!