<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on L&#39;Hexapod</title>
    <link>https://lhexapod.com/</link>
    <description>Recent content in Home on L&#39;Hexapod</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-uk</language>
    <lastBuildDate>Mon, 06 Mar 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://lhexapod.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>More than just a delay, it seems...</title>
      <link>https://lhexapod.com/blog/2023/03/delays.html</link>
      <pubDate>Mon, 06 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2023/03/delays.html</guid>
      <description>Back in 2010 I thought that the birth of my first son, Scott, would be just a small blip in my journey into robotics but, looking back, it seems to have been the end of that chapter. Of course, raising children takes time, and Scott was just the first; he was followed shortly after by Max and if I thought assembly and robotics was complex to learn it&amp;rsquo;s nothing compared to raising kids!</description>
    </item>
    
    <item>
      <title>Delays...</title>
      <link>https://lhexapod.com/blog/2010/02/delays.html</link>
      <pubDate>Tue, 16 Feb 2010 00:00:00 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2010/02/delays.html</guid>
      <description>I&amp;rsquo;ve been very busy with other things just recently and so I haven&amp;rsquo;t been able to spend much time on this project. Work has been busy as I&amp;rsquo;m working towards a new release of my code and my son Scott was born on 25th January. Right now I have very little spare time for my robotics but I&amp;rsquo;m sure that will change as things settle into a new routine.</description>
    </item>
    
    <item>
      <title>Bug in v7.0 of the servo controller firmware</title>
      <link>https://lhexapod.com/blog/2010/01/bug-in-v70-of-the-servo-controller-firmware.html</link>
      <pubDate>Sun, 03 Jan 2010 00:00:00 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2010/01/bug-in-v70-of-the-servo-controller-firmware.html</guid>
      <description>The simple servo sequencer that I&amp;rsquo;ve been working on has exposed a bug in the servo controller firmware. The bug is due to stack corruption during movement completion notifications, so it only happens if you use the &amp;lsquo;multi-move&amp;rsquo; commands or the delay move command. The problem is that at the end of SerialSendMoveCompletionNotification we jump back to the serial data accumulation loop rather than using a ret to return&amp;hellip; Since we enter SerialSendMoveCompletionNotification via a call rather than a jump we are failing to balance the stack and so eating two bytes each time we call the function.</description>
    </item>
    
    <item>
      <title>Where are we?</title>
      <link>https://lhexapod.com/blog/2010/01/where-are-we.html</link>
      <pubDate>Sat, 02 Jan 2010 00:00:00 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2010/01/where-are-we.html</guid>
      <description>Once the servo controller code was feature complete I switched to looking at the hardware side of things and thinking about the next stage, the servo sequencing.
From a hardware point of view I had several things to work on. Firstly I needed to get the servo controller and I/O multiplexor chips off of a breadboard and onto something a little more permanent. Since I still find building things with perfboard a little hard I decided to build the controller itself on one board and build separate daughter boards for the I/O multiplexing.</description>
    </item>
    
    <item>
      <title>Sensing servo torque</title>
      <link>https://lhexapod.com/blog/2009/12/sensing-servo-torque.html</link>
      <pubDate>Mon, 07 Dec 2009 08:34:04 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/12/sensing-servo-torque.html</guid>
      <description>Whilst playing around with my servo controller I realised that the power used by a servo goes up considerably when it&amp;rsquo;s under heavy load (such as when it&amp;rsquo;s pressing against the table and still trying to move). I can, potentially, get an idea of this load by measuring the current that each servo is using and using this feedback somehow. I&amp;rsquo;ve yet to work out how, but at the very least it could be used to protect the servos against overloading; if the load gets above a certain threshold then stop moving!</description>
    </item>
    
    <item>
      <title>New soldering iron...</title>
      <link>https://lhexapod.com/blog/2009/12/new-soldering-iron.html</link>
      <pubDate>Thu, 03 Dec 2009 10:32:45 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/12/new-soldering-iron.html</guid>
      <description>I decided to treat myself to an early christmas present and bought a 60W temperature controlled soldering station (a ZD-916 which I got from Maplin). All I can say is WOW. Suddenly I can solder neatly rather than making a smeary mess. The difference between this and my cheapo 12W soldering iron is just unbelievable. It just makes the whole process SO much easier. Where in the past when soldering something with a large heat sink or onto a large pad would be painful as both items would never seem to get up to temperature now I hear the iron click on as I touch the items to be soldered and the heat stays constant and it just works&amp;hellip; Highly recommended.</description>
    </item>
    
    <item>
      <title>ATMega168 64 channel servo controller with &#39;advanced&#39; servo commands</title>
      <link>https://lhexapod.com/blog/2009/11/atmega168-64-channel-servo-controller-with-advanced-servo-commands.html</link>
      <pubDate>Sun, 29 Nov 2009 19:51:15 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/11/atmega168-64-channel-servo-controller-with-advanced-servo-commands.html</guid>
      <description>This is the AVR Studio project and assembly language source code files for the latest version (v7.0) of my 64 channel serial servo controller.
This is the latest version of the ATMega168 version of the code which includes all of the new servo commands that I wrote about here including the multi-move command and the unit tests that I spoke of here. The controller allows you to set minimum, maximum and startup servo positions for each servo which can be saved into eeprom and used every time the controller is powered up.</description>
    </item>
    
    <item>
      <title>Back to JIT testing</title>
      <link>https://lhexapod.com/blog/2009/11/back-to-jit-testing.html</link>
      <pubDate>Thu, 26 Nov 2009 12:41:16 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/11/back-to-jit-testing.html</guid>
      <description>The latest version of the serial servo controller is now fully operational (I&amp;rsquo;ll upload the source code shortly). There are still some bugs that I&amp;rsquo;m finding but the work I put in to getting the unit tests in place makes fixing these bugs pretty straight forward. Whilst I have pretty much 100% coverage for the simpler serial commands I&amp;rsquo;ve stopped writing tests for the &amp;lsquo;multi-move&amp;rsquo; command now and I&amp;rsquo;ve switched to &amp;ldquo;Just in time&amp;rdquo; testing; that is I write a test in response to finding a bug.</description>
    </item>
    
    <item>
      <title>Testing backwards</title>
      <link>https://lhexapod.com/blog/2009/11/testing-backwards.html</link>
      <pubDate>Mon, 16 Nov 2009 16:48:31 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/11/testing-backwards.html</guid>
      <description>It&amp;rsquo;s taken me almost a month but I&amp;rsquo;m finally back to working on integrating the multiple servo move command into the rest of the code. Well, the integration was done long ago, unfortunately the debugging was the bit that was taking up my time.
I decided that putting &amp;lsquo;printf&amp;rsquo; style debug output into the routine to attempt to debug it from my PC based control software was just the wrong way to go about finding the problems and so I set off on a mission to finally get some unit testing into my code.</description>
    </item>
    
    <item>
      <title>ChipHacker.com</title>
      <link>https://lhexapod.com/blog/2009/11/chiphackercom.html</link>
      <pubDate>Sun, 15 Nov 2009 10:08:16 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/11/chiphackercom.html</guid>
      <description>For those of you interested in the kind of thing that this blog is about you might also find ChipHacker.com useful. It&amp;rsquo;s a &amp;lsquo;stackoverflow&amp;rsquo; for embedded programming and electronics people. Hopefully it will become a useful resource!</description>
    </item>
    
    <item>
      <title>Relative branch out of reach</title>
      <link>https://lhexapod.com/blog/2009/11/relative-branch-out-of-reach.html</link>
      <pubDate>Sat, 14 Nov 2009 15:09:51 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/11/relative-branch-out-of-reach.html</guid>
      <description>The test code for the serial command processing code for my serial servo controller is turning out to be the largest piece of assembly language that I&amp;rsquo;ve written. This means that all of a sudden I&amp;rsquo;m coming across &amp;ldquo;Relative branch out of reach&amp;rdquo; errors during the compile. I&amp;rsquo;ve got to a point where every time I add a test I have shuffled the code to such an extent that several relative branches need adjusting from rjmp to jmp or rcall to call.</description>
    </item>
    
    <item>
      <title>Testing, Testing...</title>
      <link>https://lhexapod.com/blog/2009/10/testing-testing.html</link>
      <pubDate>Sat, 31 Oct 2009 12:53:47 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/testing-testing.html</guid>
      <description>The AVR assembly language unit tests that I spoke of last week are going well. I decided to explore the idea of unit testing by writing tests for the easier to test aspects of the serial protocol code and then, as this went well, I decided to write tests for the serial protocol code in order rather that simply jumping to write tests for the code that I know is broken.</description>
    </item>
    
    <item>
      <title>Repeatable Unit Testing with AVR Assembler and AVR Studio</title>
      <link>https://lhexapod.com/blog/2009/10/repeatable-unit-testing-with-avr-assembler-and-avr-studio.html</link>
      <pubDate>Thu, 22 Oct 2009 15:49:09 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/repeatable-unit-testing-with-avr-assembler-and-avr-studio.html</guid>
      <description>As I mentioned yesterday the servo controller project has got to the point where being able to unit test the code would be useful to me. In my day job as a C++ server developer I&amp;rsquo;ve been using unit tests for several years and most of the code that I write is written in a Test Driven Development style. This works well for me and was one of the first things that I missed when I started to develop in AVR assembler in AVR Studio.</description>
    </item>
    
    <item>
      <title>Unit testing AVR assembly language</title>
      <link>https://lhexapod.com/blog/2009/10/unit-testing-avr-assembly-language.html</link>
      <pubDate>Wed, 21 Oct 2009 16:24:55 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/unit-testing-avr-assembly-language.html</guid>
      <description>Way back at the beginning of this journey I mentioned the fact that I&amp;rsquo;d quite like to be able to use some of the development disciplines that I use in my day job during the development of the firmware for my hexapod. Now that I&amp;rsquo;ve actually written some non trivial assembly language for the AVR I find that I&amp;rsquo;m missing not having my usual unit tests to support my ongoing development and refactoring.</description>
    </item>
    
    <item>
      <title>Integrating the multi-move command</title>
      <link>https://lhexapod.com/blog/2009/10/integrating-the-multi-move-command.html</link>
      <pubDate>Thu, 15 Oct 2009 21:26:11 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/integrating-the-multi-move-command.html</guid>
      <description>I&amp;rsquo;m in the process of integrating the stand alone code that implements my &amp;lsquo;multi-servo move&amp;rsquo; command and the rest of the controller. It&amp;rsquo;s harder than it should be, probably because I&amp;rsquo;m not experienced enough yet with assembly language not to have made some school boy errors. Once again I&amp;rsquo;ve run out of registers, mainly because I&amp;rsquo;m trying not to have to push stuff on the stack that often. I&amp;rsquo;ve been juggling with the limited number of registers and up until now it&amp;rsquo;s worked but&amp;hellip;</description>
    </item>
    
    <item>
      <title>After the servo controller</title>
      <link>https://lhexapod.com/blog/2009/10/after-the-servo-controller.html</link>
      <pubDate>Sun, 11 Oct 2009 19:47:14 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/after-the-servo-controller.html</guid>
      <description>The work on turning my excel spreadsheet into AVR assembler code which can move multiple servos to arrive at their target locations at the same time is proceeding well. I have the required code operating in a stand alone environment in the simulator and all I need to do now is merge that in with the rest of the code&amp;hellip; Once that&amp;rsquo;s done my servo controller is complete and whilst I already know that there are at least two further versions in the pipeline I expect I&amp;rsquo;ll move onto something more before working on them.</description>
    </item>
    
    <item>
      <title>Moving multiple servos at once</title>
      <link>https://lhexapod.com/blog/2009/10/moving-multiple-servos-at-once.html</link>
      <pubDate>Wed, 07 Oct 2009 12:42:57 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/moving-multiple-servos-at-once.html</guid>
      <description>The final command for my serial servo controller is the most complex. The idea behind it is that with a hexapod leg you will want to be able to move the leg to a new position where the new position requires all three of the servos that manage the leg to move to potentially new locations. Ideally you want the &amp;ldquo;foot&amp;rdquo; to arrive at the final resting place in such a way that all of the servos complete their moves at the same time.</description>
    </item>
    
    <item>
      <title>Almost there....</title>
      <link>https://lhexapod.com/blog/2009/10/almost-there.html</link>
      <pubDate>Mon, 05 Oct 2009 22:13:06 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/almost-there.html</guid>
      <description>Work on the latest version of the serial servo controller is going well. I&amp;rsquo;d accumulated a pile of random nice to have ideas, some of which then necessitated some other ideas, and then there was the one must have command (the one which moves several servos to new positions over time and ensures that they all arrive at their final resting places at the same time). Of course I&amp;rsquo;ve worked on some of the nice to haves rather than dealing with the final &amp;lsquo;must have&amp;rsquo; command that I need before I can move on to writing some gait controlling software to move multiple legs in sequence&amp;hellip;</description>
    </item>
    
    <item>
      <title>New design please...</title>
      <link>https://lhexapod.com/blog/2009/10/new-design-please.html</link>
      <pubDate>Sat, 03 Oct 2009 22:21:59 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/new-design-please.html</guid>
      <description>Having discussed my serial communication issues on AVRFreaks I&amp;rsquo;ve decided that I need a new design for the servo controller.
My current design is very successful in doing what I set out to do, which was to give priority to the PWM generation aspect of the code. We&amp;rsquo;re generating a rock solid PWM signal. Unfortunately this is at the expense of the correctness of the serial communications and that just isn&amp;rsquo;t right (although the original code had these same serial comms problems too!</description>
    </item>
    
    <item>
      <title>Flow control is the key?</title>
      <link>https://lhexapod.com/blog/2009/10/flow-control-is-the-key.html</link>
      <pubDate>Fri, 02 Oct 2009 14:59:19 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/flow-control-is-the-key.html</guid>
      <description>I posted a question about my serial communications issues over on AVRFreaks and so far the answers have been pointing in the direction of including some form of formalised flow control. This makes sense. I&amp;rsquo;ve yet to decide if hardware flow control in a RTS/CTS form or software flow control such as Xon/Xoff would be best&amp;hellip;</description>
    </item>
    
    <item>
      <title>Serial communications issues</title>
      <link>https://lhexapod.com/blog/2009/10/serial-communications-issues.html</link>
      <pubDate>Fri, 02 Oct 2009 10:53:56 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/serial-communications-issues.html</guid>
      <description>I&amp;rsquo;ve just spent a while tracking down a but which ended up being in my PC based control software rather than in the serial servo controller firmware.
The symptoms of the problem were that my servo controller would suddenly to process random, poorly formed commands. My control software was sending commands correctly but it wasn&amp;rsquo;t waiting for a command echo from the servo controller before sending the next command. Due to the design of the controller (i.</description>
    </item>
    
    <item>
      <title>I seem to have developed something remarkably similar to the SSC 32</title>
      <link>https://lhexapod.com/blog/2009/10/i-seem-to-have-developed-something-remarkably-similar-to-the-ssc-32.html</link>
      <pubDate>Thu, 01 Oct 2009 09:45:18 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/10/i-seem-to-have-developed-something-remarkably-similar-to-the-ssc-32.html</guid>
      <description>I was looking for information to help me decide which servos to buy for the legs; wondering about torque and cost and whatever when I followed a link to the Lynxmotion site and came across the documentation for their SSC 32 servo controller. Although I&amp;rsquo;d looked at their PC based control software that drives this servo controller I hadn&amp;rsquo;t seen the docs for the controller itself. It seems that it has most of the features that my controller has, including the &amp;lsquo;move multiple servos so that they get to the end at the same time&amp;rsquo; command that I&amp;rsquo;m working on now.</description>
    </item>
    
    <item>
      <title>Storing data in the eeprom of an ATMega168</title>
      <link>https://lhexapod.com/blog/2009/09/storing-data-in-the-eeprom-of-an-atmega168.html</link>
      <pubDate>Wed, 30 Sep 2009 08:14:24 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/09/storing-data-in-the-eeprom-of-an-atmega168.html</guid>
      <description>Some of the new commands that I have planned for the servo controller will require that I load and save persistent settings from the ATMega&amp;rsquo;s eeprom. Having spent a little time looking at the example code in the datasheets it seems that you have to disable interrupts to safely read and write the eeprom. It&amp;rsquo;s not a problem to have interrupts disabled whilst I read the settings when the processor boots up but allowing new values to be written back to the eeprom as the result of a serial command will be problematic given the interrupt driven nature of our PWM pulse train.</description>
    </item>
    
    <item>
      <title>ATMega168 64 channel servo controller</title>
      <link>https://lhexapod.com/blog/2009/09/atmega168-64-channel-servo-controller.html</link>
      <pubDate>Tue, 29 Sep 2009 09:01:16 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/09/atmega168-64-channel-servo-controller.html</guid>
      <description>This is the source code for the latest version of the 64 channel servo controller as detailed here.
This is an ATMega168 version of the controller that was originally developed for the ATtiny2313 but which was ported to the ATMega when I ran out of memory on the ATtiny.
The schematic required is similar to the one for the ATtiny2313, I&amp;rsquo;ll produce a new one for the ATMega168 when I get some time.</description>
    </item>
    
    <item>
      <title>New servo controller commands</title>
      <link>https://lhexapod.com/blog/2009/09/new-servo-controller-commands.html</link>
      <pubDate>Thu, 24 Sep 2009 16:28:38 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/09/new-servo-controller-commands.html</guid>
      <description>The new 64 channel ATMega168 serial servo controller accepts the following commands. All successful commands are echoed back. Parameters are validated and errors are indicated with an error response of [0xFF] [badParamIndex] [Command echo] where badParamIndex is a 1 based index of the parameters in the command and indicates which parameter failed validation.
Set Servo Position [0x41] [servo] [position] - This command operates in the same way as the standard SSC compatible servo command that the original servo controllers supported.</description>
    </item>
    
    <item>
      <title>Moving forward</title>
      <link>https://lhexapod.com/blog/2009/09/moving-forward.html</link>
      <pubDate>Tue, 22 Sep 2009 08:50:40 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/09/moving-forward.html</guid>
      <description>Due to work pressure and then holidays and then more work pressure I had to take a break from the servo controller for a couple of weeks. Most of the code changes that I had previously been discussing have been implemented and I&amp;rsquo;m now in the process of testing an ATMega168 version of the 64 channel servo controller complete with new style commands! Since this version of the servo controller uses a custom serial protocol and since it can send unsolicited serial responses back to its controller I needed to write a new PC based control program to test it with.</description>
    </item>
    
    <item>
      <title>Prototype fabrication</title>
      <link>https://lhexapod.com/blog/2009/08/prototype-fabrication.html</link>
      <pubDate>Sat, 08 Aug 2009 14:12:41 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/prototype-fabrication.html</guid>
      <description>As I mentioned back in April after I&amp;rsquo;d put together my first prototype leg, &amp;ldquo;the prototype leg has some fairly major failings from a mechanical point of view&amp;rdquo;. Ideally the real legs will be designed and cut from sheet material, either plastic or metal. Getting to that point is going to take some time though and right now I haven&amp;rsquo;t been able to locate a UK based laser cutting service at an affordable price.</description>
    </item>
    
    <item>
      <title>And then switch to the ATMega168...</title>
      <link>https://lhexapod.com/blog/2009/08/and-then-switch-to-the-atmega168.html</link>
      <pubDate>Fri, 07 Aug 2009 08:48:26 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/and-then-switch-to-the-atmega168.html</guid>
      <description>The new functionality in my servo control takes more memory to implement due to the more complex state that we need to maintain for each servo. The simple controller could support up to 64 PWM channels on the ATTiny2313, the more advanced controller can, at the present stage of the design, support around 15. There&amp;rsquo;s scope to optimise the storage of the expanded 2 byte pulse duration values; they&amp;rsquo;re 12 bit values and so will fit in 1.</description>
    </item>
    
    <item>
      <title>Registers, stack usage and timing</title>
      <link>https://lhexapod.com/blog/2009/08/registers-stack-usage-and-timing.html</link>
      <pubDate>Thu, 06 Aug 2009 08:22:13 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/registers-stack-usage-and-timing.html</guid>
      <description>So far the servo controller development has been reasonably straight forward; once various design issues were considered and once I&amp;rsquo;d got my head around building the hardware and learning AVR assembly language. However I expect that my assembly code has many novice mistakes and that it&amp;rsquo;s probably not especially idiomatic. I haven&amp;rsquo;t been writing in the language long enough and I haven&amp;rsquo;t read enough of other people&amp;rsquo;s code for it to be otherwise.</description>
    </item>
    
    <item>
      <title>Asynchronous serial responses</title>
      <link>https://lhexapod.com/blog/2009/08/asynchronous-serial-responses.html</link>
      <pubDate>Wed, 05 Aug 2009 09:36:03 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/asynchronous-serial-responses.html</guid>
      <description>Part of the new functionality that I&amp;rsquo;m developing for the serial servo controller for my hexapod robot is for the servo controller to take its time in moving a servo from where it is at the moment to where I want it to be. The idea being that the servo controller can worry about the required pacing of the servo moves and we can &amp;lsquo;step&amp;rsquo; from the current position to the required position automatically within the servo controller.</description>
    </item>
    
    <item>
      <title>All the problems of multi-threading without the threads</title>
      <link>https://lhexapod.com/blog/2009/08/all-the-problems-of-multi-threading-without-the-threads.html</link>
      <pubDate>Tue, 04 Aug 2009 09:54:05 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/all-the-problems-of-multi-threading-without-the-threads.html</guid>
      <description>One of the problems of moving from the simple three byte SSC style control system to a system where we can do clever things with multiple servos at once is that the data required to do these clever things is bigger than the data required to do the simple things. See here for the details of the new control data structure. The problem with data that is bigger is reading or writing it atomically (that is, ensuring that our multi-byte data structures are in a consistent state at all times).</description>
    </item>
    
    <item>
      <title>Extending the servo controller</title>
      <link>https://lhexapod.com/blog/2009/08/extending-the-servo-controller.html</link>
      <pubDate>Mon, 03 Aug 2009 13:20:38 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/extending-the-servo-controller.html</guid>
      <description>To be able to implement the new commands for the servo controller I need to adjust the data that we use to control the servos. Right now we have a single byte per servo and that byte contains a value between 0 and 254 which represents the length of the pulse sent to the servo. To be able to implement the delayed or progressive move command we&amp;rsquo;ll need to know the current servo position and the desired servo position.</description>
    </item>
    
    <item>
      <title>What&#39;s next?</title>
      <link>https://lhexapod.com/blog/2009/08/whats-next.html</link>
      <pubDate>Mon, 03 Aug 2009 09:49:05 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/whats-next.html</guid>
      <description>I now have an easy to extend PWM servo controller and the next job on my list of things to do is extend it so that it supports the functionality that I feel I need for correct control of my hexapod&amp;rsquo;s legs. As I mentioned here, I&amp;rsquo;d like to be able to tell the servo controller to move a group of servos to a particular set of positions so that they all arrive at the same time and, the movement is incremental and the movement can be stopped at any point in case a leg sensor detects an obstruction.</description>
    </item>
    
    <item>
      <title>Tweaking the servo controller</title>
      <link>https://lhexapod.com/blog/2009/08/tweaking-the-servo-controller.html</link>
      <pubDate>Sun, 02 Aug 2009 09:15:10 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/tweaking-the-servo-controller.html</guid>
      <description>The 64 channel serial servo controller that I&amp;rsquo;ve been developing works pretty well for me but most of my development and testing was done in the AVR studio simulator. Once I actually started working with my hardware again I noticed a slight problem. Although my servo controller was operating to spec my spec was wrong.
The problem is that the data sheet I have for the Hitec HS-422 servo states that it requires a pulse length of between 900us and 2.</description>
    </item>
    
    <item>
      <title>ATTiny2313 24 channel servo controller schematic </title>
      <link>https://lhexapod.com/blog/2009/08/attiny2313-24-channel-servo-controller-schematic.html</link>
      <pubDate>Sat, 01 Aug 2009 11:39:10 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/attiny2313-24-channel-servo-controller-schematic.html</guid>
      <description>Here is a schematic for a 24 channel version of the ATTiny2313 servo controller. You can expand the number of channels up to the full 64 by adding additional CD74HCT238Es where each additional MUX chip is connected to the next available pin on port b.
ATTiny2313-24ChannelServoController.png The schematic, in Eagle format, is here: ATTiny2313-24ChannelServoController.sch and a potential board layout is here: ATTiny2313-24ChannelServoController.brd These were produced with Eagle and I don&amp;rsquo;t think I could have worked out how to use Eagle without reading Build Your Own Printed Circuit Board by Al Williams.</description>
    </item>
    
    <item>
      <title>A timer driven PWM servo controller - part 4</title>
      <link>https://lhexapod.com/blog/2009/08/a-timer-driven-pwm-servo-controller-part-4.html</link>
      <pubDate>Sat, 01 Aug 2009 08:12:02 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/08/a-timer-driven-pwm-servo-controller-part-4.html</guid>
      <description>The time has finally come to put all of the code from the last three parts of this article together to form a complete serial configured, 64 channel, PWM servo controller for the ATTiny2313 and several CD74HCT238Es.
Here&amp;rsquo;s a recap of where we are and how we got here:
In part 1 I put together some basic PWM generation code that uses the 16-bit Timer1 to generate a rock solid PWM pulse train from some pulse duration data.</description>
    </item>
    
    <item>
      <title>A timer driven PWM servo controller - part 3</title>
      <link>https://lhexapod.com/blog/2009/07/a-timer-driven-pwm-servo-controller-part-3.html</link>
      <pubDate>Thu, 30 Jul 2009 14:12:31 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/07/a-timer-driven-pwm-servo-controller-part-3.html</guid>
      <description>This is part three of a series of articles about the servo controller that I&amp;rsquo;m building for use in the hexapod robot that I intend to build. The first two articles in the series have presented the timer driven PWM generation code and the code used to take the configuration data that is managed by the serial port protocol and convert it into the data that is needed by the PWM generation code.</description>
    </item>
    
    <item>
      <title>A timer driven PWM servo controller - part 2</title>
      <link>https://lhexapod.com/blog/2009/07/a-timer-driven-pwm-servo-controller-part-2.html</link>
      <pubDate>Wed, 29 Jul 2009 11:26:50 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/07/a-timer-driven-pwm-servo-controller-part-2.html</guid>
      <description>In part1 of this timer driven PWM servo controller I built some code which uses Timer1 in the ATTiny2313 to generate 64 PWM signals. The code in part 1 worked from hard-coded dummy data. The code presented here shows how we can create the data that the PWM generation code needs to run.
The timer driven PWM code presented here works in terms of two byte pulse durations and a 1 byte value that determines which pulses are still being generated.</description>
    </item>
    
    <item>
      <title>A timer driven PWM servo controller</title>
      <link>https://lhexapod.com/blog/2009/07/a-timer-driven-pwm-servo-controller.html</link>
      <pubDate>Tue, 28 Jul 2009 09:28:24 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/07/a-timer-driven-pwm-servo-controller.html</guid>
      <description>As I mentioned recently, the original servo controller firmware that I posted was flawed and wasn&amp;rsquo;t suitable to use as a base for the more complex servo control code that I want to add to the controller. The new firmware follows the design that I spoke of here and relies on the ATTiny&amp;rsquo;s 16-bit timer to generate our PWM signals. Since we&amp;rsquo;re using a timer we don&amp;rsquo;t need to waste processor time with hard-coded timing loops full of &amp;rsquo;nop&amp;rsquo;s as we did in the original firmware and this gives us much more time to do useful work.</description>
    </item>
    
    <item>
      <title>Redesigning the servo controller firmware</title>
      <link>https://lhexapod.com/blog/2009/07/redesigning-the-servo-controller-firmware.html</link>
      <pubDate>Mon, 06 Jul 2009 16:12:22 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/07/redesigning-the-servo-controller-firmware.html</guid>
      <description>As I mentioned here, there&amp;rsquo;s a fundamental design problem with the two versions of the ATTiny2313 servo controller firmware that I&amp;rsquo;ve presented so far (see the 8 channel source code and the 64 channel source code). The timing that determines the shape of the PWM signals that are generated relies on carefully crafted timing loops and the time taken by particular code sequences and this is affected by the interrupt driven serial I/O that is used to control the controller.</description>
    </item>
    
    <item>
      <title>Chiara hexapod</title>
      <link>https://lhexapod.com/blog/2009/06/chiara-hexapod.html</link>
      <pubDate>Wed, 17 Jun 2009 18:06:51 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/06/chiara-hexapod.html</guid>
      <description>This is rather nice; Chiara Robot from Carnegie Mellon University&amp;rsquo;s Tekkotsu lab (via HackedGadgets.com).</description>
    </item>
    
    <item>
      <title>Fabrication...</title>
      <link>https://lhexapod.com/blog/2009/06/fabrication.html</link>
      <pubDate>Wed, 10 Jun 2009 12:14:58 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/06/fabrication.html</guid>
      <description>Here are some links that may help once I move onto fabricating the various pieces required to build the hexapod&amp;rsquo;s body.
This is a simple 4 legged walking robot that was machined from an A4 piece of 4mm ply wood. This is the guy&amp;rsquo;s website, with more details of how he produced the robot. And this is the Dutch prototyping lab that he used to laser cut the pieces. Finally, this is an interesting link to David Buckley&amp;rsquo;s walking robots page.</description>
    </item>
    
    <item>
      <title>Linkfest...</title>
      <link>https://lhexapod.com/blog/2009/06/linkfest.html</link>
      <pubDate>Fri, 05 Jun 2009 18:32:55 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/06/linkfest.html</guid>
      <description>A collection of links that I&amp;rsquo;ve been using recently for research.
Servos and robotics Hitec HS-422 Servo. The servos I currently have; likely not suitable for use as actual leg servos due to lack of torque. Useful link as www.superdroidrobots.com has links to the spec sheet for the servo and a selection of different spec servos with corresponding prices. More useful to me than the actual Hitec website as that doesn&amp;rsquo;t list relative prices.</description>
    </item>
    
    <item>
      <title>Fundamental design flaw in the servo controller code</title>
      <link>https://lhexapod.com/blog/2009/06/fundamental-design-flaw-in-the-servo-controller-code.html</link>
      <pubDate>Wed, 03 Jun 2009 18:02:01 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/06/fundamental-design-flaw-in-the-servo-controller-code.html</guid>
      <description>In my opinion there&amp;rsquo;s a fundamental design flaw in the both the 8 channel and the 64 channel servo controller firmware that I&amp;rsquo;ve presented. Both allow the serial data handling code to take priority over the PWM generation code. This means that there is no way to guarantee that the PWM generation code will produce a perfect pulse train in the presence of configuration changes being sent to the controller via the serial port.</description>
    </item>
    
    <item>
      <title>Atmel ATtiny2313 Servo Controller v0.2 - source code</title>
      <link>https://lhexapod.com/blog/2009/06/atmel-attiny2313-servo-controller-v02-source-code.html</link>
      <pubDate>Wed, 03 Jun 2009 10:54:07 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/06/atmel-attiny2313-servo-controller-v02-source-code.html</guid>
      <description>Here&amp;rsquo;s the source code to the 64 channel ATtiny2313 servo controller. Note that you&amp;rsquo;ll need to use up to 8 CD74HCT238E, or equivalent, demultiplexer chips and that you can adjust the number of servos that you can control in steps of 8 using as many or as few CD74HCT238E chips as you want. If you only want 8 channels then you can do this without any demultiplexer chips; see here for source code to the 8 channel version.</description>
    </item>
    
    <item>
      <title>64 channel servo controller...</title>
      <link>https://lhexapod.com/blog/2009/06/64-channel-servo-controller.html</link>
      <pubDate>Tue, 02 Jun 2009 09:13:51 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/06/64-channel-servo-controller.html</guid>
      <description>I&amp;rsquo;ve been experimenting with the servo controller that I developed for the ATtiny2313 here and the demultiplexing chips that I mentioned here. The result is a 64 channel servo controller that seems to work pretty well. Right now I haven&amp;rsquo;t breadboarded all 64 channels, I have two of the CD74HCT238E chips connected to the ATtiny but I/O pins and he firmware would drive 8 of them if they were connected to give 64 channels.</description>
    </item>
    
    <item>
      <title>Atmel ATtiny2313 Servo Controller v0.1 - source code</title>
      <link>https://lhexapod.com/blog/2009/05/atmel-attiny2313-servo-controller-v01-source-code.html</link>
      <pubDate>Thu, 21 May 2009 12:16:51 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/05/atmel-attiny2313-servo-controller-v01-source-code.html</guid>
      <description>The jitters and general instability of the hacked together simple servo controller (see here) for the ATtiny2313 were, it seems, down to the fact that the internal clock wasn&amp;rsquo;t stable enough and this caused enough timing issues to throw the PWM off enough to jiggle the servo position around rather than hold it steady. This morning my external 4MHz crystals arrived and after changing the processor&amp;rsquo;s fuse bits to accommodate the change in clock source everything was fine and the code started behaving itself.</description>
    </item>
    
    <item>
      <title>CD74HCT238E</title>
      <link>https://lhexapod.com/blog/2009/05/cd74hct238e.html</link>
      <pubDate>Tue, 19 May 2009 17:54:10 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/05/cd74hct238e.html</guid>
      <description>My progress has been slow over the past couple of weeks because a) I&amp;rsquo;ve been rather busy with other things and b) an order of components has gone missing in the post. The order contains some 4mhz crystals and therefore my server controller firmware testing has been on hold as I&amp;rsquo;d like to remove the potential clock instability as a potential cause of the controller jitters before continuing my debugging.</description>
    </item>
    
    <item>
      <title>Atmel ATtiny2313 Servo Controller v0.1 </title>
      <link>https://lhexapod.com/blog/2009/05/atmel-attiny2313-servo-controller-v01.html</link>
      <pubDate>Fri, 08 May 2009 07:00:57 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/05/atmel-attiny2313-servo-controller-v01.html</guid>
      <description>This morning I tested the first version of my custom servo controller. It&amp;rsquo;s currently heavily based on the source for 16 channel servo controller that I&amp;rsquo;ve mentioned before. What I did was simply adjust that source for my target processor and the fact that I&amp;rsquo;m using it with a 4Mhz internal clock rather than the more standard &amp;ldquo;RS232 baud rate friendly&amp;rdquo; 3.6864 MHz that the original code used.
The main changes were to the reduce the controller from 16 channels to 8 since the ATtiny2313 doesn&amp;rsquo;t have enough pins to run 16 channels and to adjust the general setup to account for the new processor.</description>
    </item>
    
    <item>
      <title>AVR Studio 4</title>
      <link>https://lhexapod.com/blog/2009/05/avr-studio-4.html</link>
      <pubDate>Thu, 07 May 2009 08:18:20 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/05/avr-studio-4.html</guid>
      <description>I&amp;rsquo;ve been spending some time getting to know AVR Studio 4, especially the simulation and debugging functionality. It&amp;rsquo;s a very functional and very useful free development suite that can be downloaded from Atmel from here.
As I mentioned a while back I have had a C compiler and development and programming tool chain set up for a while now but I hadn&amp;rsquo;t got around to working out how to debug the code.</description>
    </item>
    
    <item>
      <title>I may have been a little harsh...</title>
      <link>https://lhexapod.com/blog/2009/05/i-may-have-been-a-little-harsh.html</link>
      <pubDate>Fri, 01 May 2009 11:11:27 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/05/i-may-have-been-a-little-harsh.html</guid>
      <description>After a little more debugging this morning I&amp;rsquo;m coming to the conclusion that I may have been a little harsh on the Arduino&amp;rsquo;s software serial port.
More when I know more, but I think it&amp;rsquo;s more of a flow control issue with my data transmission from the PC.</description>
    </item>
    
    <item>
      <title>Arduino multiple serial disappointment</title>
      <link>https://lhexapod.com/blog/2009/04/arduino-multiple-serial-disappointment.html</link>
      <pubDate>Thu, 30 Apr 2009 22:46:48 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/arduino-multiple-serial-disappointment.html</guid>
      <description>Tonight I took a look at the &amp;lsquo;software serial&amp;rsquo; support in the Arduino. I can&amp;rsquo;t say I&amp;rsquo;m that impressed&amp;hellip;
The Arduino has a built in hardware UART (a hardware serial port) which works as expected. It allows you to talk to external serial devices but there&amp;rsquo;s only one of it so if you want to have an external device talk to you via a serial port and then you want to talk to something else via another serial port then you&amp;rsquo;re out of luck.</description>
    </item>
    
    <item>
      <title>The servo controller problems weren&#39;t power supply noise...</title>
      <link>https://lhexapod.com/blog/2009/04/the-servo-controller-problems-werent-power-supply-noise.html</link>
      <pubDate>Thu, 30 Apr 2009 19:57:48 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/the-servo-controller-problems-werent-power-supply-noise.html</guid>
      <description>I&amp;rsquo;ve been testing the new leg with one power supply for the servos and one for the electronics and all is working well. I expect that all would be working well if I were using a single power supply for both, as long as I was using the new one I soldered up and not the old one&amp;hellip;
I decided that since I would be using a 5v power supply for most of the bits of this project that I&amp;rsquo;d grab and old mains transformer and wire up a 5v regulator and run from the mains rather than batteries.</description>
    </item>
    
    <item>
      <title>Books for programming an AVR micro</title>
      <link>https://lhexapod.com/blog/2009/04/books-for-programming-an-avr-micro.html</link>
      <pubDate>Sat, 25 Apr 2009 22:57:49 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/books-for-programming-an-avr-micro.html</guid>
      <description>So far I&amp;rsquo;ve bought three AVR programming books. AVR: An Introductory Course, Programming and Customizing the AVR Microcontroller and Atmel AVR Microcontroller Primer: Programming and Interfacing (Synthesis Lectures on Digital Circuits and Systems).
They are three quite different books and each has a distinct focus.
I read AVR: An Introductory Course first. It&amp;rsquo;s a slim volume that teaches you how to program the AVR family of micros with assembly language. It&amp;rsquo;s a good book and the focus is very much on learning how to program the various facilities available and how to use the various programming constructs to get work done.</description>
    </item>
    
    <item>
      <title>Once more with feeling</title>
      <link>https://lhexapod.com/blog/2009/04/once-more-with-feeling.html</link>
      <pubDate>Sat, 25 Apr 2009 15:58:17 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/once-more-with-feeling.html</guid>
      <description>Having decided that the graduated servo positioning method was the way to go to allow for leg sensors to work correctly I started thinking about leg sensors.
Here&amp;rsquo;s a new lower leg with three switches, one on the foot, one to the inside of the leg and one to the outside of the leg.
ProtoLegv02-1.png ProtoLegv02-2.png Ideally the front and back switches would be extended with thin metal bars running the length of the leg and fixed just above the ankle.</description>
    </item>
    
    <item>
      <title>More thoughts on the proto leg</title>
      <link>https://lhexapod.com/blog/2009/04/more-thoughts-on-the-proto-leg.html</link>
      <pubDate>Thu, 23 Apr 2009 19:05:26 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/more-thoughts-on-the-proto-leg.html</guid>
      <description>I adjusted my quick and dirty servo controller program to calculate the number of moves required for the servo that needed to move furthest and then spread the movement of the other servos across the same number of moves. So, given that the servo controller works in terms on a position from 0 - 254 where 0 is full left and 254 is full right and we have three servos that make up the leg I look at the differences between where the three servos are now and where they will be at the end of the move and then build a sequence of moves to get from here to there.</description>
    </item>
    
    <item>
      <title>First steps in embedded programming; first build the hardware...</title>
      <link>https://lhexapod.com/blog/2009/04/first-steps-in-embedded-programming-first-build-the-hardware.html</link>
      <pubDate>Thu, 23 Apr 2009 18:37:41 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/first-steps-in-embedded-programming-first-build-the-hardware.html</guid>
      <description>This week I managed to scrape together some time to play with some of the non prototype bits and pieces that I purchased for this project. First off was breadboarding a MAX232 chip so that I could talk via my PCs serial port to my ATtiny2313 microcontroller. The MAX232 does the required level shifting and talks RS232 signals on one side and TTL signals on the other. The result is that it makes it possible to connect a microcontroller&amp;rsquo;s internal UART to a PC.</description>
    </item>
    
    <item>
      <title>Thoughts on the proto leg</title>
      <link>https://lhexapod.com/blog/2009/04/thoughts-on-the-proto-leg.html</link>
      <pubDate>Tue, 21 Apr 2009 13:30:10 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/thoughts-on-the-proto-leg.html</guid>
      <description>The prototype leg has some fairly major failings from a mechanical point of view. The only part that may eventually find its way into a weight bearing leg is the lower leg where the cut out around the knee servo provides ample support for the servo itself and also a suitable mounting point for the servo. The hip servos need much more support before they could be used to form a weight bearing leg either in the form of metal brackets or more complexly cut board.</description>
    </item>
    
    <item>
      <title>Prototype leg v0.1</title>
      <link>https://lhexapod.com/blog/2009/04/prototype-leg-v01.html</link>
      <pubDate>Mon, 20 Apr 2009 17:02:54 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/prototype-leg-v01.html</guid>
      <description>I spent a little time at the weekend putting together my three servos into a prototype leg. The idea is that this very quick and very dirty little experiment should give me some more avenues to explore; and something to show people.
I had originally planned to build the leg out of wood, perhaps thin plywood, but I didn&amp;rsquo;t have any laying around so instead I used some plastic window board which is relatively light and strong.</description>
    </item>
    
    <item>
      <title>The servos are twitching</title>
      <link>https://lhexapod.com/blog/2009/04/the-servos-are-twitching.html</link>
      <pubDate>Thu, 16 Apr 2009 14:22:13 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/the-servos-are-twitching.html</guid>
      <description>My package from Cool Components arrived this morning. My choice of prototyping equipment was quickly validated when I plugged together the Arduino and the Pololu servo controller board, plugged in the servos and servo power supply, connected the lot to the pc via a usb cable and had three servos twitching back and forth under the control of the Arduino is no time. The idea is that I can now begin fabricating a leg, connect up the servos and then experiment with leg movement without needing to get the soldering iron out.</description>
    </item>
    
    <item>
      <title>Pulse width modulation for servo position control</title>
      <link>https://lhexapod.com/blog/2009/04/pulse-width-modulation-for-servo-position-control.html</link>
      <pubDate>Sat, 11 Apr 2009 00:00:00 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/pulse-width-modulation-for-servo-position-control.html</guid>
      <description>First some basics: servo motors are what I&amp;rsquo;ll be using to provide movement for the robot. Each leg will consist of at least three servo motors (1 at the knee and two at the hip). As you&amp;rsquo;ll see from the wikipedia link above, servo motors are generally controlled by pulse width modulation. In order to control multiple servos you need to generate a continuous PWM control signal for each servo.</description>
    </item>
    
    <item>
      <title>Useful links and suppliers </title>
      <link>https://lhexapod.com/blog/2009/04/useful-links-and-suppliers.html</link>
      <pubDate>Thu, 09 Apr 2009 18:30:00 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/useful-links-and-suppliers.html</guid>
      <description>So far most of my more interesting components have been purchased from Cool Components mainly because they&amp;rsquo;re UK based and they stocked stuff I was interested in. I found them via SparkFun which is a treasure trove of fun; unfortunately I can&amp;rsquo;t find UK distributors for much of the stuff they have available and at present I&amp;rsquo;m trying to avoid buying bits and pieces for this project from the US as the shipping is often more expensive than the order.</description>
    </item>
    
    <item>
      <title>Servos with status feedback</title>
      <link>https://lhexapod.com/blog/2009/04/servos-with-status-feedback.html</link>
      <pubDate>Thu, 09 Apr 2009 08:10:45 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/servos-with-status-feedback.html</guid>
      <description>I saw these Dynamixel DX servos mentioned on Trossen Robotics this morning, see here. They&amp;rsquo;re interesting because they have a richer interface than the normal hobby servos that I&amp;rsquo;ve been looking at and they provide a multidrop RS485 interface so that you can chain multiple servos together and control them individually via a single line. You can get feedback on the angular position, velocity and torque and also alerts if temperature and voltage deviate from expected (user specified) ranges.</description>
    </item>
    
    <item>
      <title>Micromagic systems</title>
      <link>https://lhexapod.com/blog/2009/04/micromagic-systems.html</link>
      <pubDate>Wed, 08 Apr 2009 16:36:18 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/micromagic-systems.html</guid>
      <description>Micromagic systems do robotics and animatronics for the film and tv industry and have quite a nice selection of hexapod robots. It&amp;rsquo;s especially interesting to see the evolution of their robots here. Their latest stuff is very impressive and puts into perspective how much I have to learn&amp;hellip;
Their robotics store (http://www.hexapodrobot.com) is also full of useful information.</description>
    </item>
    
    <item>
      <title>A-pod, an ant inspired hexapod</title>
      <link>https://lhexapod.com/blog/2009/04/a-pod-an-ant-inspired-hexapod.html</link>
      <pubDate>Wed, 08 Apr 2009 15:24:42 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/a-pod-an-ant-inspired-hexapod.html</guid>
      <description>This is the kind of thing that I mean when I say &amp;lsquo;hexapod robot&amp;rsquo;. I particularly like the head and mandibles.
More details can be found here: http://forums.trossenrobotics.com/showthread.php?t=2762 and here: http://blog.trossenrobotics.com/index.php/2009/03/17/a-pod-a-robot-ants-tale/</description>
    </item>
    
    <item>
      <title>Welcome</title>
      <link>https://lhexapod.com/blog/2009/04/welcome.html</link>
      <pubDate>Wed, 08 Apr 2009 13:44:13 +0000</pubDate>
      
      <guid>https://lhexapod.com/blog/2009/04/welcome.html</guid>
      <description>Hi, my name is Len Holgate and this is a blog about my new project to design and build a hexapod robot; a mechanical vehicle that walks on six legs&amp;hellip;
By day I design and build high performance TCP and UDP servers for the Windows platform, my C++ technical blog is here: www.lenholgate.com. Up until a few weeks ago I&amp;rsquo;d never done any electronics or embedded programming; I decided that I needed a new hobby and so started tinkering with electronics, breadboarding and the like and, in what tends to be my typical approach to such things, I decided that the best way to push myself into this new hobby was to dive in to reasonably complex project.</description>
    </item>
    
  </channel>
</rss>