I think it, i tinker it, i make it
—-
Recent updates:
I think it, i tinker it, i make it
—-
Recent updates:
USB Digger Joystick is an hardware interface designed to connect old school 8 bit home computer joysticks (Atari, Commodore, ecc…) on a modern PCs by USB keyboard emulation, is designed to play Digger.
The idea was born as a present for my mother, the only videogame as played a lot is Digger.
When i upgraded my PC set from Olivetti Prodest PC1 to a 386 with VGA, my parents was no more able to play with Digger because in the past they worked only on native CGA systems.
Many year later Andrew Jenner with a reverse engineering process of the original DOS program, has remastered Digger for VGA machines, its work created also another platform version of the game (see http://www.digger.org)
At that point, Digger run on Windows but my parents didn't like keyboard because with the PC1 they used a joystick.
Recently my interest was captured by Atmel microcontrollers, Arduino and libraries V-USB by Objective Development, from this the idea to realize the missing piece
Connecting the interface to a Windows PC, Linux or Mac it is recognized as a generic USB keyboard, no drivers needed for working, via joystick commands these keys are emulated:
EMULATED KEY | ||
---|---|---|
JOYSTICK COMMAND | PLAYER 1 | PLAYER 2 |
UP | CURSOR UP | w |
DOWN | CURSOR DOWN | s |
RIGHT | CURSOR RIGHT | d |
LEFT | CURSOR LEFT | a |
FIRE | F1 | TAB |
USB Digger Joystick is an OpenSource hardware/software project, all detail are available for download / make / modify / hack it.
An archive with schematics, PCB layout and software stuff is available in downloads section.
The schematic and the PCB layout are designed using CadSoft Eagle 6.10 Light, this is the part list exported:
Partlist Exported from VUSB_Digger_Joystick.sch at 30/04/12 15:19 EAGLE Version 6.1.0 Copyright (c) 1988-2012 CadSoft Assembly variant: Part Value Device Package Library Sheet C1 22pF C-EU025-025X050 C025-025X050 resistor 1 C2 22pF C-EU025-025X050 C025-025X050 resistor 1 C3 10uF CPOL-EUE2.5-6 E2,5-6 resistor 1 C4 100nF C-EU025-025X050 C025-025X050 resistor 1 D1 BZX 3V6 BZX55 DO35Z10 diode 1 D2 BZX 3V6 BZX55 DO35Z10 diode 1 H1 MOUNT-PAD-ROUND3.0 MOUNT-PAD-ROUND3.0 3,0-PAD holes 1 H2 MOUNT-PAD-ROUND3.0 MOUNT-PAD-ROUND3.0 3,0-PAD holes 1 H3 MOUNT-PAD-ROUND3.0 MOUNT-PAD-ROUND3.0 3,0-PAD holes 1 H4 MOUNT-PAD-ROUND3.0 MOUNT-PAD-ROUND3.0 3,0-PAD holes 1 IC1 ATMEGA328-P MEGA8-P DIL28-3 atmel 1 JP1 JP1E JP1 jumper 1 JP2 PINHD-2X5 2X05 pinhead 1 JP3 PINHD-2X8 2X08 pinhead 1 JP4 JP1E JP1 jumper 1 JP5 JP1E JP1 jumper 1 JP6 JP1E JP1 jumper 1 JP7 PINHD-1X1 1X01 adafruit 1 JP8 PINHD-1X1 1X01 adafruit 1 JP9 PINHD-1X3 1X03 adafruit 1 JP10 PINHD-1X1 1X01 adafruit 1 JP11 PINHD-1X1 1X01 adafruit 1 JP12 PINHD-1X1 1X01 adafruit 1 Q1 12MHz CRYSTALHC18U-V HC18U-V crystal 1 R1 10k R-EU_0207/15 0207/15 resistor 1 R2 68R R-EU_0207/15 0207/15 resistor 1 R3 1k5 R-EU_0207/15 0207/15 resistor 1 R4 68R R-EU_0207/15 0207/15 resistor 1 R5 10k R-EU_0207/7 0207/7 rcl 1 R6 10k R-EU_0207/7 0207/7 rcl 1 R7 100k R-EU_0207/7 0207/7 rcl 1 R8 100k R-EU_0207/7 0207/7 rcl 1 X1 PN61729-S PN61729-S PN61729-S con-berg 1
This layout is only suitable for web pubblication (just for a look ), for etching purpose please use the 1200 DPI version available in downloads
The interfarce use bootloadHID as bootloader to make possibile easy upgrade with newer firmwares.
Fuses used to burn the bootloadHID on the atMega328p chip:
FUSE | VALUE |
---|---|
lfuse | 0xf7 |
hfuse | 0xda |
efuse | 0x03 |
to burn after download the HEX binary, you can use various methods, i have tested the burning via the Arduino 2009 that is equipped with an FTDI chip, the procedure is explained here.
I have use a breadboard with only quartz christal and the two 22pf capacitors connected to X3 Arduino's connector:
Connector X3 PIN on Arduino Duemilanove | PIN atMega328 on breadboard |
1 | 18 |
2 | 19 |
3 | 17 |
4 | 1 |
You can use the Arduino board also as power source for +5V and GND.
This document explain how to patch avrdude on Ubuntu Linux (i used Ubuntu 10.04 for all development process)
The development of interface is based on Arduino and porting for Arduino of the V-USB by Objective Development Software GmbH
The hardware (the schematic and the PCB layout), is released under Creative Commons Attribution Share-Alike license.
The software (the sources and the firmware binary), is released under GPL in execptions of the V-USB librearies, there are released by Objective Development Software GmbH under a proprietary OpenSource license, contained in the source directory of USB Digger Joystick project, you can find it in firmware/usbdrv/License.txt
The hardware and the software are released by the author Alessio Cavalieri AS IS, without any warranty, the author is not responsible for malfunction and/or damages to devices connected to interface USB Digger Joystick, assemble and use at your own risk.
The joysticks are connected to the interface with these pins, via two DB9 male connector:
PIN | FUNCTION |
---|---|
1 | UP |
2 | DOWN |
3 | LEFT |
4 | RIGHT |
6 | FIRE |
8 | GND (GROUND, 0V) |
Functions matching pins using an Arduino or an Atmel atMega328p standalone
PLAYER1 | |||
---|---|---|---|
FUNCTION | DB9 CONNECTOR | ARDUINO | ATMEL |
GND | 8 | GND | GND |
FIRE | 6 | 8 | 14 |
UP | 1 | 10 | 16 |
DOWN | 2 | 11 | 17 |
LEFT | 3 | 9 | 15 |
RIGHT | 4 | 12 | 18 |
PLAYER1 | |||
---|---|---|---|
FUNCTION | DB9 CONNECTOR | ARDUINO | ATMEL |
GND | 8 | GND | GND |
FIRE | 6 | 3 | 5 |
UP | 1 | A4 | 27 |
DOWN | 2 | A3 | 27 |
LEFT | 3 | A5 | 28 |
RIGHT | 4 | 5 | 11 |
Connector | functions |
---|---|
JP1 | bootloadHID enable jumper (for firmware updates) / Player 2 fire button |
JP2 | Player 1 joystick DB9 connector / suitable for ICSP functions |
JP3 | free for future development, Player 1 analog joystick DB15 connector (not actually implemented in firmware, suitable only as future development / espansion) |
JP4 | free for future development |
JP5 | Player 2 joystick right |
JP6 | free for future development |
JP7 | +5V USB PORT |
JP8 | GND USB PORT |
JP9 | (1) Player 2 joystick down / (2) Player 2 joystick up / (3) Player 2 joystick left |
JP10 | free / suitable for ICSP RESET function |
JP11 | free / suitable for ICSP SCK function |
JP12 | free for future development |
X1 | USB PORT |
For contact me, write a mail to info at itink.it