# Introduction

## Overview

µracoli provides libraries, example code and demo applications for use on different platforms with Atmels 8-bit-AVR-microcontrollers and IEEE 802.15.4 radio transceivers AT86RF{230,231,212} as well as ATmega128RFA1.

µracoli provides the following software components:

- Radio Library
  The Radio library provides functions at two abstraction levels, (1) a set of basic functions for low level control of the radio transceiver, e.g. register read/write, frame buffer r/w, ... and (2) a set of high layer functions, e.g. transmit_frame() or set_radio_channel().
- IoUtil Library
  The IoUtil library provides utility functions that are usefull in a embedded applications, like UART communication and timer functions as well as general purpose IO control (LEDs, keys, one wire bus). However, the IoUtil library is not used by the Radio library, so it is just used for completion of the examples and demo applications. So the IoUtil library can be used in own applications but this is not mandatory.
- Examples
  These simple mini applications are used to, illustrate the use of the library functions. The examples can be used as starting point for the own applications.
- Demo Applications
  This standalone radio applications are generic tools that can be used out of the box, like a wireless UART.
- Contributions
  Here is demontsrated, how embedded µracoli radio applications are interfaced with PC applications, e.g. with Wireshark, Arduino, or a wireless bootloader application.

Include and Library Block Schematic

## Getting Started

Before you can start, you need to install some software.

First at all you will need a working AVR toolchain. The GNU AVR tools (or WinAVR on Windows) are used for compiling the firmware. The programs avrdude, avarice, avr-gdb (or AVR-Studio on Windows) are used to flash and debug the compiled applications.

Additionally you probably want to install the python programming language with a version before .0 with the module pyserial in order to easily run and create PC applications that interact over the serial port with a radio module.

If you want to build all libraries and applications from scratch, scons is needed. Building the documentation requires doxygen and graphviz.

Some more detailed information about installing the software can be found at http://uracoli.nongnu.org/gettingstarted.html.

Beside the software, two or more of the supported radio modules (see Boards and Modules) are needed.

In order to flash the compiled firmware into the micro controller, an hardware programmer like AVRISP, JTAGICE mkII, AVR-Dragon or a similiar tool is needed.