ROBOTIS-GIT / Dynamixel2Arduino

DYNAMIXEL protocol library for Arduino
Apache License 2.0
87 stars 55 forks source link

Protocol 2 FastSyncRead - API should be added to the library #95

Closed KurtE closed 2 months ago

KurtE commented 2 years ago

I am not sure when this was added and what servos support it. I did update my Hexapod with XL430-W250 servos to the current released firmware... There is also a fast bulk read, which I have not tried yet.

I have been playing around a little lately, with the Saleae Logical Analyzer stuff. Earlier I created a Low level analyzer for Dynamixels... But thought it might be interesting to try to create a new High Level Analyzer for the new Logic Software... It is taking me awhile as I really don't know Python language... But I do have a version working reasonably well.. Needs some cleanup.

While doing this I noticed a new? servo Command Fast Sync Read, so I hacked up a version of the SyncReadWrite example sketch and added new section of code to perform this on 6 servos... To get an idea of how well it might work... I have not put in the code to decode it fully within test sketch: Which I included, although not complete...

sync_read_write_position.zip

I was curious to see the differences in speed. Looking at it from LA:

The normal sync read: image Closer up showing my HLA output (blue line) image

The fast Sync Read image The difference in timing was pretty good went down from 6.6ms for the 6 servos down to 1.8ms

Side Note: I have not yet released the HLA into their Market Place, probably will soon... But it is up at: https://github.com/KurtE/SaleaeDynamixelAnalyzer_HLA

ROBOTIS-Will commented 2 years ago

Hi @KurtE I'm sorry about the super delayed response. The Fast Sync Read is implemented in the master class, but hasn't been added to the API documentation. I'll append this and as well as the Fast Bulk Read.

I believe you must have already seen it, but just in case, Fast Sync / Bulk read operation is explained in the video below. https://youtu.be/claLIK8omIQ

Thank you!