Libcanard for UAVCAN/CAN v1 is released

why libcanard v1.0 protocol not backward compatibility?

Yes. This may (or may not? only @scottdixon knows) happen next year, though.

Here, read this:

1 Like

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.

1 Like

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

  1. Included @extent in the DSDL file, and used Nunavut to generate appropriate serialization code.
  2. Named the data-type identifier as an unregulated fixed-port type, in a different root namespace following v1 specification.

Questions:

  1. 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) from 0x7FFFU to 0x1FFFU (in v0 canard.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?
  2. Do I need to take care of the toggle-bit in (received) payload frames as touched upon here?

Side notes:

  1. Was able to verify the reception (and decoding) of v1 Canard RX transfers using SocketCAN media-layer.
  2. 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.

1 Like

Thanks a lot for your reply and confirmation. For now, Iā€™ve migrated the ESC firmware to use UAVCAN/CAN v1.0.

2 Likes