Gumstix is a very versatile platform as long as you can efficiently make use of the its modest hardware capabilities. The Connex 200xm board that I will be working with has a 200Mhz Intel XScale processor, 64MB of SDRAM and 16MB of strataflash for storage. The operating system that comes installed on the strataflash memory chip is a lightweight but full-fledged Linux distribution, which can be easily modified and rebuilt using the OpenEmbedded development environment. The small storage size means that any large applications will require an additional storage component in the form of a micro SD, Compact Flash or MMC card. But the 64MB of SDRAM should be more than sufficient for most embedded applications that you want a Gumstix to handle.
Now that I have a stable connection open to the Gumstix via both serial and USBnet, it’s time to move and start exploring what it can do. One of the possible uses for the Gumstix would be as smart controller board for simpler electronic systems such as simple robots. Since the OpenEmbedded system supports running programs written in high-level interpreted languages such as Python and Perl, it opens up the possibility of writing programs in those languages to control these simple robots. This is something that I intend to investigate in the relatively near future. One of the goals for my Gumstix project is to make the Gumstix control the Hemisson robots which have a much simpler 8-bit, 20MHz microcontroller. Though it is certainly possible to program the Hemisson microprocessor directly in C, this would not be particularly easy, and the programs would be limited by the processor’s capabilities. More on the Hemisson robots later.
The various extension boards available (especially those incorporating wifi and Bluetooth)make it possible to use the Gumstix as lightweight servers, possibly communicating with various other mobile devices (and other Gumstix). It would be interesting to study what network architectures would make the most efficient usage of a the lightweight, mobile nature of the Gumstix. Once again there is an obvious application in robotics: creating intelligent, decentralized swarms capable of solving a wide variety of problems.
Although the swarm networking is something that I am very interested in eventually exploring, my first goal will be to figure how to create a good interface between a host computer, a Gumstix and a Hemisson robot. Among the things I have considered is creating a simple BASIC-like language which the Gumstix would then interpret to drive the robot. I’m also going to look at the other expansion boards available to see if any of them would help make my job easier.