I have an issue with my odrive board: I want to use the UART native protocol with an Arduino MEGA, but it doesn’t work as expected. When using the ascii protocol everything works fine, so the Arduino and the UART communication is working.
However, as soon as i switch to the native protocol and send the raw bytes, i only get a response about every 5 to every 50 requests.
The bytes are always the same, for example requesting vbus_voltage. Also, the speed of the requests does not matter, i only get a response to about 5% of the requests, but when i do get a response, it is spot on. It seems like the ODrive just ignores the messages and only randomly accepts a few, without any pattern.
// This is the raw packet being sent
// It's responsible for requesting vbus_voltage
// This packet was taken from a USB sniffer from the official odrive tool, so it should work
{ 0xF4, 0x03, 0x02, 0x80, 0x04, 0x00, 0x53, 0x5E }
// This is the packet being wrapped in a stream for UART and it seems to work, but only sometimes
{ 0xAA, 0x08, 0x3D, 0xF4, 0x03, 0x02, 0x80, 0x04, 0x00, 0x53, 0x5E, 0xB6, 0x74 }
// I also tried other requests but the behaviour is always the same, no matter the data.
I either don’t get any response at all or one that’s spot on. It also shouldn’t be the CRCs since the packets are always the same…
What could be causing this? Any ideas?