***************************** USBNotify *******************************


USBNotify is a free software/hardware project to power and control some
high-power LEDs via USB. It is intended to:
(a) provide software control notification about certain events to the
    user
(b) as an experimental/educational environment to learn working with
    microcontrollers and usb


============================== License ================================
GPL v2, see LICENSE-file

=============================== Author ================================
Timo Boettcher <usbnotify@spida.net>

Please send comments, bugreports and pizza to usbnotify@spida.net

============================== Homepage ===============================
http://www.spida.net/projects/hardware/usbnotify/

============================== Hardware ===============================
The Usbnotify hardware is a double sided PCB. Except the 5mm high-power
LEDs, all parts are SMD (surface mounted devices). The schematic and
some rendered images are in the hardware-directory.

============================== Firmware ===============================
The firmware for the device is in the /firmware directory.
There are two versions of the firmware:
(a) blinktest--do-not-use-with-usb
    This firmware is intended to test the microcontroller and all
    connections. NEVER use it with USB connected, as it will test the
    USB-Connection with signals that are NOT USB-COMPLIANT.
    Always use an external powersupply when using this software.
(b) usbnotify
    This firmware is the primary firmware for the device, and enables 
    a software on the USB-host to control the 4 LED-channels.
    It uses obdevs free software-usb-stack, see
    http://www.obdev.at/products/avrusb for details.
    Compile it with
      make USBSERIAL=xx HW_VERSION=2
    where xx is your serialnumber (integer).

========================== Control-Software ===========================
The Control-Software for the device is in the /host directory.
There are currently six versions of the Control-Software:
(a) python
    The python version of the Control-Software is written in python
    and uses the pyusb library. This is the reference implementation.
(b) c
    The c version of the Control-Software is written in c and uses the
    libusb library.
(c) perl
(c) ruby
(d) java
(e) lua


============================= Disclaimer ==============================
As this is software controlled hardware, it may break all kinds of
things when done wrong. This includes the USB-Port and its controller
that is driving the USB-Port.
The LEDs are really bright, so do not look into them with unprotected
eyes, you might suffer permanent eye-damage.
The LEDs are driven with currents (27-39mA) higher than specified for
these LEDs. This means the LEDs may not be powered permanently, so
that they have time to cool down between uses. It is possible to
simulate permanent lighting with fast pulsing, though.
Don't use it to get notified about real important things, notification
may fail.

