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