Here is an open source USB stack for PIC microcontrollers and DSPs. It features a dual LGPL and Apache licenses making it suitable for commercial open source projects. So far it only supports the HID device class.
A USB device stack is the software necessary to drive the USB device peripheral hardware on a microcontroller (MCU) or other device. Typically, USB peripheral hardware only supports the transaction level and below of the USB protocol. Enumeration and transfers are left to the firmware or software to implement. The Microchip PIC line of microcontrollers work exactly this way.