Hi all.

Well, I finally finished up cleaning the source code for the USB stack and documenting it (at least partially). A USB device stack is much simpler than a Zigbee stack so hopefully, it's easier to understand than the FreakZ code. I tried to place an emphasis on writing it clearly and keeping a good separation of layers. 

Currently, only the USB communiations class driver is implemented and the specific device is a USB Virtual COM Port. In other words, it emulates a serial port, only via USB. The current stack footprint is about 4kB of code memory and 100 bytes of RAM for the stack including the class driver. The application demo adds an extra 1kB of code space since I'm using the avr-libc's printf function (1 kB in the minimal configuration) and hooked my putchar function into it. That way, you can use printf via USB into your favorite terminal program (hyperterm?).

I'll provide more details later, but the Sourceforge project is still pending approval by the Sourceforge team. You can download the source code from this site instead, until I get the SourceForge site up and running. Here's the download link:

FreakUSB Source Code 
Updated 2008-11-17: The files have been moved to the SourceForge website and can be found at this link: https://sourceforge.net/projects/freakusb

And for those interested, here's a link to the documentation in html format.

FreakUSB Docs Link

Hope you like the stack!