Kiran designed a USB Joystick based on the PIC18F14K50 microcontroller. It has 10 buttons and an analog Joystick that uses 2 potentiometers to describe X and Y movement of the stick. The firmware is based on the Microchip USB stack, using the HID device class.