The code in this directory is intended to be run on an Arduino, which is a
simple, open-source microcontroller platform:
    http://arduino.org/

Essentially, an Arduino is a board for an ATMega microcontroller, and a GUI
IDE project intended for semi-technical developers. The Arduino software
essentially boils down to an IDE which is a text editor & build automater for a
C/C++ library that hides most of the low-level details of configuring a
program to run on the microcontroller. It uses the AVR toolchain and
programmer to work with the device from a host PC. This project includes a
Makefile which replicates work the normally performed by the IDE; that is, it
builds and links the relevant Arduino boilerplate code that sets up the
microcontroller, and then links together a final .hex file and prepares it for
upload to the device.

A BlueSMiRF Bluetooth SPP-to-TTL (or similar) board is also required; this
device is used to validate Bluetooth API support via the CTS Verifier app.
    http://www.sparkfun.com/commerce/product_info.php?products_id=582

This code running on a simple, inexpensive, known-good microcontroller
platform makes it much easier to validate the Bluetooth API for an Android
candidate device than the "Bluetooth Chat" approach currently required by the
CDD.

A compatible device can be substituted for some or all of the Arduino
configuration; however it's worth noting that for approximately US$110, a
complete test rig can be completed and used with any number of devices under
test. Organizations are, of course, also free to manufacture their own
Arduino-like devices.

This code (and especially the Makefile) requires version 0018 of the Arduino
toolchain. Because this software uses a non-Android-standard build, the
Android source tree includes in the prebuilt/ directory a .hex file compiled
from this source suitable for directly flashing to an Arduino
Duemilanove-compatible device.

The file pulsedtr.py is a Python script using the Serial I/O API that strobes
the DTR line on the serial port. This is a signal to the Arduino to enter
programming mode; this script is thus used in flashing the Arduino board (via
a direct USB connection) with the prebuilt .hex file. If you are building
from source, 'make upload' will handle this for you.

To build the .hex file on Ubuntu Lucid:
$ sudo add-apt-repository ppa:arduino-ubuntu-team
$ sudo apt-get update; sudo apt-get install arduino
$ make
$ make upload

Alternatively, the file 'cts-verifier.pde' can be loaded into the Arduino IDE
as a sketch using the normal GUI workflow.

This Makefile should hypothetically work on a Mac with the appropriate Arduino
toolchain installed, but it has not been tested. Windows is not supported.
