I am prototyping an application that uses Cyphal via the serial interface. My setup consists of a sender embedded board with a Cyphal application. The board is connected via UART-Serial with a Linux PC. A connection check with picocom to analyze the bytes received was successful. In my Cyphal application I have build everything needed to recreate the example message of the specification 4.4.5 and used in upon a simple heartbeat.
The receiving side is prepared with the export of the appropriate variable
UAVCAN__SERIAL__IFACE="/dev/ttyUSB0". I listen for the example message or a heartbeat with the following commands of an installed Cyphal project (it works via Cyphal/Zubax/CAN, python files are present):
yakut sub 1234:uavcan.primitive.String.1 - example spec 4.4.5
yakut sub uavcan.node.Heartbeat or
There is no recognition of any correct messages. However, yakut recognizes wrong serial frames if the frame delimiters are set from or if a 0x00 is send on error.
I also reversed the situation. Yakut mon sends a heartbeat in of itself. I let my application print it out for me. What i recognized was that compared with the specification the crc32 of the payload is missing (24 bytes for header, 11 bytes for heartbeat - frame ends).
So there are a few questions:
- Is Yakut fully implemented for Cyphal/Serial?
- Am I missing some set ups/commands to let Yakut work properly with Serial?
- Is there an example like libcanard_Linux_example?