I am currently debugging an actuator which is intended to be able to “natively” communicate over UAVCAN.
After doing initial testing with the provided adapter and software, I attempted to use it with an autopilot, to no avail. After debugging the autopilot’s arrayCommand outputs (found no issues there), I turned my attention to seeing the activity from the provided adapter and software.
What I found is that, despite the adapter communicating with and properly operating the servo, I see zero inbound CAN frames via the Babel in GUI Tool’ CAN Bus Monitor.
If a CAN frame is malformed (e.g. not in line with the UAVCAN specification, but still a “CAN” frame) is there a way to view the raw frame, beyond what the GUI Tool and frame_hook example displays?
I wish to narrow down whether I have a hardware compatibility issue on my hands (e.g. incompatible signal levels, inverted logic, etc.) or an implementation issue with the servo’s communications.
The UAVCAN GUI Tool has a tool labeled “Bus Monitor” (with a bus icon). It will display all CAN frames, even non-UAVCAN-conforming ones, so you can use that for diagnostics.
I have been using the Bus Monitor functionality, without any success yet.
I’ve found one clue now, in that sending a single position command from the provided adapter and software to the servo sets the receive_error_counter stat in the SLCAN Adapter Control Panel to 255. It would seem there is something drastically wrong with what the adapter is sending out, even though the servo is perfectly content with it.
I believe I may have an electrical compatibility problem on my hands, unfortunately.
That said, it would seem to be a problem on the servo manufacturer’s part, so I thank you for the assistance.
Yes, it sounds like a connectivity problem, indeed. The usual suspects to check are whether the bus is properly terminated and whether the bit rates of all involved nodes match. Good luck!