1 This is the Readme file to Objective Development's firmware-only USB driver
2 for Atmel AVR microcontrollers. For more information please visit
3 http://www.obdev.at/avrusb/
5 This directory contains the USB firmware only. Copy it as-is to your own
6 project and add your own version of "usbconfig.h". A template for your own
7 "usbconfig.h" can be found in "usbconfig-prototype.h" in this directory.
10 TECHNICAL DOCUMENTATION
11 =======================
12 The technical documentation for the firmware driver is contained in the file
13 "usbdrv.h". Please read all of it carefully!
18 Every USB device needs a vendor- and a product-identifier (VID and PID). VIDs
19 are obtained from usb.org for a price of 1,500 USD. Once you have a VID, you
20 can assign PIDs at will.
22 Since an entry level cost of 1,500 USD is too high for most small companies
23 and hobbyists, we provide a single VID/PID pair for free. If you want to use
24 your own VID and PID instead of our's, define the macros "USB_CFG_VENDOR_ID"
25 and "USB_CFG_DEVICE_ID" accordingly in "usbconfig.h".
27 To use our predefined VID/PID pair, you MUST conform to a couple of
28 requirements. See the file "USBID-License.txt" for details.
33 You have received this driver together with an example device implementation
34 and an example host driver. The host driver is based on libusb and compiles
35 on various Unix flavors (Linux, BSD, Mac OS X). It also compiles natively on
36 Windows using MinGW (see www.mingw.org) and libusb-win32 (see
37 libusb-win32.sourceforge.net). The "Automator" project contains a native
38 Windows host driver (not based on libusb) for Human Interface Devices.
43 This driver has been developed and optimized for the GNU compiler version 3
44 (gcc 3). It does work well with gcc 4 and future versions will probably be
45 optimized for gcc 4. We recommend that you use the GNU compiler suite because
46 it is freely available. AVR-USB has also been ported to the IAR compiler and
47 assembler. It has been tested with IAR 4.10B/W32 and 4.12A/W32 on an ATmega8
48 with the "small" and "tiny" memory model. Please note that gcc is more
49 efficient for usbdrv.c because this module has been deliberately optimized
53 USING AVR-USB FOR FREE
54 ======================
55 The AVR firmware driver is published under an Open Source compliant license.
56 See the file "License.txt" for details. Since it is not obvious for many
57 people how this license applies to their own projects, here's a short guide:
59 (1) The USB driver and all your modifications to the driver itself are owned
60 by Objective Development. You must give us a worldwide, perpetual,
61 irrevocable royalty free license for your modifications.
63 (2) Since you own the code you have written (except where you modify our
64 driver), you can (at least in principle) determine the license for it freely.
65 However, to "pay" for the USB driver code you link against, we demand that
66 you choose an Open Source compliant license (compatible with our license) for
67 your source code and the hardware circuit diagrams. Simply attach your
68 license of choice to your parts of the project and leave our "License.txt" in
69 the "usbdrv" subdirectory.
71 (3) We also demand that you publish your work on the Internet and drop us a
72 note with the URL. The publication must meet certain formal criteria (files
73 distributed, file formats etc.). See the file "License.txt" for details.
75 Other than that, you are allowed to manufacture any number of units and sell
76 them for any price. If you like our driver, we also encourage you to make a
77 donation on our web site.
80 COMMERCIAL LICENSES FOR AVR-USB
81 ===============================
82 If you don't want to publish your source code and the circuit diagrams under
83 an Open Source license, you can simply pay money for AVR-USB. As an
84 additional benefit you get USB PIDs for free, licensed exclusively to you.
85 See http://www.obdev.at/products/avrusb/license.html for details.