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

<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>2007-01-27T10:17:44+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=5&amp;t=953</id>
<entry>
<author><name><![CDATA[pepperm]]></name></author>
<updated>2007-01-27T10:17:44+01:00</updated>
<published>2007-01-27T10:17:44+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6564#p6564</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6564#p6564"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6564#p6564"><![CDATA[
Hi<br /> What you are doing looks really good and you are clearly making progress.<br />Interestingly, Limor and I are trying to do something similar or at least<br />related. We are trying to make a Bioloid I/O module that would sit on the<br />1Mbit bus and provide extended I/O functionality to the Bioloid. I am<br />thinking of providing things like extra I/O to control whatever takes your<br />fancy or allows interfacing to other interface types such as i2C. Maybe the<br />unit could be used to get input from other sensor types such as a compass,<br />gyro or sonar unit. Details of the hardware are published here<br /><a href="http://robosavvy.com/modules.php?name=Forums&amp;file=viewtopic&amp;t=572&amp;highlight=bioloid" class="postlink">http://robosavvy.com/modules.php?name=Forums&amp;file=viewtopic&amp;t=572&amp;highlight=bioloid</a>.<br /><br /> So far we have some code that is able to spot data being sent on the bus<br />but we are making very slow progress getting any further, and I was<br />wondering if you would be interested in helping out (if you have time that<br />is of course). Limor has some code in C and I have some in BASCOM AVR that<br />does the same thing. It just flashes an LED when data is seen on the bus.<br /><br /> What do you think?<br /><br /> Mark<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=220">pepperm</a> — Sat Jan 27, 2007 10:17 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-26T07:58:39+01:00</updated>
<published>2007-01-26T07:58:39+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6512#p6512</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6512#p6512"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6512#p6512"><![CDATA[
Well I got the pings 'working'. I just don't bother WaitForCommEvent and it appears to work.<br /><br />I made a little program that lets me record poses and play them back. However, I am getting nearly a 1/2 second delay between hitting a key to set a pose and the pose actually happening. <br /><br />That's not gonna work!<br /><br />I'm using the normal humanoid minus 2 servos, so it is a decent amount of servos. I'm guessing the problem is with my read timeouts. Tomorrow I'll make a key that'll toggle the servos replies and see if that helps things.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Fri Jan 26, 2007 7:58 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-26T05:55:59+01:00</updated>
<published>2007-01-26T05:55:59+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6509#p6509</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6509#p6509"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6509#p6509"><![CDATA[
I think I have things pretty much working minus pings. I can't seem to get the timeouts properly configured and it is hanging on me.<br /><br />Does anyone have experience with what I should set these to? Maybe I should just do it async and be done with it. bah.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Fri Jan 26, 2007 5:55 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-17T07:45:54+01:00</updated>
<published>2007-01-17T07:45:54+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6231#p6231</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6231#p6231"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6231#p6231"><![CDATA[
I didn't have much time to work tonight, but I finally put in print mechanism. It will be MUCH easier to debug things now. Nothing like being able to see what you're doing!<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Wed Jan 17, 2007 7:45 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-16T08:40:56+01:00</updated>
<published>2007-01-16T08:40:56+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6186#p6186</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6186#p6186"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6186#p6186"><![CDATA[
I'm now able to get/set servo values, though I have some garbage in there so I have to do it multiple times for it to work. Good thing is that it seems to be robust enough to get itself out of a mess. Now to get rid of the mess!<br /><br />The API continues to evolve. Here's today incarnation..<br /><br /><span style="font-size: 75%; line-height: 116%;"><br />int  dmtalk_connect( enum DMTalkApiVersion apiVersion, const char* port );<br />void dmtalk_disconnect( );<br />int  dmtalk_packet_read( int valuesCapacity, unsigned char* result_values );<br />int  dmtalk_packet_write( int servoId, enum DMTalkInstruction instruction, enum DMTalkAddress address, int numValues, const unsigned char* values);<br />int  dmtalk_value_get( int servoId, enum DMTalkAddress address, int numValues, unsigned char* result_values);<br />int  dmtalk_value_get_8( int servoId, enum DMTalkAddress address, unsigned char* result_value);<br />int  dmtalk_value_get_16( int servoId, enum DMTalkAddress address, unsigned short* result_value);<br />int  dmtalk_value_set( int servoId, enum DMTalkAddress address, int dataLength, const unsigned char* data);<br />int  dmtalk_value_set_8( int servoId, enum DMTalkAddress address, unsigned char value);<br />int  dmtalk_value_set_16( int servoId, enum DMTalkAddress address, unsigned short value);</span><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Tue Jan 16, 2007 8:40 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-15T10:11:50+01:00</updated>
<published>2007-01-15T10:11:50+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6151#p6151</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6151#p6151"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6151#p6151"><![CDATA[
Oh how I love debugging packing/unpacking data with my eyes shut! haha. I really need to get my tools in order. I'm trying to do this thing non-overlap and that gives me only limited print debugging.<br /><br />I decided on first going the raw route. The CM5 just grabs the packets and forwards them in either direction. I finally got it to set the position of the servo with a servo packet constructed on the C side (instead of just sending keys that the CM5 listens for). I spent a lot of time scratching my head because I assumed that you could just set the low byte for the goal position. Well, apparently not. As soon as I send another 0 for the high byte my servo shot over to the expected position. I'm a little disappointed that it works this way because you can get nearly a 2x compression for free by knowing what side of 'the line' the servo is at.<br /><br />I'm also wondering if I might be able to make this work in almost the same way with the CM5 or without (with the half-duplex circuit). The WaitCommEvent allows you to know when you've transmitted everything with the EV_TXEMPTY event and after you get that you could set some control flags to change your tx/rx direction. The question is how long the OS and the other hardware between the port and that call will twiddle their thumbs.<br /><br />btw. Here's what the barebones api is looking like so far..<br /><br /><dl class="codebox"><dt>Code: </dt><dd><code>int  dmtalk_connect&#40; enum DMTalkVersion apiVersion, const char* port &#41;;<br />void dmtalk_disconnect&#40; &#41;;<br />int  dmtalk_readPacket&#40; int servoId, enum DMTalkReadOp instruction, enum DMTalkAddress address, int readLength, const unsigned char* result_buffer&#41;;<br />int  dmtalk_writePacket&#40; int servoId, enum DMTalkWriteOp instruction, enum DMTalkAddress address, int writeLength, const unsigned char* data&#41;;<br /></code></dd></dl><br /><br />On top of this I'll build the more pretty and useful functions.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Mon Jan 15, 2007 10:11 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-15T00:27:15+01:00</updated>
<published>2007-01-15T00:27:15+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6143#p6143</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6143#p6143"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6143#p6143"><![CDATA[
I have a little minimal app talking to the servos via my little api now. <br /><br />I have a couple of options at this point. I can decide on using the Dynamixel packet protocol directly, or make up my own and have the CM5 translate, or maybe do both.<br /><br />I am thinking that I might go for both and have the ability to mix and match them. The CM5 could distinguish between the two by looking at the first byte in a packet. If it's 0xff it is the Dynamixel protocol. If not it is another protocol.<br /><br />The nice thing about having my own protocol is that I can compress it before transmission and decompress on the CM5. It mostly would do this by having each side keep track of the known states of the other side and sending only minimal delta information to update each other.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Mon Jan 15, 2007 12:27 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-14T07:30:26+01:00</updated>
<published>2007-01-14T07:30:26+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6102#p6102</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6102#p6102"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6102#p6102"><![CDATA[
I finally got WinAVR working on Vista and made some progress. I now have the AMAZING (haha) ability to move a servo back and forth 10 units with the a/d keys from within the robot terminal. That requires the ability to read the position, then write the position plus a delta. So far so good.<br /><br />I'm far enough now that I feel like I can abandon the terminal and start using my own software. <br /><br />I'm wondering how long it will take before I can't stand dealing with the annoying manual bootloader process. I'm thinking that I could just have my software notice if my firmware hex file has changed and upload it if it has. That would be quite convenient.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Sun Jan 14, 2007 7:30 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-14T04:48:53+01:00</updated>
<published>2007-01-14T04:48:53+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6098#p6098</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6098#p6098"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6098#p6098"><![CDATA[
Cool. Maybe it'll be fast enough to control and get feedback from all the servos using a little bit of simple compression.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Sun Jan 14, 2007 4:48 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JonHylands]]></name></author>
<updated>2007-01-14T00:12:39+01:00</updated>
<published>2007-01-14T00:12:39+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6085#p6085</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6085#p6085"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6085#p6085"><![CDATA[
If you're putting your own firmware in there, you should be able to up the baud rate to 115,200...<br /><br />- Jon<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=373">JonHylands</a> — Sun Jan 14, 2007 12:12 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[billyzelsnack]]></name></author>
<updated>2007-01-14T00:02:14+01:00</updated>
<published>2007-01-14T00:02:14+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6083#p6083</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6083#p6083"/>
<title type="html"><![CDATA[Example.c]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=953&amp;p=6083#p6083"><![CDATA[
I think I might try yet another route.. haha. I really would like it so the programs I write be useable by others without special hardware. So I am now investigating swapping out the CM5 firmware with something else.<br /><br />I finally got example.c compiled and loaded. Apparently WinAVR + Vista is a mess. I put it on a XP machine and it just worked first try.<br /><br />So now the next step is to try and get the uC to see things I am sending over the stock serial cable. Hopefully I'll be more successful than my previous attempts when using just the behavior programs. After that I'll put together a simple PC side C API and demo app to communicate with the new firmware.<br /><br />I also would like to make something that interacts with the bootloader a little more user friendly. Something so that an end-user would be more comfortable using and would make it easier to install new firmware and revert back to the bioloid firmware quickly.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=459">billyzelsnack</a> — Sun Jan 14, 2007 12:02 am</p><hr />
]]></content>
</entry>
</feed>