Blogs

L'Hexapod: First steps in embedded programming; first build the hardware...

Previously published This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here. 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.

L'Hexapod: Thoughts on the proto leg

Previously published This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here. 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.

Interesting piece on thread pools

Herb Sutter has just published an interesting article over at DDJ on correctly using thread pools: Use Thread Pools Correctly: Keep Tasks Short and Nonblocking. It’s not rocket science and it doesn’t deal with platform issues but it’s a useful summary of why The Server Framework’s thread pools operate as they do. Note that on Windows you can use IO Completion Ports to manage the work queue into the thread pool and this can keep the number of threads that are scheduled to run at the optimum number so that the pool operates at the ‘correct load’ for most of the time even in the presence of blocking tasks.

Bug fix for the free server framework code

A user of my free server framework code has reported an error and supplied a fix. The problem is that he’s been having connections closing and returning ERROR_CONNECTION_ABORTED and the free code doesn’t handle this situation very well and this was causing his I/O threads to terminate and leaving him with an unresponsive server. Interestingly I’ve never had this problem reported before and haven’t been able to duplicate the issue but I thought it would be useful to publish the fix in case anyone else comes across the problem.

L'Hexapod: Prototype leg v0.1

Previously published This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here. 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.

L'Hexapod: The servos are twitching

Previously published This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here. 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.

Custom application servers

A lot of the custom development work that we do for our customers can be classified as developing ‘custom application servers’. Development for these kinds of servers usually requires that we design a wire-protocol for communications between the clients and the server, implement a server that either does everything that the customer requires or allows them to easily plug in their business logic and provide a client side library (or two) that makes it easy for the customer to write clients for the server.

L'Hexapod: Pulse width modulation for servo position control

Previously published This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here. First some basics: servo motors are what I’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’ll see from the wikipedia link above, servo motors are generally controlled by pulse width modulation.

L'Hexapod: Useful links and suppliers

Previously published This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here. So far most of my more interesting components have been purchased from Cool Components mainly because they’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’t find UK distributors for much of the stuff they have available and at present I’m trying to avoid buying bits and pieces for this project from the US as the shipping is often more expensive than the order.

L'Hexapod: Servos with status feedback

Previously published This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here. I saw these Dynamixel DX servos mentioned on Trossen Robotics this morning, see here. They’re interesting because they have a richer interface than the normal hobby servos that I’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.