Game Controller

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.

Game Controller Repository

Game Controller Pictures

Game Controller PCBS Top View
Game Controller PCBS Top View
Game Controller PCBS Bottom View
Game Controller PCBS Bottom View
Game Controller Disassembled
Game Controller Disassembled
Game Controller Top View
Game Controller Top View
Game Controller Bottom View
Game Controller Bottom View
Game Controller Front View
Game Controller Front View

Game Controller Schematics

The Game Controller PCBs were designed using Express PCB.

Game Controller PCB Source
Game Controller Schematic Page 1
Game Controller Schematic Page 1
Game Controller Schematic Page 2
Game Controller Schematic Page 2

Game Controller PCB Design

Game Controller PCB Top Layer
Game Controller PCB Top Layer
Game Controller PCB Bottom Layer
Game Controller PCB Bottom Layer
Game Controller PCB Power Layer
Game Controller PCB Power Layer
Game Controller PCB Ground Layer
Game Controller PCB Ground Layer
Game Controller PCB Combined Layers
Game Controller Combined Layers

Game Controller CAD Design

The game controller shell was designed in Free CAD.

Game Controller CAD Source
Game Controller CAD Image
Game Controller CAD Image

Game Controller Firmware

The Atmel microcontroller firmware was written in C using AVR Studio. The Cyprus EZUSBFX2 firmware was written in assembly using my custom 8051 assembler.

ATMega128 firmware source files:

Game Controller Atmel Firmware

EZUSBFX2 firmware source files:

Game Controller Cyprus Firmware

Original 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.

Old Controller Top View
Old Controller Top View
Old Controller Bottom View
Old Controller Bottom View

Original Game Controller PCB Design

Old Controller PCB Top Layer
Old Controller PCB Top Layer
Old Controller PCB Bottom Layer
Old Controller PCB Bottom Layer
Old Controller PCB All Layers
Old Controller PCB All Layers