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”
One of [Caleb]’s side projects before he left us was TheControllerProject, a place for controller and console modders to hook up with gamers with disabilities. Things must be hopping over there, because [Caleb] just announced his first contest, with prizes, even.
The goal of this contest is to make the trigger buttons on XBox and PS3 controllers able to be controlled from the top of the controller. This is a huge problem for gamers with disabilities, and no open system currently exists to solve this problem. If you can make some sort of mechanical device to turn shoulder-mounted buttons into top-mounted actuators, just host it somewhere and win a prize.
The prizes are an iFixit toolkit and magnetic mat. The first five people to send in a solution to the shoulder mounted button problem get this prize. Originally, [Caleb] thought about tearing apart these controllers and soldering extra buttons, but a snap-on mechanical solution is much easier to install.
If you design a solution to this problem, send it in (but send it to [Caleb] first!) and we’ll probably feature it too.
Continue reading “Thecontrollerproject’s first contest, with prizes”
This is a first for us. We’ve never heard of an instrument modeled after a pig sty before. The Styharp, built by [Yann Seznec], for [Matthew Herbert] is meant to be a mix between performance and visual art. [Matthew]’s followed a pig from birth to the plate and made an album from the sounds he recorded. The project is called “one pig”. This would explain the reason behind modeling an instrument after a sty.
[Yann] started with a Gametrak controller, basically a reel of line connected to a potentiometer. He ended up using 12 of these, which each have 3 outputs. This gave him plenty of ways change the sound during the performance. You can see a little bit of him demoing it after the break.
Continue reading “The Styharp, an instrument modeled after a pig sty”
[Ryan] sent in a little project he’s been working on. After he got his hands on a pair of DJ Hero controllers, he figured he needed to pull controller data off them.
After plugging in his two DJ Hero controllers to a breakout board, [Ryan] discovered the turntables communicate on an I2C bus. A Teensy was thrown into the mix, and work began on decoding the turntable output. [Ryan] figured out that by pulling 23 bytes from the turn table, he was left with the necessary data. Byte 20 is the state of the green, red, and blue buttons, byte 21 is the distance traveled, and byte 23 indicates clockwise or counter-clockwise. After [Ryan] figured out how to pull data off his DJ Hero controllers, the only thing left to do was build a giant Etch A Sketch on a 55 inch TV.
By the time the Etch A Sketch was completed, [Ryan] figured out that he had a gigantic rotary encoder – perfect for some classic MAME action. He started up MAME and loaded up Cameltry and Off The Wall. The DJ Hero controllers seem to work just fine, even if the hunched-over [Ryan] can’t beat the levels.