Tuesday, September 28, 2010

One more update before I go to sleep

So, I've been playing around with Matlo's bluetooth emulation software, and it's the real deal! Despite the necessity of needing a specific bluetooth chipset, I was able to get the software working and I even played a little COD. According to Matlo's blog, you need a bluetooth adapter that has a chipset made by CSR, TI, Zeevo, Ericsson, or ST. There's even several posts where it is specifically noted that Broadcom chipsets won't work. Well, that's not 100% true. While all the adapters that I tried that were Broadcom didn't work, I do have an HP MiniNote computer that has an on-board Broadcom bluetooth chipset. As it turns out, this chipset is compatible (I can get more info regarding this chipset if anyone would like to have it).

For those who are unaware, the HP MiniNote only has two USB ports and is completely devoid of a CD-ROM drive. This meant that one of my USB ports was taken up by a USB flash drive containing a flash-bootable version of Ubuntu 10.04. Since there was only one more USB port, I didn't even bother pulling out my gaming keyboard and mouse. All my tests were done using the trackpad and the on-board keyboard, but I can say without a doubt that I didn't notice any lag between the inputs and the actions on the screen.

Now back to more info regarding the original project that got me to start this blog. I took a bunch of XBox 360 stuff to Game Stop to do some trading since my XBox 360 decided to RROD. While there I picked up another PS3 controller, so the next step will be to tear it apart and figure out where to solder all the necessary wires to the board. If all goes well, I should have a VERY preliminary POC in the next week or so. However, at this point I think that my progress will be moot. Matlo's option, while a bit of a hassle for some users since it requires Linux, is VERY VERY good and it does, in fact, work with the newest PS3 firmware..... that's right kiddies, I upgraded to 3.50 and lost my jailbreak just to confirm that this will work for all of us lost XIM'ers. My time may be better spent tweaking on the mouse translations of Matlo's software and possibly doing some work to get a nice GUI laid over the top, especially since he's already working on making his solution cross platform. I may go ahead with my original project just to prove to myself that I can do it, but I'm not sure. Feel free to leave some comments letting me know which way you think my time would be better spent.

And as a side note for any of you guys out there that might try to do the same thing I did by using an on-board bluetooth chipset instead of a dongle, there's a really easy way to reset your bluetooth device without having to reboot the computer. After downloading the bluez bundle and building it, use hciconfig to reset the on-board bluetooth device. I would give you the exact syntax, but it's late, I've been drinking, and I can't remember it right off the top of my head. However, if you know your way around a Linux terminal you should be able to figure it out for yourself.

11 comments:

  1. I'm aware some broadcom dongles may work, but it seems these are not common (I would say less than 1/10). I should update the tutorial on that point. As no user reported a bluecore4 doesn't work (that doesn't mean no bluecore4 doesn't work), I'd rather suggest to buy a bluecore4 dongle than a broadcom one. I'm using a non-modifiable broadcom dongle to play, using a different technique: I developed a device that emulates a sixaxis to pair the bdaddr of my dongle with my ps3 (details are on my blog). This uses the teensy++, and as this usb dev board is owned by many people now, I should update the tutorial on that point too.

    Opening a controller and hack it with an arduino was my very first project regarding ps3 controllers. It's not easy to do (at least, not easier than the two working solutions I give on my blog). I used quite successfully two digital pots to control the right stick with a ps/2 mouse. But one day I discovered that the Teensy++ could directly emulate a generic gamepad, and one other day that the bluetooth connection could be hacked...

    That said, hacking a controller is a good way to learn stuffs about digital electronics (and especially micro-controllers).

    If you want to be part of the project (and for ex develop a nice cross-platform GUI), you are welcome! You can contact me by mail (my email can be found on my googlecode page).

    ReplyDelete
  2. I was definitely surprised that I got it to work. Anyway, I was going to email you, but your googlecode page doesn't show your entire email address and I couldn't find where you might have listed it anywhere else.

    ReplyDelete
  3. By using the Bluetooth option would this bypass the need for a xim device? It sounds like it might be more work originally via the Bluetooth method but eventually it would become easy once people learn the process. Looks to me the biggest roadblock is getting the software setup for this - will we need to do a new version of xim/xae-me instead or will the software work in conjunction since I know they don't have Linux versions.

    -dx

    ReplyDelete
  4. Yes, using Matlo's software bypasses the need for any specially designed hardware. For the version that I played around with last night, all that's needed is a compatible bluetooth dongle and a computer running linux. Matlo also said in his comment above that he's found a way to use a Teensy++ dev board to facilitate pairing a bluetooth dongle that doesn't have a modifiable bdaddr. However, Teensy++ dev boards are hard to come by right now since everyone is buying them up in order to create jailbreak dongles for the PS3's.

    Matlo's software seems to do a good job of translating all the necessary inputs, and while it isn't necessary, a GUI could easily be laid over the top. In it's current state, it's all text-based and run from a linux terminal.

    I don't know if there are any demo videos of Matlo's solution, and if there aren't, I'd be more than happy to create one and post it up for everyone to see.

    ReplyDelete
  5. I think you have to be logged in to see my email address on my googlecode (your blogger account should work!). If you still can't see it, I will write it there.

    There are no demo videos of the sixaxis emulator running. Feel free to make one!

    ReplyDelete
  6. I read that the BT method polls every 10ms shouldn't that be 100 updates/second, more than the 60 that ps2-ps3 adapters get. Would this be the same quality as a wired version?
    I also like how it could emulate more than one BT device.

    ReplyDelete
  7. 10ms is the max report period of a sixaxis, so that the polling period of events from input devices is set to the same value.

    1s = 1000 ms
    1000/10 = 100 reports/s

    It is possible to emulate several sixaxis with several bt dongles. I tested that but for some unknown reason(s) it doesn't work. That's on my to-do list.

    ReplyDelete
  8. I know nothing of linux or most programming languages. Im familiar with c++ from whats been read on cpptutorial sites, but not fluent enough to do more than a calculator program. Im interested in helping, just need to know which platform i need to direct myself to.

    ReplyDelete
  9. also have some ps3 controllers that have been stepped on or thrown before i valued my fifty bucks ;)

    The chips are still in tact but the casings are cracked

    ReplyDelete
  10. I intend the app to run on most common platforms (windows, linux, mac os), so that I want the code to be cross-platform. Therefore any platform could be used to develop the coming stuffs. But as the core part only runs efficiently on Linux for now, it's better to use this platform.

    ReplyDelete
  11. Very interesting project! I dont mind having to use linux since you can just load it on a partition and run it from there. If it helps us get something faster then port it to windows at a later date is what i would prefer. I would prefer macos the most tho ;). I would hope for the program to make it clean and basic not overly done like XAE-ME, it works great but its so confusing to figure out what is what!

    -dx

    ReplyDelete