<?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=4&amp;t=1513" />

<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>2008-09-23T14:35:08+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=4&amp;t=1513</id>
<entry>
<author><name><![CDATA[Sazabi]]></name></author>
<updated>2008-09-23T14:35:08+01:00</updated>
<published>2008-09-23T14:35:08+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=17629#p17629</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=17629#p17629"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=17629#p17629"><![CDATA[
It looks like those address are:<br />0x81,0x80 - low,high bytes of P-Gain (first one always bigger, but I don't know which one is low and which is high).<br />0x82 - DeadZone.<br />0x83 - D-Gain.<br />0x87 - center<br />0x88 - center<br />0x93 - left<br />0x94 - right<br />As i gues those are for different servp pref,but why they appear as a 1 pref for me - i don't know.<br />Btw, any body with ver1.10 hsr8498, could you make flash memory dump plz so we could reprogram ours v1.08 servos?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=870">Sazabi</a> — Tue Sep 23, 2008 2:35 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2007-07-16T12:46:50+01:00</updated>
<published>2007-07-16T12:46:50+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9969#p9969</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9969#p9969"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9969#p9969"><![CDATA[
I missed the fact that the 0xD0 and 0xD1 commands stay in the loop!  But not before I had disassembled the latest download and compared it to the source listing byte-by-byte.  Then I went a litter farther, writing a small program which switches the RN into serial mode and throws some test commands at it.  Some results so far...<br /><br />1. 0xFA commands must be sent 4 times to stop IM command fetching.  The MR3024 responds with 3 and sometimes 4 0xFA echos.<br /><br />2. It takes 2 0xD0 commands in a row to get the ball rolling.  The first one returns no data the second responds twice for a total of 4 0x00s.  Sometimes the controller responds 0xB0 0xB0 and you can't get into serial mode without a power reset.<br /> <br />3. Even after sending a 0x6F the RN seems oblivious to input from the IR remote control.<br /><br />4. 0xFn and 0xEn commands are not entirely equivalent.  Here's a list of the commands I've tried so far...<br /><br />0xF1 - Reads servo configuration data. Format 0xF1,addr,0x00,servo#.<br />Here addr is a one-byte data offset and servo# is a one-byte servo number.  Data found from 0x00 to 0x2D.  Returns one byte of data and one byte 0x03.<br /><br />0xF2 - Writes configuration data!!! Format 0xF2,addr,data,servo#.  Here addr is a one-byte offset, data is the new data byte and servo# is the selected servo number. This one is not for the faint of heart as the effect of changing the configuration without changing the checksum is unknown!!!  Returns two bytes of 0x03.  <br />  <br />0xF3 - Reads servo RAM. Format 0xF3,addr,0x00,servo#.  Similar to 0xF1 except that the data comes from a different place.<br /><br />0xF4 - Possibly writes to servo RAM.  Format 0xF4,addr,data,servo#.  Similar to the 0xF2 command.  More investigation needed on this one.<br /><br />0xF5 - Read servo position. Format 0xF5,0x00,0x00,servo#.  This seems to be returning the target position rather than the current position.  Response is two bytes of position data.<br /><br />0xF6 - Move servo to position. Format 0xF6,poshi,poslo,servo#.  Here poshi the the high-order byte of the position and poslo is the low-order byte.  Returns two bytes of 0x03.<br /><br />0xF7 - Read servo software level.  Format 0xF7,0x00,0x00,servo#.  Returns the one-byte software version number followed by 0x00.  The current servo version is 1.08 encoded as 0x6C in the response.<br /><br />0xF8 - Read current and voltage.  Format 0xF8,0x00,0x00,servo#.  Returns two bytes of data.  This command needs more investigation to verify the results.<br /><br />0xF9 - Unknown. Format 0xF9,0x00,0x00,servo#.  Returns two bytes of 0x00.  If this were like 0xE9 then it would return the current position but all I've seen is zeroes.<br /><br />There's probably a lot more yet to be discovered <img src="http://forum.robosavvy.com/images/smilies/icon_cool.gif" alt="8)" title="Cool" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Mon Jul 16, 2007 12:46 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2007-07-14T16:40:25+01:00</updated>
<published>2007-07-14T16:40:25+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9946#p9946</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9946#p9946"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9946#p9946"><![CDATA[
The 0xD0 command shifts the C3204 into talkthrough mode and then sedns the 0xD0 command to servo as below. It is not clear if the actual 0xD0 command does anything on the servo, but after that the controller stays in the talkthrough mode.<br />In talkthrough mode the C3024 receives 4 bytes from the PC. It then sends an 0x80 header, then the first 3 bytes from the PC, and finally a calculated checksum, to the servo number which is in byte 4 from the PC.<br />The 2 servo response bytes are then sent back to the PC.<br />C3024 will stay in talkthrough mode until an 0x 6F is received in byte 1.<br /><br />It also appears that the servos respond to either 0xE? or 0xF? in the same way, so an 0xF4 is the same as an 0xE4. So commands should be according to file I posted, in either case.<br /><br />Nice to be able to talk through the C3024 in HMI, but a bit slow due to the 9600 link to PC.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sat Jul 14, 2007 4:40 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[srobot]]></name></author>
<updated>2007-07-14T01:34:07+01:00</updated>
<published>2007-07-14T01:34:07+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9933#p9933</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9933#p9933"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9933#p9933"><![CDATA[
Nice finds.<br /><br />--srobot<br /><br />PS - Say hi to the 4,000 post in Robonova-1 &amp; Hitec<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=419">srobot</a> — Sat Jul 14, 2007 1:34 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2007-07-13T18:02:49+01:00</updated>
<published>2007-07-13T18:02:49+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9922#p9922</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9922#p9922"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9922#p9922"><![CDATA[
Thanks for the info i-Bot.<br /><br />There's something strange going on here!  If you press one of the servo radio buttons, the program sends the following string to the MR3024.<br /><br />0xF7,0x00,0x00,servo#<br /><br />where servo# if the servo number values are 0x00 to 0x1F.<br /><br />The first byte of the response is the firmware level i.e. 0x6C for level 108.<br /><br />Looking at the source code (taken from your files section) the path for the 0xF7 command is pretty straightforward.  It should return the data byte at hex location 0x0000 regardless of what servo# is!  Yet it returns 0x6c if the servo exists and 0x00 if it does not.<br /><br />Also, the 0xD0 command seems to bit-bang a serial 0xD0 command down to the servo OK but it returns zeroes and is only issued at entry to the Servo Programmer.<br /><br />Nothing really adds-up for the other commands either!  <br /><br />How can this thing work?<br /><br />Something's not right here <img src="http://forum.robosavvy.com/images/smilies/icon_confused.gif" alt=":?" title="Confused" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Fri Jul 13, 2007 6:02 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2007-07-13T16:29:54+01:00</updated>
<published>2007-07-13T16:29:54+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9918#p9918</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9918#p9918"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9918#p9918"><![CDATA[
EEprom location 1B is 28 for froward operation, and 29 for reverse.<br />Location 2c is a checksum, so the sum of all locations from 0 to 0x2C add up to 0 mod 256.<br /><br />There are some major erros in the Hitec specification ( checksum, setting motor position). Use the following until fixed.<br /><br /><!-- m --><a class="postlink" href="http://robosavvy.com/site/Builders/i-Bot/HSR8498_serial.pdf">http://robosavvy.com/site/Builders/i-Bo ... serial.pdf</a><!-- m --><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Fri Jul 13, 2007 4:29 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2007-07-12T18:01:54+01:00</updated>
<published>2007-07-12T18:01:54+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9895#p9895</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9895#p9895"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9895#p9895"><![CDATA[
I went back to my notes (my earlier post was from memory) and I found the command codes as follows:<br /><br />0xF1 - read storage byte <br />0xF4 - write storage byte<br />0xF6 - move servo<br /><br />0xD0 - unknown servo command (retreive data ?)<br /><br />The values for D-gain, DeadZone, and P-gain appear in storage three different times.  One for each of the so-called &quot;performance groups&quot;.  This is probably what the 100us, 150us and 200us pulse signals select.  All one my servos have equal settings for all three.  Also the manual implies that the servo must be power sequenced for the changes to take effect. <br /><br />The storage locations are requested in the following order<br /><br />0x07   - high byte of center postion<br />0x08   - low byte of center postiton<br />0x13   - left limit<br />0x14   - right limit<br />0x03   - D-gain<br />0x02   - Deadzone<br />0x01   - P-gain low byte ?<br />0x00   - P-gain high byte ?<br />0x1B   - unknown 0x29 (address of servo ID??)<br />0x29   - unknown (servo ID ??)<br />0x2C  - unknown (varies from servo to servo)<br />0x22  - second performance group<br />0x21       deadzone<br />0x20       P-gain<br />0x1F      <br />0x27  - third performance group<br />0x26       deadzone<br />0x25      P-gain<br />0x24<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Thu Jul 12, 2007 6:01 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DirtyRoboto]]></name></author>
<updated>2007-07-12T17:29:20+01:00</updated>
<published>2007-07-12T17:29:20+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9894#p9894</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9894#p9894"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9894#p9894"><![CDATA[
Well spotted fritzoid. Thanks for posting your find up.<br /><br />Marcus.<br /><br />Ps Check out the new Template. It has Moves like &quot;Upstair&quot; and &quot;Breakdance&quot; Along with &quot;RUN&quot;<br /><br />Hmm, I need to get Takeshi back to factory setup!!!<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=312">DirtyRoboto</a> — Thu Jul 12, 2007 5:29 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2007-07-12T15:47:47+01:00</updated>
<published>2007-07-12T15:47:47+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9893#p9893</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9893#p9893"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9893#p9893"><![CDATA[
The PDF servo information does not include the commands to read and write both RAM and EEPROM on the servo.<br /><br />I think your config changes are not being written out to EEPROM. The EEPROM write is only done when a 1.1 servo is connected. I checked this with a 5990.<br /><br />The 0xD0 serial command looks to put the C3024 into a mode where the PC can write HMI command through to the selected servo.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Thu Jul 12, 2007 3:47 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2007-07-12T14:37:07+01:00</updated>
<published>2007-07-12T14:37:07+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9892#p9892</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9892#p9892"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9892#p9892"><![CDATA[
I'm not sure about the write configuration issue.  True, if you press Save Servo you get an error message and the same with the Reset menu option.  But if you press Not Connect the updated configuration seems to stick.  Maybe it's just in the controller memory <img src="http://forum.robosavvy.com/images/smilies/icon_sad.gif" alt=":(" title="Sad" /> <br /><br />A port trace shows command 0xF1 as the servo selection response.  It probably retreives data from a servo into controller memory.  Next a bunch of 0xF7's to return selected memory bytes to the PC.<br /><br />I'm looking at the RoboBasic source code again to see what's going down.<br /><br />I also found that 0xF4 is a servo move command <img src="http://forum.robosavvy.com/images/smilies/icon_smile.gif" alt=":)" title="Smile" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Thu Jul 12, 2007 2:37 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2007-07-12T14:15:22+01:00</updated>
<published>2007-07-12T14:15:22+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9890#p9890</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9890#p9890"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9890#p9890"><![CDATA[
At last ! <br /><br />The only problem I see is that it will not write configuration to version 1.08 servos. Most RN1 servos are 1.08. Doesn't upgrade the servo firmware either.<br /><br />PC cable mode works fine too.<br /><br />Should make the folks happy who bought lots of the expensive 5990<br /><br />Great to see it is free!<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Thu Jul 12, 2007 2:15 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2007-07-12T11:42:09+01:00</updated>
<published>2007-07-12T11:42:09+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9888#p9888</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9888#p9888"/>
<title type="html"><![CDATA[HMI Servo Programmer]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=1513&amp;p=9888#p9888"><![CDATA[
I seems that while you were all out at RoboGames, Hitec was quietly posting a bunch of new stuff on their robotics site.  Check out the downloads section at<br /><br /><a href="http://www.hitecrobotics.com/" class="postlink">http://www.hitecrobotics.com/</a><br /><br />Now a lot of this stuff here is old but not everything, there are some new RoboBasic templates for example.  But the real gem is the HMI Servo Programmer found in the software section.   There is an english version of their manual in the User Manual section too.<br /><br />The program runs on Windows and can connect to your servos using the MC3024 or a custom-built serial cable the specs for which are now available.  I've used the program successfully to read and write to the servos using the MC3024 option and the standard communications cable.  The program is a little quirky but it does work <img src="http://forum.robosavvy.com/images/smilies/icon_biggrin.gif" alt=":D" title="Very Happy" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Thu Jul 12, 2007 11:42 am</p><hr />
]]></content>
</entry>
</feed>