Overview
The project shows how a simple USB device was used to create the PIC18F firmware as well as the Windows interface that allows a LED to be controlled from the PC while the pushbutton state from the device is read.
Details
Windows is using the basic principle of 2-way USB communication in order to control a LED and also see the status of a push-switch on the device. The PIC18F firmware is based on MPLAB and C compiler while the Windows software is created using Microsoft Visual C++ in order to keep the cost and difficulty as low as possible. The cheaper and smaller PIC18F2550 can be used in this project due to its 4550-compatible code although the PIC18F4550 microcontroller is used to build this device.
In building a USB device, it should include an ICSP header and a USB type B connector with the input and output devices being represented by a single LED and a push switch. The PIC18F4550 is bus-powered which means that the USB host will provide power to the device without requiring internal regulation. The internal USB circuitry is operated by the PIC which requires 470nF capacitor.