If you have an idea for a fairly simple USB device but don’t want to invest in the more expensive microcontrollers, this library will be of interest to you. It’s a software implementation of the low-speed USB protocol for PIC 16F628. You can pick these up for around $2, and it just takes a few other components to complete the circuit. And hey, you don’t even need a proper PIC programmer to flash the code. This is the same chip for which we just saw an Arduino act as the programmer.
The circuit design looks exactly the same as the V-USB stack, which provides USB functionality to lower-end AVR microcontrollers. In addition to the chip you need a crystal oscillator, a couple of 3.6V zener diodes, and a handful of passive components. There are a couple of LEDs in the design, but we assume these are for feedback and are not crucial to the functionality of the circuit.
There’s no shortage of data included in the project post so you may want to bookmark this one for later reference.