<?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=7198" />

<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>2011-05-09T17:05:59+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=5&amp;t=7198</id>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2011-05-09T17:05:59+01:00</updated>
<published>2011-05-09T17:05:59+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31145#p31145</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31145#p31145"/>
<title type="html"><![CDATA[Help&gt;&gt;Dynamixel Broadcast Instruction :(]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31145#p31145"><![CDATA[
Hi YoKzy,<br /><br />Your console output shows that both servos had registered data saved after the reg_write commands.  It also shows that there was no registered data after the broadcast ID action command.  So it seems that both servo 11 and servo 0F saw the broadcast action command and operated on it.  <br /><br />Of course they may not have done what you expected.  With that in mind, you might want to look at some other control table fields (before the action command is issued).  Byte 58 (0x3A) has the registered write address and byte 59 (0x3B) has the registered write length.  Unfortunately the actual registered data is in flash memory and cannot be queried.<br /><br />Also, move commands for positions beyond the CW and CCW angle limits can be ignored without an error being generated.  So you will want to take a look at control table addresses 6 and 8 too.<br /><br />Assuming all that checks out, I'd say this is more of a voltage problem than a communications issue.<br /><br />FYI<br /><br />Punch is the minimum voltage that will be applied to the motor when the position is just outside the compliance margin.  It is usually a small number (default is 32).  It is needed to overcome the internal gear friction.  Since the maximum torque (100% of supply voltage) is usually set to 1023, a punch of 32 translates to just over 3 percent of the available voltage (33/1023).  <br /><br />The applied voltage ranges from the punch (minimum) to the torque limit (maximum) over the range of the compliance slope.  Assuming that your goal position is outside the compliance margin and the compliance slope (more than 33 points off) the full voltage would be supplied at startup.  You can avoid this by sending incremental position commands over the time span of the motion as opposed to a single command for the whole displacement.  This is what Robotis does.<br /><br />Finally, I know that problems like this can be a real challenge to resolve, if it were easy anyone could do it.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Mon May 09, 2011 5:05 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[YoKzy]]></name></author>
<updated>2011-05-09T15:08:57+01:00</updated>
<published>2011-05-09T15:08:57+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31142#p31142</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31142#p31142"/>
<title type="html"><![CDATA[Help&gt;&gt;Dynamixel Broadcast Instruction :(]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31142#p31142"><![CDATA[
@Fritzoid <br />I'm using 16MHz Xtal, which have a 0% error on 1Mbps baudrate IIRC. And other command is working fine, including reading other dynamixel data, so I think that's not the problem.<br /><br />About the reset on voltage drops too low, what is the voltage limit that will make it reset? And how much the current that each servo draw when starting to move? Is it from the Punch register? (I didn't know what's  punch for <img src="http://forum.robosavvy.com/images/smilies/icon_redface.gif" alt=":oops:" title="Embarassed" /> ).<br />From the datasheet the maximum current of each servo draw is 900mA. And I've just use 2 servos, using 3A supply, isn't it should be enough?<br />FYI the microcontroller is not reseted so I can assume that the voltage drop is not below 5V isn't it?<br /><br />I've try to read the voltage on oscilloscope a few days before but having a hard time to monitor it since it's need several reg write instruction before the action command is sent  <img src="http://forum.robosavvy.com/images/smilies/icon_cry.gif" alt=":cry:" title="Crying or Very sad" />  But maybe tomorrow I'll try it again using sync write. (I don't have oscilloscope at home)<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2718">YoKzy</a> — Mon May 09, 2011 3:08 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2011-05-09T12:14:22+01:00</updated>
<published>2011-05-09T12:14:22+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31139#p31139</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31139#p31139"/>
<title type="html"><![CDATA[Help&gt;&gt;Dynamixel Broadcast Instruction :(]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31139#p31139"><![CDATA[
Hi YoKzy,<br /><br />A single LED flash can be generated in under various conditions.  The first and most likely is due to a system reset.  A  system reset can be caused by either a RESET (0x06) or DIGITAL RESET (0x07) command in software.  It can also occur if the voltage to the servo momentarily drops too low.  Given the nature of your setup it's impossible to rule either of these possibilities out.  <br /><br />A voltage problem should be apparent if you monitor the down-stream  servo's supply line with an oscilloscope or other fast reacting device.<br /><br />A misinterpreted command on the other hand would indicate a serial speed problem.  At 1 Mbs. small clocking differences between sender and receiver can cause misreads.  This can sometimes be ameliorated by using extra stop bits.  <br /><br />A successful SYSTEM_WRITE (0x0D) command can also generate a single LED flash but I find it extremely unlikely that you've inadvertently sent one of these.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Mon May 09, 2011 12:14 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[YoKzy]]></name></author>
<updated>2011-05-09T10:20:09+01:00</updated>
<published>2011-05-09T10:20:09+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31135#p31135</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31135#p31135"/>
<title type="html"><![CDATA[Status Response and Registered write register (0x2C)]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31135#p31135"><![CDATA[
Actually at first I've tried the SyncWrite too, but the problem is just the same.  Then I tried the RegWrite instruction to test with individual broadcast. Somehow there's something wrong with the broadcast ID...<br />So here's the copied text from terminal window:<br /><dl class="codebox"><dt>Code: </dt><dd><code>Serial OK<br />/*****Write ID 0x11 and ID 0x0f to 150 degree.*****/<br />Write:&#40;ffff,11,5,3,1e,ff,1,c8&#41;<br />   Data Readed: 6,ff,ff,11,2,0,ec NO ERROR<br />Write:&#40;ffff,f,5,3,1e,ff,1,ca&#41;<br />   Data Readed: 6,ff,ff,f,2,0,ee NO ERROR<br /><br />/*****Read register 0x2C from ID 0x11 and ID 0x0f. It should be 0*****/<br />Read:&#40;ffff,11,4,2,2c,1,bb&#41;<br />   Data Readed: 7,ff,ff,11,3,0,0,eb NO ERROR<br />Read:&#40;ffff,f,4,2,2c,1,bd&#41;<br />   Data Readed: 7,ff,ff,f,3,0,0,ed NO ERROR<br /><br />/*****Regwrite ID 0x11 and ID 0x0f to 300 degree*****/<br />Write:&#40;ffff,11,5,4,1e,ff,3,c5&#41;<br />   Data Readed: 6,ff,ff,11,2,0,ec NO ERROR<br />Write:&#40;ffff,f,5,4,1e,ff,3,c7&#41;<br />   Data Readed: 6,ff,ff,f,2,0,ee NO ERROR<br /><br />/*****Read register 0x2C from ID 0x11 and ID 0x0f. It should be 1*****/<br />Read:&#40;ffff,11,4,2,2c,1,bb&#41;<br />   Data Readed: 7,ff,ff,11,3,0,1,ea NO ERROR<br />Read:&#40;ffff,f,4,2,2c,1,bd&#41;<br />   Data Readed: 7,ff,ff,f,3,0,1,ec NO ERROR<br /><br />/*****Broadcast action command. No respons status for broadcasted ID.*****/<br />Action:&#40;ffff, fe, 2, 5, fa&#41; NO ERROR<br /><br />/*****Read register 0x2C from ID 0x11 and ID 0x0f. It should be 0*****/<br />Read:&#40;ffff,11,4,2,2c,1,bb&#41;<br />   Data Readed: 7,ff,ff,11,0,0,eb NO ERROR<br />Read:&#40;ffff,f,4,2,2c,1,bd&#41;<br />   Data Readed: 7,ff,ff,f,3,0,0,ed NO ERROR<br /><br />/*****Regwrite ID 0x11 and ID 0x0f to 0 degree*****/<br />Write:&#40;ffff,11,5,4,1e,0,0,c7&#41;<br />   Data Readed: 6,ff,ff,11,2,0,ec NO ERROR<br />Write:&#40;ffff,f,5,4,1e,0,0,c9&#41;<br />   Data Readed: 6,ff,ff,f,2,0,ee NO ERROR<br /><br />/*****Action to individual ID*****/<br />Action:&#40;ffff, 11, 2, 5, e7&#41;<br />   Data Readed: 6,ff,ff,11,2,0,ec NO ERROR<br />Action:&#40;ffff, f, 2, 5, e9&#41;<br />   Data Readed: 6,ff,ff,f,2,0,ee NO ERROR<br /><br />/*****Sync write ID 0x11 and 0x0f to 300 degree*****/<br />Sync:e,ff,ff,fe,a,83,1e,2,11,ff,3,f,ff,3,30<br /><br />//Sync write ID 0x11 and 0x0f to 0 degree<br />Sync:e,ff,ff,fe,a,83,1e,2,11,0,0,f,0,0,34<br />Done<br /></code></dd></dl><br />As you can see the 0x2C register is doing fine, and the status respons on each instruction is correct too. But still the problem persist on Broadcasted Action. ..<br /><br />Oh and the first number on Data readed and on Sync write is my own variable to notify the packet length when printing to terminal, it's not included on dynamixel communication.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2718">YoKzy</a> — Mon May 09, 2011 10:20 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2011-05-08T22:28:35+01:00</updated>
<published>2011-05-08T22:28:35+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31130#p31130</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31130#p31130"/>
<title type="html"><![CDATA[Help&gt;&gt;Dynamixel Broadcast Instruction :(]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31130#p31130"><![CDATA[
I have not used the regwrite commands.<br /><br />What status response did you get to the regwrites ?<br /><br />Did you try to check the state of the servos registered write registers (0x2C)  before the action ?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sun May 08, 2011 10:28 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[YoKzy]]></name></author>
<updated>2011-05-08T16:35:10+01:00</updated>
<published>2011-05-08T16:35:10+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31128#p31128</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31128#p31128"/>
<title type="html"><![CDATA[Help&gt;&gt;Dynamixel Broadcast Instruction :(]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7198&amp;p=31128#p31128"><![CDATA[
Hi. Eventhough I just joined this forum, I've been reading and searching on this thread for quite a long time (and found ton of information that I needed here <img src="http://forum.robosavvy.com/images/smilies/icon_cool.gif" alt="8)" title="Cool" /> ) but I think I didn't found any of the similar thread. (Pardon me if I missed it).<br /><br />So I'm building a 6DOF Dynamixel AX-12 robotic arm using a microcontroller ATMega32 which has a GUI interface using C#.  <br /><br />For a quick explanation, here's what I've done:<br /><ul>Building AX12 library on microcontroller.</ul><ul>Building serial communication (handshaking Half Duplex (AX-12) with Full Duplex (PC using MAX232))</ul><ul>Moving a Dynamixel using WRITE instruction</ul><ul>Get a status packet returned from AX-12</ul><ul>Moving a Dynamixel using REGWRITE~Action(individual ID)</ul><br />ex: <br /><dl class="codebox"><dt>Code: </dt><dd><code>RegWrite&#40;1,100&#41;; //Reg write servo ID=1 to 100 Degree<br />RegWrite&#40;2,100&#41;; //Reg write servo ID=2 to 100 Degree<br />Action&#40;1&#41;;<br />Action&#40;2&#41;;<br /></code></dd></dl><br /><br />Now the problem is, if I use broadcast ID for Action instruction<br /><dl class="codebox"><dt>Code: </dt><dd><code>RegWrite&#40;1,100&#41;; //Reg write servo ID=1 to 100 Degree<br />RegWrite&#40;2,100&#41;; //Reg write servo ID=2 to 100 Degree<br />Action&#40;254&#41;;<br /></code></dd></dl><br />Sometimes there's just 1 servo that's moving.<br />Sometimes both servos isn't moving.<br />And the servo's which not moving is blinking the LED once, eventhought I have set the ALARM LED register to 0.<br /><br />Any idea what's the problem?<br /><br />FYI I didn't use CM5, nor USB2Dynamixel. I made my own supply using Switching Voltage Regulator LM2576 (9.6V/3A).<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2718">YoKzy</a> — Sun May 08, 2011 4:35 pm</p><hr />
]]></content>
</entry>
</feed>