This is an old revision of the document!


XGrid Readme

1. Introduction

XGrid is a grid computing platform for the Atmel AVR XMEGA series of processors. XGrid supports USART based message passing in packet format and can use the XBoot API to support online firmware updates of the entire network. XGrid also contains a cross-platform management application for use in managing and debugging the application.

1.1 Compatibility List

XGrid should be compatible with all XMEGA processors. Using the online firmware update feature requires that the application be no larger than half of the application flash, however, so please choose a large enough chip. Also, XGrid tends to require a rather large amount of RAM for buffers, so it is only recommended for use with chips with at least 8K of SRAM. As XGrid uses the hardware USART modules for networking, a minimum of five is suggested for a square grid (four for networking and one for debug) and seven for a hexagonal grid (six for networking and one for debug). For this reason, the D and B series are not recommended as these devices have fewer hardware USART modules. An asterisk denotes that the MCU has been tested and confirmed XGrid compatible.

Note that it may be possible to use XGrid on ATMEGA processors, though with only two USARTS, the networking abilities will be very limited.

  • XMEGA
    • atxmega16a4 (2k SRAM, 5 USARTs)
    • atxmega32a4 (4k SRAM, 5 USARTs)
    • atxmega64a1 (4k SRAM, 8 USARTs)
    • atxmega64a3 (4k SRAM, 7 USARTs)
    • atxmega64a4 (4k SRAM, 5 USARTs)
    • atxmega128a1 (8k SRAM, 8 USARTs)
    • atxmega128a3 (8k SRAM, 7 USARTs) *
    • atxmega128a4 (8k SRAM, 5 USARTs)
    • atxmega192a1 (16k SRAM, 8 USARTs)
    • atxmega192a3 (16k SRAM, 5 USARTs)
    • atxmega256a1 (16k SRAM, 8 USARTs)
    • atxmega256a3b (16k SRAM, 7 USARTs)
    • atxmega256a3 (16k SRAM, 7 USARTs)
    • atxmega16d4 (2k SRAM, 2 USARTs)
    • atxmega32d4 (4k SRAM, 2 USARTs)
    • atxmega64d3 (4k SRAM, 3 USARTs)
    • atxmega64d4 (4k SRAM, 2 USARTs)
    • atxmega128d3 (8k SRAM, 3 USARTs)
    • atxmega128d4 (8k SRAM, 2 USARTs)
    • atxmega192d3 (16k SRAM, 3 USARTs)
    • atxmega256d3 (16k SRAM, 3 USARTs)
    • atxmega16a4u (2k SRAM, 5 USARTs)
    • atxmega32a4u (4k SRAM, 5 USARTs)
    • atxmega64a3u (4k SRAM, 7 USARTs)
    • atxmega64a4u (4k SRAM, 5 USARTs)
    • atxmega128a3u (8k SRAM, 7 USARTs)
    • atxmega128a4u (8k SRAM, 5 USARTs)
    • atxmega192a3u (16k SRAM, 7 USARTs)
    • atxmega256a3u (16k SRAM, 7 USARTs)
    • atxmega256a3bu (16k SRAM, 7 USARTs)
    • atxmega64b1 (4k SRAM, 2 USARTs)
    • atxmega64b3 (4k SRAM, 1 USART)
    • atxmega128b1 (8k SRAM, 2 USARTs)
    • atxmega128b3 (8k SRAM, 1 USART)

2. Building XGrid

XGrid is designed to be built with the avr-gcc toolchain.

2.1 Building XGrid in Linux

2.1.1 Requirements

  • binutils-avr
  • avr-gcc
  • libc-avr
  • avrdude

2.1.2 Procedure

  1. Install required packages
  2. Edit makefile for device and programmer settings
  3. Build

    $ make
  4. Program

    $ make program

2.2 Building XGrid in Windows

2.2.1 Requirements

  • binutils-avr
  • avr-gcc
  • libc-avr
  • avrdude

2.2.2 Procedure

  1. Install software
  2. Edit makefile for device and programmer settings
  3. Build

    > make
  4. Program

    > make program

3. Building XGrid Manager

3.1 Building XGrid Manager in Linux

3.1.1 Requirements

  • gtkmm >= 2.28.0

3.1.2 Procedure

  1. Install required packages
  2. If no configure script present, run bootstrap

    $ ./bootstrap
  3. Run configure script

    $ ./configure
  4. Build

    $ make
  5. Install

    $ make install

3.2 Building XGrid Manager in Windows

3.2.1 Requirements

  • mingw
  • msys
  • gtkmm >= 2.22.0

3.2.2 Procedure

  1. Install MinGW, MSYS, and gtkmm

* Install MinGW and MSYS

  • Install C compiler, C++ compiler, MSYS, and Developer Toolkit
  • Add MinGW and MSYS directories to path
    • (Windows 7) Right click on Computer → Properties, click Advanced System Settings
    • (Other) Right cick on Computer → Properties
    • (All) On Advanced tab, select Environment Variables
    • Under user variables, select PATH and click Edit. If PATH does not exist, click New, enter PATH for name, and omit leading semicolon in next step.
    • Add ;C:\MinGW\bin;C:\MinGW\msys\1.0\bin to the end of value
    • Click OK x3
    • Open a command prompt, type bash and hit enter. You should see: bash-3.1$
 * Install gtkmm
   * Download from http://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/
   * Install
   * Add ACLOCAL_FLAGS environment variable with the value:
     * -I /c/gtkmm/share/aclocal
  -- If no configure script present, run bootstrap
  ..<code>
$ ./bootstrap

</code>

  1. Run configure script

    $ ./configure
  2. Build

    $ make
  3. Install

    $ make install