Video Game Controller Overview
After reverse engineering the OSR USB FX2 firmware, I wanted to build a USB based project. I decided to build a game controller. The controller has two processors, one for the USB interface and one for the analog data captures. The analog stick information is transferred to the USB controller through the I2C communication lines. All the buttons on the controller use hardware debouncing circuits. The firmware for the USB controller is stored in an I2C based EEPROM and was assembled using my custom made 8051 assembler.
Video Game Controller Pictures
Video Game Controller Schematic
Video Game Controller PCB Designs
Video Game Controller CAD Design
Video Game Controller Firmware Source Files
The Atmel microcontroller firmware was written in C using AVR Studio. The EZUSBFX2 firmware was written in assembly using my custom 8051 assembler.
ATMega128 Firmware source file:
EZUSBFX2 Firmware source files:
Original Video Game Controller
Before I built the controller above, I built one with no printed parts. The firmware is exactly the same and the schematic is nearly identical. Below are pictures of the controller and its PCB design.
Original Video Game Controller PCB Design