[Jamie] built his own USB connected arcade controller. We’ve been seeing a lot of these lately, and they usually involve soldering buttons to a keyboard PCB. But [Jamie] decided to go a different route and use his own microcontroller. This method always gets a bit hairy when it comes to deciding how to connect it to a computer. Dealing with the USB stack used to be quite tricky, but the LUFA project is slowly taking the pain out of the process.
The Lightweight USB Framework for AVRs is an open source project that handles the hard work associated with USB capable AVR microcontrollers. [Jamie] knew that they already had a sample implementation of a hardware joystick. He’s not using one of the supported boards and so wasn’t able to just compile and go. But porting the code to work with his minimus board was simple enough. With the code in place, the physical build was quite simple. The buttons and joystick were mounted on the surface of an overturned drawer. Each is connected to one pin of the controller board and to ground. LUFA makes sure that the device enumerates as a joystick, and [Jamie] was gaming in no time.
[Alex] wanted to play video games with an arcade stick and buttons, but got sticker shock after seeing the price of commercially available controllers that connect to a computer via USB. He set out to build his own and ended up with the controller-in-a box that you see above.
At first he tried using an mbed microcontroller board but was unhappy with the latency built into the system that detected a button press, sent it via USB as a keyboard press, which was then interpreted as input by the game. He ditched the microcontroller completely and picked up a couple of 4021 parallel-to-serial shift registers. He had previously used this method to make his own SNES controller. The SNES uses two 8-bit shift registers to generate an 16-bit serial packet to send to the console. [Alex’s] reused that system, adding an SNES controller plug to his arcade box, and using the SNES to USB converter he already had to connect to the computer. Now he’s got a portable controller for the cost of three buttons, the stick, and two IC’s.
He explains the project himself in the clip after the break.
Continue reading “Arcade controller in a box”
[Luke] wanted an arcade-style controller that he could use for some gaming at home. He decided to use a portable game emulator as a base and then added his own joystick and buttons along with a custom case.
The donor hardware is a Dingo A320. It’s a nice little handheld with a 2.8″ screen, and plenty of potential to emulate games like Donkey Kong seen above, or to play homebrew. It’s even been the target of some RAM upgrades we looked in on in the past. The best part for [Luke’s] project is that it includes a video out port.
In the clip after the break you can see that [Luke] now has a compact controller with a huge arcade joystick, four buttons on the top surface, and the rest of the controls all around the edges of the enclosure. The video out option is selected in the menu system, so he preserved the original LCD for use during configuration.
Continue reading “Portable gets a proper home in an arcade controller”
[Stealth] put together a post explaining how he writes drivers for input peripherals. He’s using Python which makes the process fairly painless (we’ll get to that in a minute) but the value of his post is in the explanation surrounding how to interpret the data. Once you know how the communications are coming in from a device you can write the driver using any language you want. [Stealth] wrote in to let us know about this post after reading the PlayStation 3 Sixaxis controller sniffing hack. He’s pretty much doing the same thing but the background information is much more bountiful.
There are a couple of prerequisites to the process. First, [Stealth] is working in a Linux environment. That’s not to say you couldn’t do this on another OS, but you’re going to need to do some research to find out how to tap into the data stream from the device. Secondly, the input you are working with must already be set up and working on the machine. That means if there isn’t any support at all for the peripheral (in this case a USB joystick) you’re not going to be able to sniff the commands. That being said, a short Python snippet is all you need to dump the raw data coming in from the device. With data in hand it’s time to do some pattern hunting. As you start to figure out the size and scope of the incoming packets you can try out your own code to make sure you’ve got it right. Check out the demo video after the break which features a joystick button mapper written in Python.
Continue reading “Writing Python drivers for input devices”
[Ben Krasnow] is working on a force-feedback joystick. It centers around the concept of an air muscle which transfers pressure into linear motion. He cites another air muscle project as part of the inspiration in his build, but where he’s gone with it is one of the better uses for these blow-up components that we’ve seen.
Basically you have a bladder, in this case rubber tubing. A mesh surrounds it to reinforce the material and cause inflation to shorten the length of the package. In the image above there are four black air muscles that connect the base of a joystick with the outer frame that houses it. How and when each muscle is pressurized determines the type of motion the user will feel on the joystick. This is where his pressure controller comes into play. It uses a voltage-to-pressure transducer to feed a manifold, the combination of which not only makes each muscle addressable but allows him to dial in the force sent to the muscles. Check out the video after the break for his start-to-finish walk through.
Continue reading “Haptic feedback joystick uses air muscles”
Gather your friends round the living room for a head-to-head quiz game. This one’s not quite as nice as you might think. Get an answer wrong and you’re going to get the Venkman treatment thanks to the stored electricity in a disposable camera flash circuit. [Israel] runs the game questions from a Windows machine, and uses a set of four USB joystick buzzers that let each contestant ring in. They all wear a cuff that houses electrodes for negative-reinforcement upon an incorrect answer. Since every contestant answers each question it won’t be long before you hear the uncomfortable yelp of failure from your guests. This seems a little bit more fair than shocking people for not calming their minds, but the video from that hack is still one of our all-time favorites.
Instructibles user [Shadowwynd] shows us a great way to build a joystick/mouse device for people with special accessibility needs. When faced with a case that involved a man with very limited mobility as well as a limited budget, [shadowwynd] set out to find a cost effective solution to computer navigation. They found that his client could use a commercial joystick mouse, but the cost was quite high at over $400. So instead of just purchasing that, they bought a USB game pad and built their own version. They managed to reduce the cost to roughly $45. While extending the buttons and joystick from a gamepad might not be groundbreaking, we feel that this project is the epitome of hacking. Great job [Shadowwynd] keep up the good work.