Robostix

The Robostix is a board based around an Atmel AVR processor, in particular, the ATMega128. Allegedy, the AVR initials originate from the initials of the 3 people who created it.

The first page of the ATMega128 data sheet contains a detailed list of features offered by the processor, which include things like PWM, GPIO, ADC, I2C, SPI, UARTs, etc.

The Robostix can be used as an expansion for the Gumstix (including accessing inputs/outputs with i2c-io), as well as a standalone device.

This page uses the term robostix interchangably with roboaudiostix, unless explicitly mentioned otherwise.

Turning your robostix on
The Robostix power page describes various methods that can be used to turn your robostix on.

I/O
The Robostix I/O pins and Roboaudiostix I/O pins pages have pictures of the boards, and describe the various pins.

Voltages
See Robostix Voltages.

Serial adapters
The robostix provides two 5v logic level serial ports from the ATMega128, and two 5v logic level serial ports from the gumstix (STUART and FFUART - the console). To connect these to your computer you'll need an RS-232 serial adapter. The Serial adapters page has links to several which are available.

Newer buildroots
The Robostix framebuffer page has some notes on using the robostix with the newer buildroots which are designed to support framebuffers.

Windows based Tools

 * AVR Studio is a free tool provided by Atmel. Has a nice GUI for programming the fuses. Can also be used to download programs through the AVRISP.
 * WinAVR This is a GCC based toolchain for programming the AVR processors in C and C++

Linux based tools

 * avr-gcc for i386 is a precompiled version of avr-gcc for those working on i386 based linux. This version isn't necessarily kept in sync with the Windows version. Note: after installing the avr-compiler, you'll notice that the avr/bin directory contains three symbolic links, for gcc, cpp, and cc that should be removed. Otherwise you may not be able to use the native gcc that comes with your system. This depends on the PATH order.
 * Robostix avr gcc documents building/installing avr-gcc and components

Tools available for Windows or Linux

 * avrdude is a command line tool for programming the AVR. The windows version of avrdude is included with WinAVR.
 * uisp is another command line tool for programming the AVR.

Sample files
Several samples files are available on the Robostix samples page to get you started.

Downloading your program to the Robostix
Once you have a .hex file, you need to get it into the robostix. If you're using the robostix in standalone mode (i.e. with no gumstix attached), then you can use an AVR programmer, which is plugged into the ten pin ISP header. The Robostix ISP page describes several available programmers.

If you wish to program your robostix with a gumstix attached, then the ISP header MUST not be used. Instead you can follow the directions on the Robostix gumstix ISP page.

Fuse programming
The Robostix fuses page describes how to program your fuses (using AVRStudio, uisp, and PonyProg).

There are now a couple of scripts in SVN for programming the fuses.

pgm-fuse-standalone is suitable for downloading programs using uisp. pgm-fuse-bootloader is designed for use with the i2c BootLoader.

Using the Gumstix and Robostix together
If you would like to boot a robostix/gumstix combination with no serial console plugged in, then you should add a 10k resistor between pins 3 and 4 on the "gumstix" connector. Failing to do this will cause the gumstix to drop into u-boot and to not boot the gumstix.

This modification, along with some others, are described on the Robostix modifications page.

Using a tweener with the robostix
In its default configuration, the Tweener board can't be used with the Robostix. The Tweener modifications page describes how to modify the tweener board so that it can be used with the robostix.

SPI
In standalone mode, the SPI pins aren't available on a header anywhere. The Robostix SPI page shows where the pins are.

uboot
Change the way your robostix starts up by following the directions on the Robostix uboot page.

Internet resources

 * ATMega128 data sheet.
 * Atmel's ATMega128 Page
 * AVR Freaks This is a fairly large community of AVR users. Lots of resources here.
 * AVRlib C-Language Function Library for Atmel AVR Processors

AVR mailing lists

 * AVR Chat A list for general AVR discussion.
 * AVR GCC A list for discussing GCC issues on the AVR.

Troubleshooting
If you're having problems with your robostix hardware, then a troubleshootinig page has been started.