About Cyphal serial transport and libserard

Hi, we have successfully integrated cyphal with libcanard in several of our products (small satellite radios).

We are now looking into adding cyphal over serial (rs422) as a fallback transport, but we cannot find any working implementation of libserard or any other example.

The only repository with some code is this: GitHub - OpenCyphal-Garage/libserard: A compact implementation of the Cyphal/serial protocol in C for high-integrity real-time embedded systems , but it contains only headers without any implementation.

If a working/beta implementation of libserard is not available, could we implement that ourselves by following the specification ?

We saw that yakut already supports serial transport and we can receive and decode the generated messages, but how do we pass the received frames to the upper layer ? Does exist something like a ‘canardRxAccept’ but for serial ?

Thanks for any input/help on the issue :slight_smile:

Our very own @coder_kalyan has been working on the implementation in his fork of libserard:

He asked me to provide feedback on his work to eventually merge it into upstream, but I’ve been postponing that for a lack of time – sorry about that. I will pick it up as soon as time permits, but for now, consider using his fork as-is (YMMV). If you happen to have any feedback, feel free to open tickets and send pull requests.

Sorry for the delays.

Thanks a lot for the quick reply :slight_smile:

We plan to integrate and test the code next week.

We are happy to try it and give feedback as soon as possible.

1 Like