I found GumStix to be responsive to my concerns, and the company has shown itself to be responsive to their users and open to challenges in developing novel products.
GumStix, founded in 2004, focuses on single-board computers (SBCs) built around the Intel XScale PXA255 chip with Linux onboard. This review covers two GumStix products in the WaySmall line, the WS200 and WS200-bt, one with and one without an Infineon ROK104001 Bluetooth module. The case is basic and small (1.5" × .25" × .5") with two mini-DIN8 serial connects and a USB mini-B port connector, a port for an MMC Flash memory module and a 0.65 mm 4.5V power connector. The version equipped with Bluetooth has an antenna connector as well.
It is clear that the GumStix product line is evolving and expanding rapidly. Since this review began, GumStix has added Bluetooth as an option, and the company provided the second evaluation unit well into the review process. In addition to Bluetooth, the newer version of the WS200 has a 60-pin Hirose daughterboard connector rather than the 24-pin MOLEX connector on the original evaluation model. I found GumStix to be responsive to my concerns, and the company has shown itself to be responsive to their users and open to challenges in developing novel products. Hopefully, that attitude will not change.
The GumStix has the potential to be a truly breakaway product. Several other SBCs are available, but none offers the combination of price, functionality, size and low power consumption that GumStix offers. If you're an embedded developer, the speed will make you happy, and the ease of use will make you smile for days. I had the WaySmall running, connected to my Fedora Core 2 notebook, in less than 15 minutes. The WaySmall devices are an excellent place to start learning embedded Linux.
Now, a little bad news: the documentation is a work in progress; however, the company indicates that it understands the documentation has issues and is working hard to improve it. GumStix recently added a Wiki with up-to-date information and is rewriting the user manuals.
The Intel XScale PXA255 CPU with its ARM core has several toolchains available, and the manufacturer recommends both the gcc-3.3.2 and gcc-3.4.0 compilers. By publication time, additional sets of tools will be added to the ones listed here. The variety of tools is a useful aspect of the GumStix, because not all tools provide the same options and utilities. Further, because most companies have preferred toolchains, and many of us have our own preferences, not being tied to a particular toolchain is an excellent feature.
Don't believe the GumStix manual when it states that it takes 30 minutes to download and install the toolchain and to create, install and run the ubiquitous HelloWorld.c. The time it takes to do so depends on many variables, such as, which toolchain you select and how much horsepower the host has. Finally, an MMC adapter on the host is recommended by GumStix, but I found it to be absolutely essential.
The uClibc toolchain already was installed on my machine, so it was not necessary to reinstall it, but I tried to make sure it worked. I was not surprised to find it did not, as it was unable to resolve a server for one of the components. I brought this point up with GumStix in a conversation, and the rep said the company was preparing a new set of tools to resolve this and some other issues. At that point, however, the new tools were not ready for review, which was a relief because I found uClibc temperamental to configure and install.
One nice feature of the GumStix is the option not to have the Bluetooth capability. That might sound strange to those of you new to embedded applications, but there are many reasons not to want this feature. First, don't pay for something you don't use. Second, the absence of Bluetooth allows one to reduce the overall complexity of the devices, making them more reliable. Third, the Bluetooth module consumes power and processor time. With Bluetooth being optional, you can develop your application and then drop Bluetooth and use a simpler replacement, without having to worry about compatibility.
One point on the GumStix design: as mentioned earlier, the Molex connector was replaced by the Hirose connector. This is a real improvement, as the Hirose is more solid than the Molex and makes the GumStix-daughterboard connection much more stable. Mechanical stability definitely is an issue with the GumStix. At present, the connector is the only means of physical stability between the GumStix board and any daughterboard. This definitely is not an optimal arrangement. Hopefully, GumStix will add a drill hole or at least call out some locations on the silk screen where holes could be added or glue points might be placed. Mounting the GumStix in high-vibration or impact applications will make this a must. I found that even fairly mild handling could dislodge the daughterboard enough to make the connection fail, unless the case was securely attached.
GumStix comes with BusyBox preloaded. BusyBox is an embedded application package with a large number of tools, one of which is a Web server. To use it, install your site at /var/www/html, reboot the WaySmall and off you go. One immediate application is to add a Web interface to your embedded application. Additionally, one could build a dedicated Web application for a WaySmall and essentially have an application in a box. Keep in mind that the Intel PXA255 has no floating-point unit, so number crunching is a stretch. However, several popular lightweight Web applications could run easily on a dedicated WaySmall.
Simple text-based HTML created with a minimal amount of graphics and no scripting was easy to accomplish. If you have an application that would not stress the server, you will be in good shape. The processor speed was more than adequate, but the RAM, storage and bandwidth were limitations on the evaluation unit. The 32MB of RAM is too little storage space for anything significant. The RAM is fixed, too, so you have to work around it. Storage is more flexible, however, with up to 512MB available.
I suggest checking your intended host computer to see if it has a serial port, because a lot of newer machines delete them in favor of USB. I also suggest that you purchase the power supply, the 128MB MMC module and an MMC adapter for your host machine. Third, as indicated earlier, mechanical stability is a real issue with the GumStix. During the evaluation process, the antenna of the WS200f-bt became damaged and the Bluetooth failed. This occurred because the serial cable became tangled with the antenna. Additionally, when the host machine was moved, a load was placed on the PCB connector and a solder failed. Thus, the Bluetooth-equipped WaySmall may be too fragile for practical applications. This is a known problem, however, and will be resolved when the integrated antenna is added.
Bluetooth is an excellent addition. The bandwidth of Bluetooth is substantially better than the serial connection and should be better than the USB 1.1 option. The Bluetooth-enabled models allow you to go wireless. They automatically boot to a configuration with rfcomm, generating a Bluetooth serial port called /dev/rfcomm0, and the startup script starts a getty over it. I was able to establish a serial connection over the Bluetooth, and it was faster than the USB 1.1 connection.
GumStix is refining its products rapidly, but I am going to make some predictions:
First, look for an integrated antenna. As a part of this change, I expect to see the serial ports dropped in favor of serial-over-Bluetooth.
Second, expect to see Ethernet added to the GumStix, certainly an Ethernet-enabled device with a connector off one end. I would prefer to see wireless Ethernet in lieu of Bluetooth, but that is my preference.
The bottom line is the GumStix SBCs are cool. Their ease of use, small sizes, low power consumption and flexibility make them excellent choices for a wide range of applications. GumStix are good alternatives to most of the other SBC form factors presently available and should be given serious consideration for any new embedded development efforts.