SIXAXIS under Windows

Technical discussion on the newly released and hard to find PS3.

Moderators: cheriff, emoon

Post Reply
Joel
Posts: 16
Joined: Sat Feb 23, 2008 7:51 am
Contact:

Post by Joel »

ah, i understand that part, controlling buttons and joysticks are easy
but is there a way to read accelerometers and gyro?
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

Data send by :

joystick1.roll
joystick1.pitch
joystick1.yaw
joystick1.rot // show [X, Y, Z]


isn't good ?
jordan23
Posts: 3
Joined: Mon Mar 17, 2008 12:46 pm
Contact:

Post by jordan23 »

The last driver for Vista is not optimised and can use a lot of processor usage.
Joel
Posts: 16
Joined: Sat Feb 23, 2008 7:51 am
Contact:

Post by Joel »

ah ok, i needed to put ppjoy to its default settings and it works!
but some things you (and everyone else) should be made aware of.

joystick1.roll -- reads ppjoy z rotation and covers a 360degree rolling motion (ie tilting the controller left - upsidedown - right)

joystick1.pitch -- reads ppjoy x rotation but is not pitch it covers roll for 180 degrees of motion, (tilting left and right)
pitch is when you tilt the controller forward (down) and backward (up)

joystick1.yaw -- reads ppjoy y rotation but its not yaw this one is pitch, and responds to the tilting forward/backward (180 degrees)

yaw is vertical rotation, holding the sixaxis flat, and turning it left/right (perpindicular to gravity) is yaw. that needs the gyroscope (btsix mentions gyro, but its not evident that it is being used, so far, only accelerometers)

for a more clear idea of pitch, yaw, and roll, i've started a VR project on my website using the sixaxis (wired in) with glovepie.
using the gyro requires calibration while the sixaxis is not moving.

http://joelclemens.colinr.ca/stuff.html

(this is a small part of my undergraduate thesis project that is due in 2 weeks and would be even more kickass if bluetooth was working with both accelerometers and gyro!)

soo close! thanks man, this is still pretty awesome.
Joel
Posts: 16
Joined: Sat Feb 23, 2008 7:51 am
Contact:

Post by Joel »

ok, i double checked the software (btsix) and it seems more correct than the default ppjoy output

roll is roll (x axis) (left/right accelerometer)
pitch is pitch (y axis) (forward/backward accelerometer
but z axis is labed with gyro.. this isn't the case.
it is the z axis accelerometer though, so that much is correct. (virtical accelerometer)

please i hope everyone takes my criticism as constructive, i think 89ron has done an excellent job and should defiantly keep it up, i wish i could help some how (hence posting this feedback)
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

I make mistake. In btsix panel, Gyro panel is not gyro but AccZ.

Btsix don't use calibration in AccX and AccY, but it work.
(eg: i don't use : accX/sin(roll) or accY/sin(pitch) )

Yesterday, i discoverd this : http://wiki.ps2dev.org/ps3:hardware:sixaxis , i try to understand how to enable Gyro or Yaw but it's very difficult :(
Joel
Posts: 16
Joined: Sat Feb 23, 2008 7:51 am
Contact:

Post by Joel »

it seems that the gyro defualt value will always be different depending on the controller.
regardless, the value you want is the amount of change compared to the previous value. (delta)
this would result in a positive or negative number, which would represent a clockwise/counter-clockwise motion, the value of the number represents how far it has turned.
i think there is probably more to it than that...

Carl Kenner does it very well with glovepie, perhaps you could check with him how its done.
(i PM'd you his email address)
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

I understand why doesn't work now; i missed activate something.

By default gyro is always disabled, but with glovepie in usb mode i can activate it. Now i must find who send data to enabling Gyro. (latest libusb0.sys 1.12.1 or glovepie 0.30 ?)
Joel
Posts: 16
Joined: Sat Feb 23, 2008 7:51 am
Contact:

Post by Joel »

(this isn't just for 89ron, but for everyone)

if you are interested in learning everything about glovepie, please join the yahoo group!
http://tech.groups.yahoo.com/group/glovepie/
hyjinx
Posts: 1
Joined: Wed Mar 26, 2008 12:38 am

Post by hyjinx »

First, I would like to thank 89ron for the work he has done on this project. I have been following this thread for the last couple of weeks and it inspired me to buy a bluetooth adapter for my EEE PC so that I can use the Sixaxis with my emulators for some nice portable gaming.

Last night I spent about 3 hours in Hell trying to get this thing to play nicely. I cannot stress this enough:

You need to make sure that you have version 1.10.1 of \windows\system32\libusb0.dll and \windows\system32\drivers\libusb0.sys NOT the latest version of 1.12.1.

This will save you about 2 hours of struggling.

I did finally get it working though, but I only had a few minutes to play with it. I did notice some major lag between the time I press a button on the sixaxis and the time it is recognized in my game. Since my EEE Pc is only running at 600mhz w/ 1gig of RAM, is it the CPU drain that 89ron's driver is placing on the machine? Or are you guys noticing lag with more powerful machines?

I realize that this is not a polished/final/production worthy version of code yet, so I'm just trying to provide as much feedback as possible to hopefully make it better.

Tonite, I will test at length and give some performance numbers to show what kind of load it is placing on my system.
Dxw
Posts: 3
Joined: Thu Mar 27, 2008 5:44 pm

Post by Dxw »

Ok, I need a little help here.

I've installed the freebt drivers for me dongle, edited the bluetooth address and run the sixaxis.pie script in glovepie which all works, I assume this is when i unplug the control and run btsix, which i do and hit the PS button, btsix says sixaxis controller connected but i cant do anything with it
Help?
Joel
Posts: 16
Joined: Sat Feb 23, 2008 7:51 am
Contact:

Post by Joel »

you need to have ppjoy installed so any other programs can see the data from the sixaxis.

you can get it here
http://www.geocities.com/deonvdw/PPJoy.htm
Dxw
Posts: 3
Joined: Thu Mar 27, 2008 5:44 pm

Post by Dxw »

I already have PPJoy installed, although to begin with btsix would tell me no joystick was found and it kept telling me new hardware was found, but i just let it search for drivers and it worked after that, in the game controllers section in control panel it shows the virtual joystick but pressing buttons on the sixaxis does nothing.
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

*** BtSix 1.3 ***

http://bqron.free.fr/PS3/BT/BtSix.1.3.zip

- Pairing Mode added. (require libusb0-win32 drivers, GlovePIE is not more required)
- Led added.
- Missing dlls added. (Mfc dll)
kitsunestrife
Posts: 2
Joined: Sun Mar 30, 2008 10:04 am

Post by kitsunestrife »

Tried BtSix 1.2 and 1.3 and neither seem to work for me. It looks like its connecting it to the bluetooth because only LED1 on the cotroller is lit, but I'm not able to control anything with it, so it's probably not linking it to the virtual controller for some reason.
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

Check firmware information.
kitsunestrife
Posts: 2
Joined: Sun Mar 30, 2008 10:04 am

Post by kitsunestrife »

Manufacturer: Cambridge Silicon Radio
HCI: 1525
LMP: 1525

Also, I went into PPJoyCOM.exe and where it says "Serial Port: COM1", it says "Error 5 opening port". With ports COM3, COM4, COM15 it shows "Error 2 opening port" but with COM2 it says "Successfully opened port", so I don't know if that has anything to do with it, or how to fix it.
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

Your dongle is too old, only LMP 3.0 (Bluetooth 2.0) and more can communicate with Sixaxis.
andyjmacross
Posts: 2
Joined: Mon Mar 17, 2008 10:16 pm

Post by andyjmacross »

if I use PCMICA port BT card (BT2.0) ...
could use this driver or not ?

also...can this driver be use when BT mouse via PC at the same time ?

Very thx~
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

This driver work only with Bluetooth dongle USB.

If you have two or more BT dongle usb, you can try it:
- First dongle on port usb#1 has original driver.
- Second dongle on port usb#n has Fbtusb.sys.

If doesn't work you can modify fbtusb.inf with PID and VID for one of yours dongle.
Rob_F
Posts: 10
Joined: Mon Mar 10, 2008 10:20 am

Post by Rob_F »

89ron wrote:*** BtSix 1.3 ***

http://bqron.free.fr/PS3/BT/BtSix.1.3.zip

- Pairing Mode added. (require libusb0-win32 drivers, GlovePIE is not more required)
- Led added.
- Missing dlls added. (Mfc dll)
Thank you for all the work you've done. The SIXAXIS rocks!
hpfalcon
Posts: 1
Joined: Mon Mar 31, 2008 7:14 am

Post by hpfalcon »

does this work with vista x64? I read the thread and it wasn't clear. (I'd try it myself, but the last time i tried to get this working from another driver, it killed my pc and i had to repair windows >.>)

I dont care if its through usb cable or bluetooth, doesnt matter as long as it works >_< ive been looking forever for a driver that works for x64
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

*** BtSix 1.3a ***

http://bqron.free.fr/PS3/BT/BtSix.1.3a.zip

- Less Cpu drain.
Joel
Posts: 16
Joined: Sat Feb 23, 2008 7:51 am
Contact:

Post by Joel »

excellent work 89ron, the roll and pitch data are much smoother than before.
i hope the gyro can be working soon.

for 64bit OS users, i'm 99% sure this only works on 32 bit systems.
a lot of people are having other driver issues with 64 bit, if not all the main stream stuff is working yet, how can you expect home-made stuff like this to work so soon?
salseropg
Posts: 6
Joined: Sat Apr 05, 2008 7:01 pm

Help

Post by salseropg »

Hello to everybody,
I'm new in this forum. I need help. Please 89ron help me!!!!
I have this problem. Under windows xp 32bis I use this bluetooth keyboard: http://www.digitalrise.biz/products/input/keyboard_btb/
I use Widcomm bluetooth software version 5.0.1.802 with bongle supporting bluetooth 2.0.
I would like to use contemporaneously my keyboard and sixaxis with your program (Bitsix).
How can I do?
Plaese help me
Many thanks
89ron
Posts: 51
Joined: Sun Mar 09, 2008 6:03 am

Post by 89ron »

Instructions for installing the FreeBT Generic Bluetooth USB Driver

This document describes how to install and uninstall the FreeBT Generic Bluetooth USB Driver and other 3rd party drivers.

Supported hardware

The FreeBT USB Driver is written in accordance with the Bluetooth USB HCI spec. Any device that follows the recommendations set down in that spec should be compatible with the FreeBT driver.

The FreeBT .inf will, by default, install any USB dongle that identifies itself with Class 0xE0 (Wireless Controller), SubClass 0x01 (RF Controller) and Protocol 0x01 (Bluetooth programming), in accordance with the USB HCI spec.

Specifically, FreeBT USB has been tested with the following devices:

* Acer BT-700 (Class 1 device)
* D-Link DBT-120 (Class 2 device)
* Any CSR or Silicon Wave-based USB devices

Actually, both of these devices incorporate a CSR BlueCore01 chip, (as do most of the commercially available Bluetooth dongles at present), which (apart from their amplifiers) makes them identical.

A user has confirmed that the Alpha 2 release, in which the driver is slightly modified, works with SiliconWave devices.

If you would like to donate other USB hardware to the FreeBT cause, please contact me.

Supported operating systems

The current release has been tested entirely on Windows XP. I expect it to work equally well on Windows 2000 and while it should work on Windows 98 SE and Windows ME, I have not tested it at all and have serious doubts about its worthiness on those platforms.

Installing the driver

In the unlikely event that you don't already have a Bluetooth USB driver installed for your USB dongle, installing the FreeBT driver is quite simple. Insert the device, point Windows at the src/driver/fbtusb directory and after you accept the warning about the driver being unsigned, it will install automatically.

Removing associations to other drivers

You are much more likely to have a driver from another vendor, such as Widcomm, installed on your system and while you don't need to remove that driver, you do need to persuade Windows to forget the association of the USB dongle to the other vendor driver. The process is not entirely straight forward and not something I would encourage the inexperienced to try.

To remove the reference to your existing driver, carry out the following steps:

* While the device is attached, locate it in the Device Manager, and delete it.

* Under the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB, you will find an entry that corresponds to your USB dongle. If you know the USB Vendor and Product IDs of your device, you will easily be able to locate the device, because the registry key that defines the device is built up from these values. For example, if the device is using a CSR BlueCore01 and the manufacturer has chosen not to change the Vendor and Product ID (as indeed most of them don't) the devices registry key will be HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_0a12&Pid_0001

If you don't know the USB Vendor and Product IDs of your device, you will have to find it by searching through all the USB keys. Typically the values DeviceDesc, LocationInformation, Mfg and Service will give you a pretty good idea of what you are looking at.

* Once you have located the key that represents your device, delete it. You may encounter a permissions error when you attempt to do this, in which case you can simply change the permissions for the key using RegEdit (right-click the key and select Permissions).

* Reboot your machine and follow the procedure above for a clean install of the driver.

Of course these steps apply equally well to the FreeBT driver itself, so you can carry out the same procedure again to remove the FreeBT driver.

Co-existance with other Bluetooth implementations


FreeBT can happily co-exist with other Bluetooth implementations, however the process is slightly tricky and requires a certain amount of discipline. It involves using dedicated physical USB ports for each seperate Bluetooth implementation, as well as temporarily modifying the .inf files supplied with the other implementation.

A pertinent example might be FreeBT co-existing with Microsofts Bluetooth implementation, which is a part of Windows XP Service Pack 2, although the following instructions will work with any Bluetooth implementation:

* Make sure you have two SEPERATE PHYSICAL availabile USB ports, we'll refer to them as PORT1 and PORT2
* Insert the USB device into PORT1 and install the associated (not FreeBT) software
* Remove the USB device
* Locate the driver inf file for the device. In the case of Microsofts Bluetooth implementation, this is %SystemRoot%\Inf\bth.inf. Other instances of the file named oem*.inf may exist.
* Comment out the lines that describe the USB device. These lines will have the format USB\Vid_USB_VENDOR_ID&Pid_USB_PRODUCT_ID. The following example shows the section where CSR devices are defined in Microsofts bth.inf:

[Cambridge.NT.5.1]
;Generic Bluetooth Radio= BthUsb, USB\Vid_0a12&Pid_0001
;CSR Nanosira= BthUsb, USB\Vid_0a12&Pid_0003
;CSR Nanosira WHQL Reference Radio= BthUsb, USB\Vid_0a12&Pid_0004
;CSR Nanosira-Multimedia= BthUsb, USB\Vid_0a12&Pid_0005
;CSR Nanosira-Multimedia WHQL Reference Radio= BthUsb, USB\Vid_0a12&Pid_0006

Lines are commented out by prefixing them with a semi-colon as the example shows.
* Insert the USB dongle into PORT2 (NOT PORT1). Windows should fail to find a driver for the device. Follow the instructions for installing the FreeBT driver, above.
* To use the MS stack, insert the device into PORT1. To use the FreeBT stack, insert the device into PORT2

Updating the driver

If you have already installed the FreeBT USB driver and want to update it to the latest version, you can do so quite easily by carying out the following procedure:

* Remove ALL USB Bluetooth hardware
* Restart the computer
* DO NOT start any programs which use the FreeBT libs or driver and DO NOT insert any Bluetooth hardware
* Copy the new driver file (fbtusb.sys) into %SystemRoot%\System32\drivers, overwriting the existing file

NOTE: If the driver is busy, Windows will silently ignore your attempt to overwrite the driver and it will appear as though the file was successfully overwritten. ALWAYS remember to remove all hardware and stop any FreeBT programs!
source: www.freebt.net/Alpha3/ (FreeBT/Docs/driver.html)
Dxw
Posts: 3
Joined: Thu Mar 27, 2008 5:44 pm

Post by Dxw »

kitsunestrife wrote:Tried BtSix 1.2 and 1.3 and neither seem to work for me. It looks like its connecting it to the bluetooth because only LED1 on the cotroller is lit, but I'm not able to control anything with it, so it's probably not linking it to the virtual controller for some reason.
I'm also having this problem but i have bluetooth 2.0, in btsix it shows 3,500 beside HCI and LMP, btsix says its connected and LED1 is on but i cant control anything with it.
cyberfix
Posts: 4
Joined: Mon Dec 31, 2007 3:53 am

Post by cyberfix »

89ron wrote: Actually, BtSix support only 1 sixaxis, but in the future maybe more :)
Does it support 2 controllers yet? I just bought a Bluetooth adapter today and am looking forward to trying the driver soon.

Does anybody know if Kensington will work? That is all that I could find at the local computer store. It is bluetooth 2.0 compatible.

Thanks
tiller
Posts: 2
Joined: Tue Apr 08, 2008 6:29 pm

Post by tiller »

Hi,

I bought a Sixaxis some time ago and I was pretty happy to find a driver that allowed me to use it via BT under Vista (no SP). Yesterday I installed SP1 and since then there's a great delay between pressing a controller's button or moving on of its joysticks.
Can anyone tell me how to fix that problem?

thx
tiller
Posts: 2
Joined: Tue Apr 08, 2008 6:29 pm

Post by tiller »

same problem under XP SP2...
Post Reply