Atari Joystick USB Adaptor

This project implements a composite USB device supporting two USB 2. 0 full-speed gameport HID interfaces. The physical joystick ports are wired in accordance to the `Atari standard` allowing connection of most Commodore 64 and Amiga joysticks as well as older Atari 2600 compatible joysticks. The USB adaptor is built around a PIC18F2550 microcontro
Atari Joystick USB Adaptor - schematic

ller and a port of the Microchip USB stack (to the Hi-Tech C18 PRO compiler). The circuit is designed for minimum component count to allow it to easily be built either on a PCB design (included below) or a small piece of stripboard. The 2 physical joystick ports are multiplexed onto the PIC`s PORTB, this is to allow use of the PORTB weak pull-up feature on both joysticks (removing the need for 10 pull-up resistors). An optional barrier diode is also included to protect the host computer from power feedback when using an in-circuit programmer. Multiplexing to a single port has the added advantage of leaving PORTA free for future addition of mouse/paddle interfaces (at some point I would like to add an Amiga mouse port to the design). The whole interface consists of 3 ports (2xJoystick, 1xUSB) and 10 components including the PIC. To make it even more compact/cheap you could also remove the status LED (which I included to help debugging) and the MCLR pull-up resistor (required so the ICSP programmer can hold the device in reset - useful when developing). Most of the complexity is in the software, feel free to download it and adapt it to your purposes. Please note that I don`t have my own USB VID or PID (since it costs $1500!) so you may need to alter the VID and PID in the code if it conflicts with another device (very unlikely since I used the Microchip VID). The software includes full switch debouncing for both on and off...

Leave Comment

characters left:

New Circuits