KDE Direct have created their own CAN bus protocol designed specifically for their ESC. It is soon to be supported in ArduPilot.
I have skimmed through the description and the ArduPilot setup guide, here they are attached:
I was delighted to see that the auto-enumeration and the ID allocation feature have been borrowed from UAVCAN and Sapog (that means that those ideas are valuable), and that they have adopted a similar approach to CAN ID conflict resolution (except that the chosen method of ID randomization is still collision-prone, but they don’t seem to require high levels of determinism/predictability).
The fact that they rely exclusively on point-to-point addressable transfers seems to go against the core principles of the CAN bus, but that is unlikely to create any significant issues in such a narrow use case.
The license stated in the documents is rather weird as it seems to prohibit any third parties from re-implementing/supporting this protocol, which seems to kind of defeat the purpose. Perhaps there is more hidden reasoning I am not aware of.
The legal restrictions put on the protocol and the mere fact that it seems to re-create the functionality already available in UAVCAN v0 are disappointing, as that increases fragmentation of the ecosystem. I guess we should extract some learning experience from this, but I am not quite sure yet what it would be. Opinions welcome.