UnoJoy makes your Arduino play well with Xbox 360 or PS3

We’ve seen Arduino-based game controllers before, but the UnoJoy project wants to make it easy for you to plug them into a gaming console.

The project is targeted at the Arduino UNO. Why only that hardware… isn’t Arduino universal? Well yes, but in this case the bootloader needs to be overwritten so that the Arduino will enumerate as an approved controller on your game system. Here the device is being put into DFU mode in preparation for flashing.

Once that part’s done it’s time to get to work on your own hardware interface. The UnoJoy library provides all of the hooks you need to push controller data to the game console, it’s up to you to use the Arduino IDE to decide when these events happen. This would be a great opportunity to make the Pinball Stop controllers work with the Xbox Live Arcade games. Or take a look after the break to see [Alan Chatham] using the library to control Gran Turismo as if it were an NES Power Pad game.

http://www.youtube.com/watch?v=Gaw6thWbKQg

Comments

  1. DanAdamKOF says:

    You have to be wrong about this, it doesn’t look like it supports 360. There’s an authentication chip that it looks for before it will talk to a controller. The Chinese have cloned it (such as in the Paewang Revolution PCB and knockoff wired 360 controllers) for what it’s worth.

    • David says:

      I was thinking the same thing. I was mislead at first thinking someone was able to share how the 360 HID security was worked around. But yet again, no such luck. I’ve been looking for over a year and always came up empty handed on how to bypass/clone the security. If anyone knows, please share!

      • DanAdamKOF says:

        Your best bet is to save the auth chip from controllers and repurpose that for your own use.

        Forgot to mention another high-profile PCB, the PS360+ PCB also communicates with the 360 without an auth chip.

  2. tieandjeans says:

    DanAdam is right, this is not a substitute for a Universal PCB or a dual PCB controller. It’s a neat project, but it doesn’t seem* to do much more than allow the Arduino to appear as a USB HID.

    That’s a nice perk for the Arduino Uno, but it’s already part of the Teensy’s feature set (and many others, I’m sure).

  3. bio says:

    can you flash the boot loader on the serial emulation ship on a first generation uno to work as a USB host/devide or what ever or is it rewired in the most recent version?

  4. Galane says:

    Can it make something like a Saitek ST-290 Pro or Ligitech Wingman Warrior 3D work with an XBox 360 – and do it for far less $$$$ than a $50 XBox 360 controller?

  5. mental2k says:

    Bollocks, I got very excited when it said 360. I’ve a Sega Saturn to HID keyboard adapter (LUFA rocks) and did most of the initial prototyping on the Arduino. A few new lines of code and I could’ve played some Street Fighter 4 with the king of the 2D controllers. Alas not.

    • DanAdamKOF says:

      Mental, you could try routing all button signals + GND + VCC to a connector (like DB15), then join them to the corresponding signals on a 360 controller (this assumes that both controllers are Common Ground). This will allow the Saturn controller to natively input into a 360. If you need more info, let me know.

      • DanAdamKOF says:

        Oh, and you’d probably want to use something like the MadCatz Brawl Pad or Fight Pad that already has all-digital controls, things get a little bit trickier using a controller with analog triggers.

      • mental2k says:

        I reckon what you’re saying is soldering the demuxed saturn outputs across the button inputs on a 360 controller. I considered this, but I can’t warrant ruining a perfectly good 360 pad. I suppose I should look on ebay every now and then for pre-ruined 360 pads. Maybe when I’ve finished my latest project, keyboard gloves!

        D-pad quality these days is abysmal. I’ve worn out the D-pad on 2 360 controllers whereas my old saturn pad has taken years of abuse and is still crisp.

        • DanAdamKOF says:

          Well you could demux, or tap them on the pad directly. If you just add a connector to a pad it’s still usable as a pad. But it must be common ground for this to work.

  6. Skitchin says:

    Hrm, the source seems to indicate it is actually a PS2 interface, PS3 support is implied. Also, there’s no sign of an xbox interface from what I can see. I see in the source he was reading the controller directly from the pins. I think the obvious next step is to use a PC and the arduino as a bridge between input devices. Might even be possible to write an interface that identifies itself as a steering wheel so you could get force feedback working.

  7. Adam says:

    i was just thinking of cool ways to control skyrim on my 360(flex sensing gloves to throw fireballs), now i’m heartbroken. I wonder if the kinect support will let me swing my arms to control my swords?

Speak Your Mind

*

Related Hacks in arduino hacks

  • Garden sensors measure soil moisture and greenhouse temperature
  • More pins and more power with a DIY Sanguino
  • A much easier take on an Android garage door opener
  • UnoJoy makes your Arduino play well with Xbox 360 or PS3
  • RC car controller and receiver replacement