Rev 3331 Rev 3332
1 This is the Readme file to Objective Development's firmware-only USB driver 1 This is the Readme file to Objective Development's firmware-only USB driver
2 for Atmel AVR microcontrollers. For more information please visit 2 for Atmel AVR microcontrollers. For more information please visit
3 http://www.obdev.at/avrusb/ 3 http://www.obdev.at/avrusb/
4   4  
5 This directory contains the USB firmware only. Copy it as-is to your own 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 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. 7 "usbconfig.h" can be found in "usbconfig-prototype.h" in this directory.
8   8  
9   9  
10 TECHNICAL DOCUMENTATION 10 TECHNICAL DOCUMENTATION
11 ======================= 11 =======================
12 The technical documentation for the firmware driver is contained in the file 12 The technical documentation for the firmware driver is contained in the file
13 "usbdrv.h". Please read all of it carefully! 13 "usbdrv.h". Please read all of it carefully!
14   14  
15   15  
16 USB IDENTIFIERS 16 USB IDENTIFIERS
17 =============== 17 ===============
18 Every USB device needs a vendor- and a product-identifier (VID and PID). VIDs 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 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. 20 can assign PIDs at will.
21   21  
22 Since an entry level cost of 1,500 USD is too high for most small companies 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 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" 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". 25 and "USB_CFG_DEVICE_ID" accordingly in "usbconfig.h".
26   26  
27 To use our predefined VID/PID pair, you MUST conform to a couple of 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. 28 requirements. See the file "USBID-License.txt" for details.
29   29  
30 Objective Development also has some offerings which include product IDs. See 30 Objective Development also has some offerings which include product IDs. See
31 http://www.obdev.at/avrusb/ for details. 31 http://www.obdev.at/avrusb/ for details.
32   32  
33   33  
34 HOST DRIVER 34 HOST DRIVER
35 =========== 35 ===========
36 You have received this driver together with an example device implementation 36 You have received this driver together with an example device implementation
37 and an example host driver. The host driver is based on libusb and compiles 37 and an example host driver. The host driver is based on libusb and compiles
38 on various Unix flavors (Linux, BSD, Mac OS X). It also compiles natively on 38 on various Unix flavors (Linux, BSD, Mac OS X). It also compiles natively on
39 Windows using MinGW (see www.mingw.org) and libusb-win32 (see 39 Windows using MinGW (see www.mingw.org) and libusb-win32 (see
40 libusb-win32.sourceforge.net). The "Automator" project contains a native 40 libusb-win32.sourceforge.net). The "Automator" project contains a native
41 Windows host driver (not based on libusb) for Human Interface Devices. 41 Windows host driver (not based on libusb) for Human Interface Devices.
42   42  
43   43  
44 DEVELOPMENT SYSTEM 44 DEVELOPMENT SYSTEM
45 ================== 45 ==================
46 This driver has been developed and optimized for the GNU compiler version 3 46 This driver has been developed and optimized for the GNU compiler version 3
47 (gcc 3). It does work well with gcc 4 and future versions will probably be 47 (gcc 3). It does work well with gcc 4 and future versions will probably be
48 optimized for gcc 4. We recommend that you use the GNU compiler suite because 48 optimized for gcc 4. We recommend that you use the GNU compiler suite because
49 it is freely available. AVR-USB has also been ported to the IAR compiler and 49 it is freely available. AVR-USB has also been ported to the IAR compiler and
50 assembler. It has been tested with IAR 4.10B/W32 and 4.12A/W32 on an ATmega8 50 assembler. It has been tested with IAR 4.10B/W32 and 4.12A/W32 on an ATmega8
51 with the "small" and "tiny" memory model. Please note that gcc is more 51 with the "small" and "tiny" memory model. Please note that gcc is more
52 efficient for usbdrv.c because this module has been deliberately optimized 52 efficient for usbdrv.c because this module has been deliberately optimized
53 for gcc. 53 for gcc.
54   54  
55   55  
56 USING AVR-USB FOR FREE 56 USING AVR-USB FOR FREE
57 ====================== 57 ======================
58 The AVR firmware driver is published under the GNU General Public License 58 The AVR firmware driver is published under the GNU General Public License
59 Version 2 (GPL2). See the file "License.txt" for details. 59 Version 2 (GPL2). See the file "License.txt" for details.
60   60  
61 If you decide for the free GPL2, we STRONGLY ENCOURAGE you to do the following 61 If you decide for the free GPL2, we STRONGLY ENCOURAGE you to do the following
62 things IN ADDITION to the obligations from the GPL2: 62 things IN ADDITION to the obligations from the GPL2:
63   63  
64 (1) Publish your entire project on a web site and drop us a note with the URL. 64 (1) Publish your entire project on a web site and drop us a note with the URL.
65 Use the form at http://www.obdev.at/avrusb/feedback.html for your submission. 65 Use the form at http://www.obdev.at/avrusb/feedback.html for your submission.
66   66  
67 (2) Adhere to minimum publication standards. Please include AT LEAST: 67 (2) Adhere to minimum publication standards. Please include AT LEAST:
68 - a circuit diagram in PDF, PNG or GIF format 68 - a circuit diagram in PDF, PNG or GIF format
69 - full source code for the host software 69 - full source code for the host software
70 - a Readme.txt file in ASCII format which describes the purpose of the 70 - a Readme.txt file in ASCII format which describes the purpose of the
71 project and what can be found in which directories and which files 71 project and what can be found in which directories and which files
72 - a reference to http://www.obdev.at/avrusb/ 72 - a reference to http://www.obdev.at/avrusb/
73   73  
74 (3) If you improve the driver firmware itself, please give us a free license 74 (3) If you improve the driver firmware itself, please give us a free license
75 to your modifications for our commercial license offerings. 75 to your modifications for our commercial license offerings.
76   76  
77   77  
78 COMMERCIAL LICENSES FOR AVR-USB 78 COMMERCIAL LICENSES FOR AVR-USB
79 =============================== 79 ===============================
80 If you don't want to publish your source code under the terms of the GPL2, 80 If you don't want to publish your source code under the terms of the GPL2,
81 you can simply pay money for AVR-USB. As an additional benefit you get 81 you can simply pay money for AVR-USB. As an additional benefit you get
82 USB PIDs for free, licensed exclusively to you. See the file 82 USB PIDs for free, licensed exclusively to you. See the file
83 "CommercialLicense.txt" for details. 83 "CommercialLicense.txt" for details.
84   84