<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
<link rel="self" type="application/atom+xml" href="http://forum.robosavvy.com/feed.php?f=5&amp;t=8887" />

<title>RoboSavvy Forum</title>
<subtitle>Robosavvy Forum: The largest online community of Humanoid Robot Builders</subtitle>
<link href="http://forum.robosavvy.com/index.php" />
<updated>2012-11-12T11:51:21+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=5&amp;t=8887</id>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2012-11-12T11:51:21+01:00</updated>
<published>2012-11-12T11:51:21+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36502#p36502</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36502#p36502"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36502#p36502"><![CDATA[
Yes only the lower 8 bits are used.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Mon Nov 12, 2012 11:51 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petercohen]]></name></author>
<updated>2012-11-12T01:31:41+01:00</updated>
<published>2012-11-12T01:31:41+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36496#p36496</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36496#p36496"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36496#p36496"><![CDATA[
<blockquote><div><cite>i-Bot wrote:</cite><br />Content looks OK, your checksum is wrong.<br /><br />=~(1 0010 0110) <br />=~(0010 0110) mask to single byte<br />=1101 1001 <br />= 0xD9<br /></div></blockquote><br /><br />Thanks i-Bot. When you say mask to single byte, do you mean when making the checksum, we only need to care about the lower 8 digits?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2821">petercohen</a> — Mon Nov 12, 2012 1:31 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2012-11-11T16:59:58+01:00</updated>
<published>2012-11-11T16:59:58+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36492#p36492</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36492#p36492"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36492#p36492"><![CDATA[
Content looks OK, your checksum is wrong.<br /><br />=~(1 0010 0110) <br />=~(0010 0110) mask to single byte<br />=1101 1001 <br />= 0xD9<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sun Nov 11, 2012 4:59 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petercohen]]></name></author>
<updated>2012-11-11T15:09:44+01:00</updated>
<published>2012-11-11T15:09:44+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36491#p36491</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36491#p36491"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36491#p36491"><![CDATA[
<blockquote><div><cite>i-Bot wrote:</cite><br />By chosing the centre at 180 degrees, then the AX servo simply has an angle range of 30 degrees to 330 degrees and the MX from 0 degrees to 360 degrees<br /></div></blockquote><br /><br />Thanks i-Bot. <br /><br />Still confused why the question is &quot;Locates at the Position 180&quot; rather than &quot;Locates at the Position 150&quot;. I think that example refers to older motors such as the AX and RX servos. <br /><br />For the new MX motor, the center position is at 180 degrees. This corresponds to a value of 2048 which is 0x800. As for the speed, it is 57/0.114 = 500 (the unit is about 0.114rpm). In Hex, it is 0x1F4.<br /><br />So, the Instruction package is: FF FF 01 07 03 1E 00 08 F4 01 09 ?<br /><br />Checksum = ~(1+7+3+30+0+8+244+1)<br />=~(294) &gt; 255, use lower byte only.<br />=~(100100110)<br />=1001<br />= 0x09<br /><br />Is this right?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2821">petercohen</a> — Sun Nov 11, 2012 3:09 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2012-11-11T14:39:48+01:00</updated>
<published>2012-11-11T14:39:48+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36490#p36490</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36490#p36490"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36490#p36490"><![CDATA[
The values are hex (0x18 = 24 decimal)<br />Checksum = ~(0x01 + 0x05 + 0x03+ 0x18 + 0x01 + 0x01) <br />= ~( 1 + 5+ 3+ 24+ 1 +1) <br />= ~(35)<br />= ~(0x23)<br />= ~(0010 0011) <br />= 1101 1100 <br />= 0xDC<br /><br />By chosing the centre at 180 degrees, then the AX servo simply has an angle range of 30 degrees to 330 degrees and the MX from 0 degrees to 360 degrees<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sun Nov 11, 2012 2:39 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petercohen]]></name></author>
<updated>2012-11-11T13:55:16+01:00</updated>
<published>2012-11-11T13:55:16+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36488#p36488</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36488#p36488"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36488#p36488"><![CDATA[
<blockquote><div><cite>i-Bot wrote:</cite><br />4c 0xFF - 0x01 - 0x01 - 0x18 - 0x03 - 0x05 - 0x01 = 0xDC<br /><br />5a- 180 degrees is often used as a term to describe the centre position<br /></div></blockquote><br /><br />Thank you very much for the explanations.<br /><br />For 4c, we did it as following:<br /><br />Checksum =  ~(0x01 + 0x05 + 0x03+ 0x18 + 0x01 + 0x01)<br />= ~( 1 + 5+ 3+ 18+ 1 +1)<br />= ~(29) All bytes are used since the value is less than 255<br />= ~(11101)<br />= ~(0001 1101)<br />= 1110 0010<br />= E2<br /><br />Could you please tell us where the error is? We used the same method to calculate the checksum in other examples. There has been no problem except for this one.<br /><br />For 5a, I am not sure what you meant. For RX and AX-18, 150 degrees (position 512) is the centre position. For the MX series, 180 degrees (2048) is the centre position. I think this example refers to RX/AX motors because it uses 512 as the data. In that case, shouldn't the question be &quot;Locate at the Position 150 degrees...&quot;?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2821">petercohen</a> — Sun Nov 11, 2012 1:55 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2012-11-11T11:25:33+01:00</updated>
<published>2012-11-11T11:25:33+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36485#p36485</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36485#p36485"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36485#p36485"><![CDATA[
Yes, the bytes sent in the instruction and status packets should always be in the order the appear in the control table. How they are represented in your software is up to you and your processor.<br /><br />3a - it make little difference whether you round up or down<br />3b- the control table address is automatically incremented as the bytes are received, so the data  is put in both 0x0E(0xFF) and 0x0F(0x01)<br /><br />4a/4b- Torque enable is only a single byte so the first 0x01 sets the torque on, the seconf 0x01 is put int0 control table address 0x19 and sets the LED on<br /><br />4c 0xFF - 0x01 - 0x01 - 0x18 - 0x03 - 0x05 - 0x01 = 0xDC<br /><br />5a- 180 degrees is often used as a term to describe the centre position<br />5b - as above the control table address is automatically incremented for each byte<br />5c- low byte first in data packet<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sun Nov 11, 2012 11:25 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petercohen]]></name></author>
<updated>2012-11-11T02:49:08+01:00</updated>
<published>2012-11-11T02:49:08+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36483#p36483</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36483#p36483"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36483#p36483"><![CDATA[
<blockquote><div><cite>i-Bot wrote:</cite><br />To correctly interpret the examples you need to understand the packet format:<br /><!-- m --><a class="postlink" href="http://support.robotis.com/en/product/dynamixel/communication/dxl_packet.htm">http://support.robotis.com/en/product/d ... packet.htm</a><!-- m --><br />And the layout of the control table, especially where 16 bit values are represented as two bytes with least significant first:<br /><!-- m --><a class="postlink" href="http://support.robotis.com/en/product/dynamixel/ax_series/dxl_ax_actuator.htm">http://support.robotis.com/en/product/d ... tuator.htm</a><!-- m --><br />You may also want to google &quot;endianness&quot; to understand how values can be represented in different ways on different processors.<br />In example 6<br />The bytes sent are:<br />0xFF First Sync<br />0xFF Second Sync<br />0x01 Dynamixel ID<br />0x04 Length (number of parameters + 2)<br />0x02 Instruction (Read)<br />0x00 Parameter 1 (Control Table start address)<br />0x03 Parameter 2 (number of control entries to read)<br />0xF5 Checksum<br /><br />The bytes returned are:<br /><br />0xFF First Sync<br />0xFF Second Sync<br />0x01 Dynamixel ID<br />0x05 Length (number of parameters + 2<br />0x00 Status/ Error Byte<br />0x40 Parameter 1 (Low byte of Model)<br />0x00 Paramater 2 (high byte of Model)<br />0x08 Parameter 3 (Firmware version)<br />0xB1 Checksum.<br /><br /><br />Try working all the examples again and come back if you still don't understand.<br /></div></blockquote><br /><br /><br />Thanks for the reply i-Bot. Actually we read though the links before posting. <br /><br />Since we are using a PC, we are dealing with little endian. As a result, for Instruction Packet and Status Packet, we list the low byte first followed by high byte. However, when converting a decimal number into hex, we keep using the format 0x[high byte][low byte]. Is this true?<br /><br />Could you please let us know the answers for: Q3a and b; Q4 a, b and c; Q5 a and b.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2821">petercohen</a> — Sun Nov 11, 2012 2:49 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2012-11-10T17:12:38+01:00</updated>
<published>2012-11-10T17:12:38+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36480#p36480</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36480#p36480"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36480#p36480"><![CDATA[
To correctly interpret the examples you need to understand the packet format:<br /><!-- m --><a class="postlink" href="http://support.robotis.com/en/product/dynamixel/communication/dxl_packet.htm">http://support.robotis.com/en/product/d ... packet.htm</a><!-- m --><br />And the layout of the control table, especially where 16 bit values are represented as two bytes with least significant first:<br /><!-- m --><a class="postlink" href="http://support.robotis.com/en/product/dynamixel/ax_series/dxl_ax_actuator.htm">http://support.robotis.com/en/product/d ... tuator.htm</a><!-- m --><br />You may also want to google &quot;endianness&quot; to understand how values can be represented in different ways on different processors.<br />In example 6<br />The bytes sent are:<br />0xFF First Sync<br />0xFF Second Sync<br />0x01 Dynamixel ID<br />0x04 Length (number of parameters + 2)<br />0x02 Instruction (Read)<br />0x00 Parameter 1 (Control Table start address)<br />0x03 Parameter 2 (number of control entries to read)<br />0xF5 Checksum<br /><br />The bytes returned are:<br /><br />0xFF First Sync<br />0xFF Second Sync<br />0x01 Dynamixel ID<br />0x05 Length (number of parameters + 2<br />0x00 Status/ Error Byte<br />0x40 Parameter 1 (Low byte of Model)<br />0x00 Paramater 2 (high byte of Model)<br />0x08 Parameter 3 (Firmware version)<br />0xB1 Checksum.<br /><br /><br />Try working all the examples again and come back if you still don't understand.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sat Nov 10, 2012 5:12 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petercohen]]></name></author>
<updated>2012-11-10T02:46:35+01:00</updated>
<published>2012-11-10T02:46:35+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36472#p36472</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36472#p36472"/>
<title type="html"><![CDATA[Questions about the Examples given in Kind of Instruction]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=8887&amp;p=36472#p36472"><![CDATA[
Hello, we are trying to understand the examples provided in the document:<br />Product Information &gt; Dynamixel &gt; Communication &gt; Kind of Instruction<br /><br />Could anybody please let us know the answers? Thank you.<br /><br />Q1. Example 6. Read the Model Number and Firmware Version.<br />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?<br />b) Under Status Packet. Why there is a 00 between 40 and 08?<br /><br />Q2. Example 10. Restricts the movement angle from 0 to 150 degrees. <br />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)?<br /><br />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. <br /><br />a) Not sure why because in my Q2, they rounded 511.5 to 512. Any idea?<br />b) Under Hint. Address = 0x0E. Why only lower byte address? We don't need to write down upper byte address as well?<br />c) 50% of maximum torque is 0x01FF. Why in instruction package, they write: FF FF 01 05 03 0E FF 01 E8 rather than<br />FF FF 01 05 03 0E 01 FF E8?<br /><br />Q4. Example 16. Under Communication, Instruction Packet:<br />FF FF 01 05 03 18 01 01 DC<br />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?<br />b) Is the reason 01 01 is that we want to turn on both the LCD and enable torque?<br />c) Why the checksum is DC? We got E2.<br /><br />Q5. Example 17. Locates at the Position 180 degrees with the speed of 57RMP.<br />a) It sets the goal position (0x1E) to 512. I think 512 corresponds to 150 degrees not 180 degrees. Is it a typo?<br />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?<br />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:<br />FF FF 01 07 03 1E 00 02 00 02 D2 rather than<br />FF FF 01 07 03 1E 02 00 02 00 D2?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2821">petercohen</a> — Sat Nov 10, 2012 2:46 am</p><hr />
]]></content>
</entry>
</feed>