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

<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-11-28T13:39:32+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=2&amp;t=5877</id>
<entry>
<author><name><![CDATA[chrisvo]]></name></author>
<updated>2011-11-28T13:39:32+01:00</updated>
<published>2011-11-28T13:39:32+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33008#p33008</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33008#p33008"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33008#p33008"><![CDATA[
<blockquote class="uncited"><div><br />Yeah, I saw this, this is where I got all the init byte codes from for comtolling a specific servo, you also only need to specify the servos that are active but these init must be sent for the RCB4 to talk to the servos.<br /></div></blockquote><br /> <br />The lack of init for configuring which servos are enabled is a limitation of libkondo4 and I'll add it to my todo list.<br /><br />In general though, if the configuration is saved to ROM in HTH4, then there should be no problems either commanding the servos or running motions right after startup. We know about this especially because if we lose power or swap batteries in our robot, we definitely don't want to have to re-initialize (or signal our software to re-init) in order to keep moving. <br /><br /><blockquote class="uncited"><div><br />Is this available in English? All the documents I found were in Japanese, and so not really any use. Although I found it pretty straight forward to reverse engineer HtH4 once I knew the stucture of the codes.<br /></div></blockquote><br /><br />Google translate worked perfectly on it. But yeah, libkondo4 also came out of reverse engineering HTH4, before the documentation was available.<br /><br /><blockquote class="uncited"><div><br />This on your github? I've put all my code on my bitbucket page if you want to take a look.<br /></div></blockquote><br /><br />Yeah it's on my bitbucket. It uses the linux serial stuff e.g. /dev/tty* <br /><br />Thanks for your contributions<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1751">chrisvo</a> — Mon Nov 28, 2011 1:39 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-11-28T12:39:35+01:00</updated>
<published>2011-11-28T12:39:35+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33006#p33006</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33006#p33006"/>
<title type="html"><![CDATA[RCB4 Access]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33006#p33006"><![CDATA[
Hi Chris,<br /><br /><blockquote class="uncited"><div><br />but it's all saved to ROM so that you can power it up and use the remote control as intended by Kondo<br /></div></blockquote><br /><br />Yeah, I saw this, this is where I got all the init byte codes from for comtolling a specific servo, you also only need to specify the servos that are active but these init must be sent for the RCB4 to talk to the servos. <br /><br /><blockquote class="uncited"><div><br />the manual with all memory addresses and commands and their meanings is available from Kondo directly on their web site.<br /></div></blockquote><br /><br />Is this available in English? All the documents I found were in Japanese, and so not really any use. Although I found it pretty straight forward to reverse engineer HtH4 once I knew the stucture of the codes.<br /><br /><blockquote class="uncited"><div><br />example code is included for addressing the COM port directly<br /></div></blockquote><br /><br />This on your github? I've put all my code on my bitbucket page if you want to take a look.<br /><br />Thanks muchly,<br /><br />John<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2600">keukpa</a> — Mon Nov 28, 2011 12:39 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chrisvo]]></name></author>
<updated>2011-11-28T11:46:38+01:00</updated>
<published>2011-11-28T11:46:38+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33005#p33005</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33005#p33005"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=33005#p33005"><![CDATA[
The RCB4 needs to know which servos are active and their address on the bus, but it's all saved to ROM so that you can power it up and use the remote control as intended by Kondo. <br /><br />You don't need to reverse engineer Heart2Heart4 anymore by the way, the manual with all memory addresses and commands and their meanings is available from Kondo directly on their web site. <br /><br />Libkondo4 also mentions in the docs that you do not need the ftdi header, example code is included for addressing the COM port directly.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1751">chrisvo</a> — Mon Nov 28, 2011 11:46 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-10-28T22:49:22+01:00</updated>
<published>2011-10-28T22:49:22+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32678#p32678</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32678#p32678"/>
<title type="html"><![CDATA[Sucess]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32678#p32678"><![CDATA[
amuthelet,<br /><br />No, that code does not work for me either!<br /><br />I do not see how libkondo4 can even work, it misses out a LOT of servo, EEPROM and RCB4 initialisation. Unless I'm missing some command here (and please tell me if I am), I fail to see how it works.<br /><br />When you run Heart2Heart 4, before you can even contemplate moving the servos, you have to click the RAM button. This initialises all the servos and the RCB4 board by telling the board, exactly which servos are active, and their address on the bus. libkondo4 doesn't seem to do this.<br /><br />Myself and a colleague have spent the past week reverse engineering the HeartToHeart4 program, and we now have a fully working program that can easily drive any servo on any SIO# we choose. We can even do this without the need for the ftdi header. You just address the com port directly (windows and linux).<br /><br />Thanks for all the support you guys have provided tho. But now we've sorted the byte codes out, it is surprisingly easy to control these servos.<br /><br />Cheers,<br /><br />Keukpa<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2600">keukpa</a> — Fri Oct 28, 2011 10:49 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[amuthelet]]></name></author>
<updated>2011-10-27T23:28:35+01:00</updated>
<published>2011-10-27T23:28:35+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32660#p32660</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32660#p32660"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32660#p32660"><![CDATA[
<img src="http://robosavvy.com/Builders/amuthelet/Kondo-Servos-IDs.jpg" alt="Image" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2178">amuthelet</a> — Thu Oct 27, 2011 11:28 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[amuthelet]]></name></author>
<updated>2011-10-27T23:23:53+01:00</updated>
<published>2011-10-27T23:23:53+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32659#p32659</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32659#p32659"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32659#p32659"><![CDATA[
Hello Keupka,<br /><br />Did you double check your baud rate ? Most problems I had with libkondo where related to erroneous baud rates. You may want to check that RCB4_BAUD is set to the same value as the one you defined inside HeartToHeart:<br /><br />#define RCB4_BAUD 1250000 (or else)<br /><br />By the way, here is a (not very optimized) function I added to libkondo to send servo pos by servo ID:<br /><br />int kondo_set_servo_pos(KondoRef ki, UINT servo_id, UINT frame)<br />{<br />        assert(ki);<br /><br />        // init array<br />        UCHAR servos[5];<br />        int no;<br />        for(no=0; no&lt;5; no++)<br />                servos[no] = 0b0000000;<br /><br />        div_t divresult;<br />        divresult = div (servo_id,8);<br />        servos[4 - divresult.quot] = 0b00000001 &lt;&lt; divresult.rem;<br /><br />        return kondo_send_ics_pos(ki, servos, frame);<br /><br />}<br /><br />Servo IDs being as shown in the attached picture.<br /><br />Hope this can help,<br />Cheers,<br />Arnaud.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2178">amuthelet</a> — Thu Oct 27, 2011 11:23 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-10-26T13:23:19+01:00</updated>
<published>2011-10-26T13:23:19+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32619#p32619</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32619#p32619"/>
<title type="html"><![CDATA[Green LED]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32619#p32619"><![CDATA[
Ok, I've managed to write a function to switch the green LED on and Off and this works perfectly.<br /><br />I did this by constructing a swap[] with the following data:<br /><br />09 00 02 00 00 1F 80 AA<br /><br />and sending this directly to the board via kondo_trx(...)<br /><br />I've noticed that when using the HeartToHeart4 program before you can move any Servos you need to click on the 'RAM' button, which then according to the console output sends LOADS of data to the board, it sends 34 lines of a particular byte code which I assume inits the servos in some way??<br /><br />So my question is thus, with libkondo4, before I can move the servos, do I not need to first init the servos and the board in the same way the RAM button on the HeartToHeart4 program does? kondo_init() seems to just init the serial comms to the RCB4 not actually inform the EEPROM where the servos are, etc.....<br /><br />Cheers,<br /><br />Keukpa<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2600">keukpa</a> — Wed Oct 26, 2011 1:23 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-10-25T21:45:23+01:00</updated>
<published>2011-10-25T21:45:23+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32606#p32606</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32606#p32606"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32606#p32606"><![CDATA[
You wouldn't happen to have a pre-compiled binary for Linux I could try would you? If that works I can then at least rule out system problems! <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=2600">keukpa</a> — Tue Oct 25, 2011 9:45 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-10-25T16:53:42+01:00</updated>
<published>2011-10-25T16:53:42+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32601#p32601</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32601#p32601"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32601#p32601"><![CDATA[
thank you, here is my program. This is residing in the /util directory and I use make to build it.<br /><br />#include &quot;rcb4.h&quot;<br />#include &lt;unistd&gt;<br /><br />KondoInstance ki;<br /><br />int main(int argc, char *argv[])<br />{<br />    // cmd line arguments ----------------------------<br /><br />    if (argc &lt; 2) {<br />        fprintf(stderr, &quot;Usage: zero_pos position\n&quot;);<br />        exit(1);<br />    }<br /><br />    // open ------------------------------------------<br /><br />    int ret = kondo_init(&amp;ki);<br />    if (ret &lt; 0) {<br />        printf(&quot;%s&quot;, ki.error);<br />        exit(-1);<br />    }<br />    ki.debug = 1;<br /><br />    // servo set (ALL) <br />    unsigned char servos[] = { ~0, ~0, ~0, ~0, ~0 };<br /><br />    unsigned int command = 32767;<br /><br />    //send the command<br />    ret = kondo_send_ics_pos(&amp;ki, servos, command);<br />    if (ret &lt; 0) {<br />        printf(&quot;%s&quot;, ki.error);<br />        exit(-1);<br />    }<br /><br />    unsigned int command1 = atoi(argv[1]);<br />    ret = kondo_send_ics_pos(&amp;ki, servos, command1);<br />    if (ret &lt; 0) {<br />        printf(&quot;%s&quot;, ki.error);<br />        exit(-1);<br />    }<br /><br />    // close -----------------------------------------<br />    ret = kondo_close(&amp;ki);<br />    if (ret &lt; 0) {<br />        printf(&quot;%s&quot;, ki.error);<br />        exit(-1);<br />    }<br />    return 0;<br />}<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2600">keukpa</a> — Tue Oct 25, 2011 4:53 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chrisvo]]></name></author>
<updated>2011-10-25T16:42:28+01:00</updated>
<published>2011-10-25T16:42:28+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32600#p32600</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32600#p32600"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32600#p32600"><![CDATA[
wow, can you send me your code? I have never seen something like that.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1751">chrisvo</a> — Tue Oct 25, 2011 4:42 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-10-25T16:15:10+01:00</updated>
<published>2011-10-25T16:15:10+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32599#p32599</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32599#p32599"/>
<title type="html"><![CDATA[response not valid]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32599#p32599"><![CDATA[
Hi Chrisvo,<br /><br />I've put back in error checking and now get the following output:<br /><br />[keukpa@localhost utils]$ sudo ./zero_pos 2<br />50, 255<br />send 89 bytes: 59 10 ff ff ff ff ff 1 ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f 15 <br />recv 4 bytes: 4 10 6 1a <br />ERROR: kondo_send_ics_pos: Response was not valid<br /><br /><br />Any ideas?<br /><br />Many thanks,<br /><br />Keukpa<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2600">keukpa</a> — Tue Oct 25, 2011 4:15 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chrisvo]]></name></author>
<updated>2011-10-25T16:01:51+01:00</updated>
<published>2011-10-25T16:01:51+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32598#p32598</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32598#p32598"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32598#p32598"><![CDATA[
libkondo4 will return error codes in its functions to indicate what's wrong. my example code in this thread skips checking for error codes, but you can take a look at the samples in the utils/ folder for how to check for errors and maybe that will tell you something. For example, if there was an error communicating over the FTDI then it would usually tell you specifically what in the FTDI library had a problem, and which kondo (libkondo4) function caused it.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1751">chrisvo</a> — Tue Oct 25, 2011 4:01 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-10-25T15:53:45+01:00</updated>
<published>2011-10-25T15:53:45+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32597#p32597</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32597#p32597"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32597#p32597"><![CDATA[
hmmm that is strange!<br /><br />Thank you for your help and suggestions.<br /><br />Could it be my version of Linux or the linux ftdi / usb libs?<br /><br />Cheers,<br /><br />Keukpa<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2600">keukpa</a> — Tue Oct 25, 2011 3:53 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chrisvo]]></name></author>
<updated>2011-10-25T15:48:11+01:00</updated>
<published>2011-10-25T15:48:11+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32596#p32596</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32596#p32596"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32596#p32596"><![CDATA[
I'm not sure. That code works fine using my RCB4 and servos...<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1751">chrisvo</a> — Tue Oct 25, 2011 3:48 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[keukpa]]></name></author>
<updated>2011-10-25T15:37:18+01:00</updated>
<published>2011-10-25T15:37:18+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32595#p32595</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32595#p32595"/>
<title type="html"><![CDATA[Driving an RCB4]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=5877&amp;p=32595#p32595"><![CDATA[
Hi, yes I have tried the board and servos with Heart2Heart4 and it all works fine. <br /><br />Below is my code, however I still can not get the servo to move!<br /><br />#include &quot;rcb4.h&quot;<br />#include &lt;unistd&gt;<br /><br />KondoInstance ki;<br /><br />int main(int argc, char *argv[])<br />{<br />    // cmd line arguments ----------------------------<br /><br />    // open ------------------------------------------<br /><br />    kondo_init(&amp;ki);<br /><br />    // servo set (ALL) <br />    unsigned char servos[] = { ~0, ~0, ~0, ~0, ~0 };<br /><br />    printf(&quot;%d, %d\n&quot;, *argv[1], servos[0]);<br /><br />    unsigned int command = 32767;<br /><br />    //send the command<br />    kondo_send_ics_pos(&amp;ki, servos, command);<br /><br />    unsigned int command1 = 1000;<br />    kondo_send_ics_pos(&amp;ki, servos, command1);<br /><br />    // close -----------------------------------------<br />    kondo_close(&amp;ki);<br />}<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2600">keukpa</a> — Tue Oct 25, 2011 3:37 pm</p><hr />
]]></content>
</entry>
</feed>