I've written a new USB low-speed implementation for the AVR. It is comparable to the IgorPlugUSB and obdev implementations, but has some advantages, such as a higher speed and less restrictions on the choice of I/O pins. Because you don't need to use bit 0 of an I/O port, you only need 2 I/O pins instead of 3 on an ATtiny2313. The code runs on any ATtiny or ATmega with a 12 MHZ clock, and it has a simple C interface, consisting of 3 to 5 functions, depending on the configuration.
I've used the USB code to build a USB to parallel port converter, which controls my parallel port AVR programmer. More information and the code is available at: