UUID gone from binary protocol?

Hi,
I recently updated and started using the binary protocol
The issue I’m having is that I cannot find the UUID in the JSON tree and I was wondering if this is on purpose
I mean it is a very useful feature for systems with more than one ODrive

Thank you!

This was not on purpose, feel free to add a endpoint to access the UUID.
If you get it to work, please do make a pull request.
Let me know if need help with any of this.

Thanks for the quick reply!
I would like too but unfortunately my C skills are not advanced enough to do it the proper way so I’ll probably hack something locally until the feature comes back
I figured that the UUID comes from utils as 3 ints but not sure how to convert to string and where to initialize the variable or how to expose strings as there are no string samples in the fields exposed through the JSON tree
So my plan is to expose 3 ints as 3 endpoints and initialize them in the motor initialization method and then convert on the host after reading them

Okay cool. Actually exposing them as 3 ints is also how I would do it. Also instead of making 3 new ints that you initialize, you can directly bind to the UUID addresses. Something like this:

Endpoint::make_property("UUID_0", (const uint32_t*)(ID_UNIQUE_ADDRESS + 0*4));
Endpoint::make_property("UUID_1", (const uint32_t*)(ID_UNIQUE_ADDRESS + 1*4));
Endpoint::make_property("UUID_2", (const uint32_t*)(ID_UNIQUE_ADDRESS + 2*4));

Let me know if you can get something like that to work? If so, can you please make a PR with that improvement? Thanks!

Done
https://github.com/madcowswe/ODrive/pull/99

Awesome! Thanks for your contribution! I assume you tested it and it works? ;D

yes, of course…I got an answer from it but have no idea how to check if it’s accurate

Just check that it’s the same every time I think should be sufficient

Yes, it is, that’s how I’m telling them appart

1 Like