The 16FUSB is a software implementation of the USB low-speed for PIC16F628/628A microcontroller. All communication stuff is done by the firmware written in ASM, completely discarding the need to use an additional chip.
From the 16FUSB core is possible to add implementations of other protocols such as, for example, I2C, SPI or simple write data from the USB host (PC) directly to the PIC pins. A low-speed USB software implementation can be a great alternative for those who want lower cost projects and at the same time also doesn’t need high speed data transfer.
The project comes with a Microsoft Visual C++ 2010 Express-based application that runs on the host. It can be used to test USB function like read and write data byte to 16FUSB. To exchange messages with the firmware, the application basically uses the libusb’s ‘usb_control_msg’ function.
Emanuel Paz, project designer, said that some of the ideas presented here have as inspiration a similar design for Atmel AVR microcontrollers: The IgorPlugUSB. The project is open source and is hosted on Google Code. From there, you can download the source code directly from svn as well as releases, updates and track defects.