Well, it looks like this has finally come to fruition; pretty simple device basically built after RancidBacon's fantastic page here
, but with the addition of a 9-pin serial port, some DIP switches, and a Max233CPP chip to handle the serial to the device itself.
This is meant to resurrect old serial gaming devices. I built it in particular to breathe new life into the SpaceTec SpaceOrb 360, which is now defunct as a gaming device (I resurrected it once with HidSporb
, an XP driver, but this was a chance to implement the HID driver in hardware).
The happy news is, it works! I'm deeply indebted to RancidBacon's page, which had the outline for the circuit. Eagle files, the supporting library, and ludicrously detailed build instructions (I wanted Orb fans who'd never used a soldering iron to give it a try) are at the project page http://orbduino.sourceforge.net
. It successfully represents the SpaceOrb (or SpaceBall 4000, or Magellan SpaceMouse) as a 6-axis 16-button device (with goodies like chording, sensitivity curves, etc), plus mouse and keyboard which can be mapped, so it can work in any game supporting a mouse and keyboard... it may even work on USB-friendly consoles, but I don't have one to try. It seems to work with Windows and Linux as just a plain old HID device, which was the goal!
The basic idea is that the DIP switches control whether the on-board serial chip talks to the gaming device or not (so you turn the switches off to program the Arduino, unplug the arduino, plug the shield HID port into the computer and the DB9 into the gaming device, and turn the switches on; you can turn them on selectively to try and use the port for debugging device communication, but Weird Things happen if both USB ports are plugged in simultaneously).
Unfortunately I can't get it to compile with Arduino 0017 (I think because of the usbavr .S files, which sounds like should be fixed with 0018), but it worked with 0016; I played through Quake 4 and Fable using a desktop SpaceBall 4000FLX+mouse, as well as faffing about with Left4Dead (as a joystick) and Google Earth.
Build as you want, and if you're lazy (like me) I had Seeed Studio prototype it and built a few kits (Board only, sold out atm
and a few kits
, which I'll refresh if they sell out). The design is pretty basic and unfortunately puts some leads where they may hit components on the regular Arduino, so either put some tape over those (which is what I did) or use a lower-profile board like the Seeduino (haven't tried that yet but it should work).
I haven't tried it with other serial gaming devices, since I don't have access, but it should probably work... not the most elegant, but it's a first project, so I'm still proud of it--besides, what other projects will let me blow up zombies? If I had more time, I might try and do something more elegant with an Avropendous-DIP style chip (are they still going?), but this works great with the stock Arduino, which makes me happy.