why libcanard v1.0 protocol not backward compatibility?
Yes. This may (or may not? only @scottdixon knows) happen next year, though.
Here, read this:
- UAVCAN 2019 roadmap
- UAVCAN: a highly dependable publish-subscribe protocol for real-time intravehicular networking (section Brief history of UAVCAN)
The tacit plan is to develop and release libuavcan before the end of next year with incremental functionality being released throughout the year. This is not a solid plan, however, and relies on finding additional contributors to collaborate on this effort.
Hi @pavel.kirienko and UAVCAN developers,
Firstly a big thanks on your awesome work, developing and implementing the UAVCAN standard and now pushing it to v1.0.
My query on the above migration guide:
Setup: A dual-stack application. I have a set of ESCs using v0 libcanard and running on STM32G4 board. Iām trying to command them from a v1 libcanard publisher. The DSDL Iāve used is the one which worked with v0, but upgraded to v1.0 specification by
- Included
@extent
in the DSDL file, and used Nunavut to generate appropriate serialization code. - Named the data-type identifier as an unregulated fixed-port type, in a different root namespace following v1 specification.
Questions:
- Was hoping to get the reception of (v1) frames working on the ESCs as per the suggestion in the migration guide above i.e. changed the mask of
MSG_FROM_TYPE_ID(x)
from0x7FFFU
to0x1FFFU
(in v0canard.c
) to clear the most significant two-bits of the subject ID. Couldnāt get lucky with that; is there anything else Iām missing here? Would this dual-stack setup work? - Do I need to take care of the toggle-bit in (received) payload frames as touched upon here?
Side notes:
- Was able to verify the reception (and decoding) of v1 Canard RX transfers using SocketCAN media-layer.
- Updating the MSB bits as above on the ESCs having v0 libcanard didnāt seem to affect much, as they behaved as expected with v0-based commands sent from
uavcan_gui_tool
.
Cheers,
Ashish
Nope. UAVCAN v0 and v1 can coexist on the same bus, but they cannot communicate with each other. UAVCAN v0 is no longer recommended for new designs; I strongly advise you to get in touch with your ESC vendor and ask them to support UAVCAN v1 natively.
I think this answer renders the other questions irrelevant. Feel free to point your vendor to this forum if they need help getting v1 supported.
Thanks a lot for your reply and confirmation. For now, Iāve migrated the ESC firmware to use UAVCAN/CAN v1.0.