What is gumstix?
- Gumstix is a line of single-board computers that come in a tiny (gumstick-sized) package. Several different versions of the board are powered by XScale PXA processors and come with varying speed, onboard memory and peripherals.
- Additional features can be added to all motherboards with plug-in expansion cards with features like wireless networking, audio in/out, robotic motors and sensors, etc.
- Gumstix software and operating system is a full-blown Linux environment that can run a large range of applications.

What is it good for?
![]() |
Robotic fish at the London Aquarium: Biologically inspired by the common carp, the robotic, gumstix-driven fish could avoid objects and swim around a specially designed tank entirely of their own accord. |
![]() |
Flying web server: UltraSwarm, a flock of wirelessly networked autonomous miniature helicopters flying like a flock of birds while computing like a wireless cluster computer and serving data to web pages. |
![]() |
Ebook reader: Since the XScale chip on the Gumstix is largely identical to those found on PDAs two or three years ago, the Gumstix is easily usable for portable electronics. Apparently, the guys at E-Ink use a Gumstix board to power their e-paper displays. |
![]() |
Robot that vacuums and serves web pages: Roomba vacuum cleaner controlled by gumstix connex board, a PhD thesis project at MIT. |
Gumstix Flavors
- Verdex is the most advanced and most expensive gumstix motherboard
(up to 128Mb RAM, 32Mb Flash, 600Mhz processor @ $169), followed by Connex and Basix. - Gumstix.com also sells gumstix “computers”, which are essentially motherboards that come with an enclosure. Netstix computer is based on the Connex motherboard and Waysmall is Basix on the inside.


Hardware used in this class:
- Verdex XL6P motherboard, console LCD16-vx expansion board, Samsung 4.3″ LCD, serial null-modem cable, USB cable
- Hardware is basically equivalent to the set of peripherals sold with
LCD pack by gumstix.com for $412, minus the netmicroSD expansion board


Connecting to Gumstix via Serial:
- Open a serial connection with the following parameters
(On Windows PC, you can connect using Hyperterm):
Bits per second: 115200bps
Data bits: 8
Parity: none
Flow control: none - Snap Verdex XL6P and console LCD boards together
- Connect serial null-modem cable to the middle serial (round) connector on console LCD board
- Connect the other end of the serial cable to PC, perhaps through USB-to-serial adapter such
as Keyspan 19HS. - Plug in the USB cable to console LCD board on one end and USB port on PC the other.
- Gumstix should start booting with output to the serial terminal!

Linux Setup:
- Install a Linux environment. I used Ubuntu Linux distribution running on VMWare virtual machine within Windows. This is a class topic all by itself!
-
Install and setup minicom terminal for serial communication.
apt-get install minicom
minicom -sChange minicom settings to match the following:

-
Install drivers for Keyspan USB-to-serial adapter. I followed the directions on
this page.
The driver installer file that worked for me was
keyspan-ubuntu-2.6.22.52.deb.
To run debian installer for this package, use the command:dpkg -i keyspan-ubuntu-2.6.22.52.deb -
Test the Keyspan adapter.
mknod /dev/ttyUSB0 c 188 0
-
Plug-in the adapter to USB port, then start minicom:
minicom -o
Hopefully, you can now talk to gumstix via serial connection from Linux.
Cross-compiling with Buildroot:
This will allow us to compile programs that can run on gumstix within the PC Linux environment.
- Install Buildroot using Subversion (SVN):
enter your home directory:
cd ~/
create buildroot directory:
mkdir gumstix-buildroot
run svn command:
svn co http://svn.Gumstix.com/Gumstix-buildroot/trunk gumstix-buildroot
enter gumstix buildroot directory and configure:
cd gumstix-buildroot
make defconfig
rm .config
run make command entering 12(verdex) and speed 4(600MHz) when prompted:
make
This will take quite a while..
Cross-compiling with Open Embedded:
The firmware that came with the gumstix board you bought is probably older than the one
that Buildroot is now set up for, so we’ll have to compile the new gumstix filesystem.
To be incompleted…
Flashing the gumstix file system:
Burn the filesystem compiled in the previous step it to the gumstix board.
- Open a serial connection with kermit (minicom didn’t work for this step), load settings and connect:
kermit -l /dev/ttyUSB0
C-Kermit> take ~/gumstix-oe/extras/kermit-setup
C-Kermit> connect - Plug-in gumstix USB connection to power up the board and interrupt the boot process in terminal (by hitting any key)
to get into bootloader. - Type the following commands very carefully or you may brick your gumstix!!
GUM>loadb a2000000Press ‘control’ and ‘\’ and then ‘c’
cd gumstix-oe/tmp/deploy/uclibc/images/gumstix-custom-verdex/
send Angstrom-myImage-uclibc-ipk-2007.9-test-20080218-gumstix-custom-verdex.rootfs.jffs2 - Erase the current filesystem:
GUM> protect on 1:0-1
GUM> erase all - Write the new filesystem to flash:
GUM> cp.b a2000000 40000 ${filesize}
- Load the new kernel:
GUM> loadb a2000000C-Kermit> send uImage-2.6.21-r1-gumstix-custom-verdex.bin
C-Kermit> connect
GUM> katinstall 100000
GUM> katload 100000
GUM> bootm
Hello Gumstix!
Finally, we can now compile a custom program that will be able to run on the gumstix board.
- Grab the sample hello.c and Makefile files, put them in hello-world directory and compile:
- Open serial connection to gumstix using minicom:
minicom -o
- Power up the gumstix with USB cable and watch for boot process output in the terminal window, then login with ‘root’ and password ‘gumstix’ at the prompt.
- Upload ‘hello’ executable to gumstix via minicom:
Press ‘control’ and ‘c’ keys to get to minicom prompts. Then press ’s’ to send file.
Select zmodem as upload protocol by pressing ‘enter’.Press ‘enter’ again to bring up file upload prompt for current directory. Type the
following filepath and press ‘enter’:gumstix/hello-world/helloIf successful, you should now get a transfer complete prompt like this:

- Run the program:
cd ~/
create hello-world directory:
mkdir hello-world
enter hello-world directory:
cd hello-world
run make command:
make
The executable ‘hello’ should now be created in this directory.
./hello
the program should return:
hello gumstix!
www.gumstix.com - get your gumstix motherboards here
www.gumstix.net - official gumstix developer site
en.wikipedia.org/wiki/Gumstix - gumstix wiki pages
www.robomontreal.com/Gumstix_Newbie.php - gumstix from new user’s perspective
www.denis.lemire.name/2007/10/19/ubuntu-keyspan - getting Keyspan USB-to-serial adapter working in Ubuntu
docwiki.gumstix.org/Buildroot - buildroot setup for gumstix
www.gumstix.net/feeds/current/glibc/images/gumstix-custom-verdex - gumstix filesystem images
docwiki.gumstix.org/Sample_code/C/Hello_World - gumstix “hello world!” tutorial for buildroot
support.eink.com - EInk’s Thinspace package, includes examples on how to do low-level embedded programming (controlling GPIOs) on Linux.




One Comment
This page is not fully complete. Notably, the section on setting up and cross-compiling with Open Embedded is missing. In class, we also looked at some examples of graphics programs for the LCD, which were written with DirectFB framework.