by petercohen » Sat Nov 10, 2012 2:46 am
by petercohen
Sat Nov 10, 2012 2:46 am
Hello, we are trying to understand the examples provided in the document:
Product Information > Dynamixel > Communication > Kind of Instruction
Could anybody please let us know the answers? Thank you.
Q1. Example 6. Read the Model Number and Firmware Version.
a) Under Communication. Instruction Packet. Why there is a 00 03 before F5? What the 00 03 actually mean? Shouldn't the 03 be 02 because the address for Version of Firmware is 0x02?
b) Under Status Packet. Why there is a 00 between 40 and 08?
Q2. Example 10. Restricts the movement angle from 0 to 150 degrees.
Since 300 degrees is represented by a value of 1023, 150 degrees is represented by 511.5. Rounding off means 512 which in Hex is 0x0200. How come in the Instruction Package, it is represented in reverse order (i.e. 00 02)?
Q3. Example 13. We know that the maximum torque is 0x03FF which is 1023 in decimal. So, half of that is 511.5. In this example, they seem to use 511 which has a hex value of 0x1FF.
a) Not sure why because in my Q2, they rounded 511.5 to 512. Any idea?
b) Under Hint. Address = 0x0E. Why only lower byte address? We don't need to write down upper byte address as well?
c) 50% of maximum torque is 0x01FF. Why in instruction package, they write: FF FF 01 05 03 0E FF 01 E8 rather than
FF FF 01 05 03 0E 01 FF E8?
Q4. Example 16. Under Communication, Instruction Packet:
FF FF 01 05 03 18 01 01 DC
a) Why they only specify the lower byte of 0x18 Torque Enable? There is no need to specify the upper byte and also the address of the LED 0x19?
b) Is the reason 01 01 is that we want to turn on both the LCD and enable torque?
c) Why the checksum is DC? We got E2.
Q5. Example 17. Locates at the Position 180 degrees with the speed of 57RMP.
a) It sets the goal position (0x1E) to 512. I think 512 corresponds to 150 degrees not 180 degrees. Is it a typo?
b) The position address is: 0x1F 0x1E while the speed address is: 0x21 0x20. Why we only need to put 1E in the address part?
c) The data for position is 0x200 while that for speed is 0x200. I guess this can also be written as: 0x0200 and 0x0200. How come in the instruction package, it is written as:
FF FF 01 07 03 1E 00 02 00 02 D2 rather than
FF FF 01 07 03 1E 02 00 02 00 D2?
Hello, we are trying to understand the examples provided in the document:
Product Information > Dynamixel > Communication > Kind of Instruction
Could anybody please let us know the answers? Thank you.
Q1. Example 6. Read the Model Number and Firmware Version.
a) Under Communication. Instruction Packet. Why there is a 00 03 before F5? What the 00 03 actually mean? Shouldn't the 03 be 02 because the address for Version of Firmware is 0x02?
b) Under Status Packet. Why there is a 00 between 40 and 08?
Q2. Example 10. Restricts the movement angle from 0 to 150 degrees.
Since 300 degrees is represented by a value of 1023, 150 degrees is represented by 511.5. Rounding off means 512 which in Hex is 0x0200. How come in the Instruction Package, it is represented in reverse order (i.e. 00 02)?
Q3. Example 13. We know that the maximum torque is 0x03FF which is 1023 in decimal. So, half of that is 511.5. In this example, they seem to use 511 which has a hex value of 0x1FF.
a) Not sure why because in my Q2, they rounded 511.5 to 512. Any idea?
b) Under Hint. Address = 0x0E. Why only lower byte address? We don't need to write down upper byte address as well?
c) 50% of maximum torque is 0x01FF. Why in instruction package, they write: FF FF 01 05 03 0E FF 01 E8 rather than
FF FF 01 05 03 0E 01 FF E8?
Q4. Example 16. Under Communication, Instruction Packet:
FF FF 01 05 03 18 01 01 DC
a) Why they only specify the lower byte of 0x18 Torque Enable? There is no need to specify the upper byte and also the address of the LED 0x19?
b) Is the reason 01 01 is that we want to turn on both the LCD and enable torque?
c) Why the checksum is DC? We got E2.
Q5. Example 17. Locates at the Position 180 degrees with the speed of 57RMP.
a) It sets the goal position (0x1E) to 512. I think 512 corresponds to 150 degrees not 180 degrees. Is it a typo?
b) The position address is: 0x1F 0x1E while the speed address is: 0x21 0x20. Why we only need to put 1E in the address part?
c) The data for position is 0x200 while that for speed is 0x200. I guess this can also be written as: 0x0200 and 0x0200. How come in the instruction package, it is written as:
FF FF 01 07 03 1E 00 02 00 02 D2 rather than
FF FF 01 07 03 1E 02 00 02 00 D2?