Friday, March 4, 2011

I've let this go far too long without an update!

Alright guys, I know that some of you are still patiently waiting for any new developments on the PS3 adapter project. Despite my best intentions, I've yet to get the PS3 home button working. Like I said in an earlier post, I know what needs to happen, but I just haven't sat down and taken the time to write the code. I'm not going to put a date on it, but I hope that I will find the time soon. I have also been trying to come up with a cost-effective way to create a X360->PS3 adapter so that us PS3 users could benefit from all the work that OBsIV has put into XIM3. The real roadblock deals with the kind of hardware required to do such a thing. Making an adapter that would translate PSX signals into USB was relatively simple once I finally got my head wrapped around how USB worked. Making an adapter that will act as a USB host that can parse the data from the Xbox 360 controller and then translate it into something the PS3 will understand requires quite a bit more hardware than the original project did. The good news is that I can re-use some of the code from the original project to make it happen. However, the hardware is all new to me and it will take a little time to learn all the ins and outs.... that, and I still haven't bought it yet.

Another thing that's been taking up a lot of  my time is getting an iOS project lined out for where I work, and I'm really excited about it and all the possibilities that are taking shape with that project. Right now it's still in the planning phase, and I'll definitely be posting more about it later.

Friday, December 3, 2010

New version is out

Version 2 is now out. Users reported that the L1 and L2 buttons were swapped, as well as R1 and R2 being swapped. I rechecked my notes, and everything looked right based on my references, but they must have had it wrong.

One user had also asked about a port for boards based on the AT90USB162 chip like the Minimus, so I compiled a version for that chip as well. I don't currently have a board with that chip, so I can't promise that this version will work. You'll also probably have to use Flip from Atmel to program the board. The Teensyloader application only works with Teensy boards.

Download for V2 -> Teensy
Download for V2 -> AT90USB162

Sunday, November 14, 2010

Quick update

I know I haven't posted in a while, but I just wanted to let everyone know that I'm still working on this. I've found the info that I need to make the PS3 button work, but I need to port it from VUSB to LUFA so that it will work with the Teensy. I've asked another developer for some help so that I can get headed in the right direction, so hopefully I'll be able to get something working later this week.

Tuesday, November 2, 2010

Well...... that didn't work

I tried to do a general clean-up and rewrite of the code so that I can release it, and while the code compiled without problems, it just wouldn't work. I'll be working some more on this over the next couple of days, and hopefully I'll have a second version with a working PS3 home button out by the beginning of next week.

Sunday, October 31, 2010

Build your own XIM1->PS3 adapter

Alright, here's the tutorial.

The first thing we'll go over is what you'll need. Of course, you'll need an original XIM. The XIM used one of two daughter cards, either the F330 or the F362. My XIM was made using an F330, but this should work with the F362 card, as well.

The second thing that you'll need is a Teensy 2.0 dev board. They're available directly from the manufacturer at PJRC.com or you can also buy one from adafruit.com. If you get it directly from PJRC, you can get it without pins and save a few dollars. I soldered pins onto the one that I bought because I'll most likely use it for other things as well. If you're interested in microcontrollers, the Teensy is a good platform to start with.

The third thing that you'll need is one of the USB cables that you charge your PS3 controllers with. You'll use this USB cable for connecting the adapter to the PS3 and also for programming the Teensy.

Lastly, you're going to need the Teensy loader software and the HEX file that we're going to program the Teensy with. The Teensy loader software can be downloaded from PJRC at this link -> Teensy Loader download. The HEX file can be downloaded from here -> USB HID Gamepad HEX file.

Now it's time for the fun stuff. The first thing you're going to need to do is figure out where to solder the wires to. The connections listed in the picture below are for the F330, so if you've got a F362 you may not be able to use this.



Once you've got all the solder connections done, connect the Teensy to your computer with the USB cable and run the Teensy loader app. In the file menu, click open HEX file and browser to the HEX file you downloaded earlier. Click the AUTO button in the menu and then press the button on the Teensy to load the HEX file onto it. In AUTO mode, the Teensy loader app will automatically program the chip and then reboot it. After being rebooted, it should show up in device manager as a HID gamepad.

The next step is to try it with the PS3. These are the steps that I have found to work best when getting the XIM/Teensy connected to the PS3. First, turn the PS3 on by pressing the power button on the face of the PS3. Next, connect the Teensy-side of the adapter to the PS3. The Teensy will power on at this point. Then you'll need to plug the other side of the XIM into the computer and run the XIM software. The number of updates should be showing somewhere around 125.

Right now there's no PS button emulation since generic HID devices "can't" have one. My initial goal with this project was to create something that could get around whatever restrictions that Sony has implemented, and I've done that without too much trouble. Now it's time to start working on the specific stuff. Also, there's always a possibility that I've managed to switch a few buttons when I'm translating the PSX into USB. If you find a problem, post in the comments and I'll get it fixed.

DIY XIM1->PS3 adapter tutorial info

In my last post I mentioned that I was evaluating two new pieces of hardware, one of which would hopefully work for the DIY XIM1->PS3 adapter. Well, I just finished a quick and dirty port of my code over to the new hardware, and it works great. The updates per second with the new hardware is running at 125 per second, and since there's other adapters out there that run that fast, I'm not going to try to slow it down any. It _might_ run a little faster once the code is cleaned up, but I won't know until I get that done.

Wednesday, October 27, 2010

Odds and ends...

Here's a few updates on several different facets of this proect:

1) I'm still working on the XBox360->PS3 adapter. My logic analyzer should be here tomorrow to help with getting the MCU talking to the USB host IC that I'm working with. I'm a little worried about latency at this point, but I have nothing to base those concerns on and won't be sure about anything until I get everything working.

2) I said a while ago that I had chosen the C8051F342 as the development platform for this project. Ever since then, I've been using an AVR development board. The code is semi-working on the F342, but I've yet to even really start porting the more critical portions of the code over. Both the F342 and the ATMega328 are more than capable for the intended purpose, but the final platform is all going to depend on latency.... which brings me to my next point.

3) I'm in the process of evaluating two new pieces of hardware. The first is an all-in-one IC that can host both the XBox 360 controller and be a slave to the PS3 all at the same time. This is the ideal platform, but it'll mean starting over on the whole project and learning a completely new architecture.

The second piece of hardware that I'm looking at will be for the original XIM users that want to have a firmware upgradable adapter that they can build themselves and who aren't interested in upgrading to XIM2 or XIM3 once I get the XBox360->PS3 adapter working to my liking. Bootloading the MCU to allow for easy firmware upgrades is something that I've given a lot of thought to, and I think that there's already great solutions out there. Once I get the new MCU and get the code ported to it, I'll make a post with all the details and a link to download the hex code needed to get everything running. The only thing that you'll need to program the hardware that I'm looking at will be a USB cable.

Unfortunately, there won't be a DIY solution for the XBox360->PS3 adapter since some custom PC boards will have to be printed up.