AVR-USB firmware

A Firmware-Only USB Driver for Atmel AVR Microcontrollers

A USB device without dedicated USB hardware

AVR-USB is a firmware-only implementation of a USB 1.1 compliant low-speed device for Atmel's AVR microcontrollers. It runs on any AVR microcontroller which has at least 2 kB of Flash memory, 128 bytes RAM and can be clocked at 12 MHz. No UART, timer, input capture unit or other special hardware is required (except one edge triggered interrupt).

AVR-USB can be licensed freely under an Open Source compliant license or alternatively under a commercial license. Features

  • Fully USB 1.1 compliant low-speed device, except handling of communication errors.
  • Supports two endpoints: one control and one interrupt endpoint.
  • Transfer sizes up to 254 bytes.
  • Comes with freely usable USB identifiers (Vendor-ID and Product-ID pair).
  • Customizable sections are written in "C" and are well commented.
  • Delivered with fully functional example applications.
  • Only about 1400 to 1500 bytes code size for basic functionality.
  • You can choose the License: Open Source or commercial

http://www.obdev.at/products/avrusb/index.html

wow. I wonder if that would make a $5 Arduino possible? the schematic is so simple...