An ISP dongle is a very common piece of equipment on a maker’s bench. However, its potential as a hackable device is generally overlooked. The USBASP has an ATmeg8L at its heart and [Robson] decided that this humble USB device could be used as an interface between his PC and a SNES Joypad.
A SNES controller required three pins to communicate with a host: clock, data and latch. In his hack, [Robson] connects the controller to the ISP interface using a small DIY adaptor and programs the AVR using the V-USB library. V-USB is a software USB library for small microcontrollers and comes in pretty handy in this instance.
[Robson] does a pretty good job of documenting the entire process of creating the interface which includes the USB HID code as well as the SNES joypad serial protocol. His hack works on both Windows and Linux alike and the code is available on GitHub for download.
Simple implementation like this project are a great starting point for anyone looking to dip their toes in the DIY USB device pool. Veterans may find a complete DIY joystick more up their alley and will be inspired by some plastic techniques as well.
If you’re looking for a high entertainment value per byte of code, [Nardax] has you covered with his wearable spellcasting controller. With not much effort, he has built a very fun looking device, proving what we’ve always known: a little interaction can go a long way.
[Nardax] originally intended his glorified elbow-mount potentiometer to be a fireworks controller. Ironically, he’s now using it to throw virtual fireballs instead. Depending on the angle at which he holds his elbow before releasing it, he can cast different spells in the game World of Warcraft. We’re not at all sure that it helps his gameplay, but we’re absolutely sure that it’s more fun that simply mashing different keys.
There’s a lot of room for expansion here, but the question is how far you push it. Sometimes the simplest ideas are the best. It looks like [Nardax] is enjoying his product-testing research, though, so we’ll keep our eyes out for the next iterations of this project.
We’ve seen a number of high-tech competitors to the good old power glove, and although some are a lot more sophisticated than a potentiometer strapped to the elbow, this project made us smile. Sometimes, it’s not just how much tech you’ve got, but how you use it. After all, a DDS pad is just a collection of switches under a rug.
There’s an iconic scene from the movie Big where [Tom Hanks] and [Robert Loggia] play an enormous piano by dancing around on the floor-mounted keys. That was the first thing we thought of when we saw [jegatheesan.soundarapandian’s] PC joystick rug. His drum playing (see the video below) wasn’t as melodious as [Hanks] and [Loggia] but then again they probably had a musical director.
At the heart of the project is, of course, an Arduino. An HC-05 provides a Bluetooth connection back to the PC. We thought perhaps an Arduino with USB input capability like the Leonardo might be in use, but instead, [jegatheesan] has a custom Visual Basic program on the PC that uses SendKeys to do the dirty work.
The switches are more interesting made with old CDs, foil, and sponges. The sponge holds the CDs apart until you step on them and the foil makes the CDs conductive. He uses a lot of Fevicol in the project–as far as we can tell, that’s just an Indian brand of PVA glue, so Elmer’s or any other white glue should do just as well.
Continue reading “Game Controller Cuts the Rug”
If you need to reverse-engineer a USB protocol on a computer running Linux, your work is easy because you control everything on the target system — you can just look at the raw USB data. If you’d like to reverse-engineer a USB device that plugs into a game console, on the other hand, your work is a lot harder. Until now.
serialusb is a side-project by [Mathieu Laurendeau], alias [Matlo]. His main project, GIMX is aimed at gaming and lets you modify your gaming controller’s performance by passing it first through your PC and tweaking the USB data before forwarding it on to the target console. Want rapid fire? You got it. Alter the steering-wheel sensitivity curves? Sure.
GIMX is essentially a USB man-in-the-middle between your controller and your console, with the added ability to modify the data along the way. For hardware that’s not yet supported by GIMX, though, either [Matlo] would need to borrow your controller, or teach you to man-in-the-middle your own USB traffic. And that’s what serialusb does.
The hardware required is very modest: a USB-to-serial adapter and an ATmega32u4-based Arduino clone. Many of you could whip this together with parts on hand, and it’s the same hardware you’d need to run GIMX anyway. Data goes through your computer, is usbmon’ed and wireshark’ed, and then passed over serial to the ATmega which then converts it back into USB, plugged into the console. A very tidy little setup.
In case this seems familiar, we’ve covered a similar trick by [Matlo] before that used a BeagleBoard as the computer in the middle. That’s a sweet setup for sure, but if you don’t have a spare single-board computer lying around, now you can get it done for only around $5 in parts. Happy USB reversing!
Disco Floor’s are passé. [dennis1a4] turned them upside down and built an awesome RGB LED ceiling display using some simple hardware and a lot of elbow grease. His main room ceiling was exactly 32 ft x 20 ft and using 2 sq. ft tiles, he figured he could make a nice grid using 160 WS2812B RGB LEDs. A Teensy mounted in the ceiling does all the heavy lifting, with two serial Bluetooth modules connected to it. These get connected to two Bluetooth enabled NES game controllers. Each of the NES controller is stuffed with an Arduino Pro Mini, a Bluetooth module, Li-Ion battery and a USB charge controller.
Bluetooth is in non-secure mode, allowing him to connect to the Teensy, and control the LEDs, from other devices besides the NES controllers. The Teensy is mounted at the centre of the ceiling to ensure a good Bluetooth link. Programming required a lot of thought and time but he did manage to include animations as well as popular games such as Snake and Tetris.
The hard part was wiring up all of the 160 LED pixels. Instead of mounting the 5050 SMD LED’s on PCBs, [dennis1a4] wired them all up “dead bug” style. Each pixel has one LED, a 100nF decoupling capacitor, and 91 ohm resistors in series with the Data In and Data Out pins – these apparently help prevent ‘ringing’ on the data bus. Check the video for his radical soldering method. Each SMD LED was clamped in a machine shop vice, and the other three parts with their leads preformed were soldered directly to the LED pins.
The other tedious task was planning and laying out the wiring harness. Sets of 10 LEDs were first wired up on the shop bench. He then tacked them up to the ceiling and soldered them to the 14 gauge main harness. The final part was to put up the suspended ceiling and close the 2 sq. ft. grids with opaque plastic.
[dennis1a4] did some trials to figure out the right distance between each LED and the panel to make sure they were illuminated fully without a lot of light bleeding in to adjacent panels. This allowed him to get away without using baffles between the tiles.
Check out the video to see a cool time-lapse of the whole build.
Continue reading “RGB LED Ceiling Display”
[Garrett Greenwood] plays Smash Brothers, and apparently quite seriously. So seriously that he needed to modify his controller with five Neopixels so that it flashed different color animations according to the combo he’s playing on the controller; tailored to match the colors of the moves of his favorite character, naturally.
All of this happens with an ATtiny85 as the brains, which we find quite ambitious. Indeed, [Garrett] started out thinking he could simply read each of the inputs from the controller directly into the microcontroller at the heart of the whole thing, but then counted up how many wires that would be, and looked at how many pins he had free (six), and thought up a better solution.
[Garrett]’s routine instead reads the single line that the Gamecube controller uses to send back to the console. The protocol is well understood, using long-short and short-long signals to encode bits. The only trick is that each bit is sent in four microseconds, so the decoding routine has to be fairly speedy. To make it work he had to do quite a bit of work. More about that, and the demo video, after the break.
Continue reading “Shinewave Gamecube Controller Reacts to Smash Brothers”
Normally we see some crazy mad science projects coming from [Ben Krasnow’s] laboratory. This week [Ben] changes gears a bit and hacks his Xbox controller to interface with his bathroom scale and function as a posture controlled input device. You may want to take a moment for that to tumble around in your noggin before we trying to explain. What this means is you sit catawampus on a bathroom scale and when you lean forward your game character moves forward, lean back your character backs up and lean side to side for strafe left and right.
A modern digital bathroom scale has four pressure point transducers — one in each corner — which are read by the central controller and summed to generate the weight of the object setting on the scale. To use the scale as a controller input [Ben] removed the central scale controller and created two amplified Wheatstone bridge differential circuits, one for each diagonal axis between load cells. After adding an offset potentiometer to fix the resting point at 0.8 volts, the amplified differential voltage signals are fed directly into an Xbox controller’s thumb stick input for game control.
Additionally, to add rotation to his new game controller he hacked a an old ball type mouse and added a bit of rubber tubing that contacted and tracked the base of a Lazy Susan platter. The scale sits on the Lazy Susan and allows for the partial rotation of your torso to controlled game rotation. However, [Ben] still needed a regular mouse interfaced with the game for full 360° rotation control.
There is more after the break, plus the build and demonstration video.
Continue reading “Posterior Posture Videogame Controller”