Updating ESCs with secondary protocol

Hi everyone,

I want to update my ESCs which have an ATSAMC21. I have a FMU (STM32 F4) running the PX4 flight stack to communicate with the ESCs. To update an ESC I use a secondary protocol that directly communicates with the MCU on the ESC. Using libuavcan, I achieve this by using the function injectTxFrame(...). Each frame sent by the FMU is answered by the ESC. When only one ESC is connected to the FMU the update works. But when two or more ESCs are connected to the same bus the update fails after some frames because the FMU doesn’t receive the answer from the ESC although the answer is sent by the ESC (checked it with the UAVCAN-GUI).

Do you’ve an idea what the issue might be?

Thank you in advance!

It looks like a CAN ID conflict that manifests selectively depending on the type of the receiving CAN hardware. I can’t really offer much help here not knowing what protocol you are dealing with and how your interaction with ESCs is built. Perhaps I could help if you shared a bit more info.