[WIP]6-Axis Ascii Sphere hacking ($10 SpaceOrb controller)

Tutorials on how to create your own rigs, pics, movies, and everything that has to do with S-3D at home!
Post Reply
nubie
Sharp Eyed Eagle!
Posts: 419
Joined: Sat Apr 07, 2007 2:49 pm

[WIP]6-Axis Ascii Sphere hacking ($10 SpaceOrb controller)

Post by nubie »

`
I am trying to interface a Playstation Ascii Sphere (links/pictures) to my PC. They are currently $10 brand new in the original box.

Why it is on these forums:
Basically you need to control yourself in 3 dimensions if you can see in three dimensions. A head tracking device is good, but that is for the view, you need to be able to move and look independently for greater immersion (more like real life). This requires 6 degrees of freedom (3 dimensions movement, 3 dimensions rotation).

How it works:
Inside the ball is a mirrored leaf spring, an IR LED and an Optical Sensor for each axis.

The mirror bisects the light between the IR LED and optical resistor (changes value based on light).

The amount of light varies as the spring and mirror move.

You simply turn, push, pull, and rotate the sphere to get every imaginable 3D movement.


I have a Spacetec SpaceOrb and an Ascii Sphere (There are pictures of both in the second post. (click here) ).

The SpaceOrb has some problems, like lack of buttons and drivers. Also they were (are?) pretty expensive and many are worn out. I asked Richard ( http://www.debaser.force9.co.uk/ ) about his notes on communicating with the Agetec Ascii Sphere controller for the Playstation
I got a reply:
I found my notes on the ascii sphere not that long ago, so you are in luck :)

I've attached what I came up with at the time. In native mode it looks like the motion was reported as 12 bits in each of the three axes, but I can't remember now how the extra 4 bits were used (and didn't make a note).

The notes basically explain what data is returned in each mode, but otherwise it acts as a normal playstation controller. Hopefully that usb adapter is flexible enough for you to write some code to handle this.

I think that the Ascii Sphere started life as a Windows game controller, not sure what the interface was originally.

Richardd.
You can find the interface notes (native sphere mode only) in the third post (click here).



Benefits:
  • *The Playstation controller version is available new (unused) for a reasonable price
    *It has many more buttons than any other game controller version of the Orb
    *It is pretty comfortable.
    *And . . . it doesn't seem like the data is encoded (unlike normal Spacetec products)
    *Currently you can find the controllers for $10 at http://www.baysoftgames.com/psxas360sp.html
Last edited by nubie on Thu Mar 20, 2008 11:55 am, edited 9 times in total.
CAVE, see what all the fuss is about:

http://www.youtube.com/watch?v=N6NN5JKlIi0
nubie
Sharp Eyed Eagle!
Posts: 419
Joined: Sat Apr 07, 2007 2:49 pm

Post by nubie »

Links:
http://www.planethardware.com/spaceorb/asciisphere.html

http://www.planethardware.com/spaceorb/

http://www.google.com/search?&q=spaceorb


Ascii Sphere (Playstation, 10 buttons, plus a 4-button D-Pad):
ImageImageImage

___________________________________________________________________________________________

SpaceTec SpaceOrb 360 (Serial port, 6 buttons total):
ImageImageImage
Last edited by nubie on Thu Mar 20, 2008 11:56 am, edited 4 times in total.
CAVE, see what all the fuss is about:

http://www.youtube.com/watch?v=N6NN5JKlIi0
sharky
3D Angel Eyes (Moderator)
Posts: 1819
Joined: Fri May 25, 2007 4:08 am
Location: Italy
Contact:

Post by sharky »

hi i did not completely understand 2 things.

1) relation to game immersion
2) what this ascii ball is..

ps: we totally forgot to create the generic DIY section! we will create it today. ill moe this topic when it is time to.
nubie
Sharp Eyed Eagle!
Posts: 419
Joined: Sat Apr 07, 2007 2:49 pm

Post by nubie »

K thanks, I wondered if this was a general forum :) (I just did a major reconstruction of the whole thing, let me know if it is any better.)


Description of serial communication:

mode 0 (native sphere mode)

10 bytes 'Analog'

1st byte - dpad, start select as normal
2nd byte - buttons as normal
3rd byte - 00 move x- (move left or strafe left), ff move x+ (move right or strafe right)
4th byte - 00 move y- (move down), ff move y+ (move up)
5th byte - 00 move z- (move forward), ff move z+ (move backward)
6th byte - 00 rotate x- (look down), ff rotate x+ (look up)
7th byte - 00 rotate y- (look right), ff rotate y+ (look left)
8th byte - 00 rotate z- (tilt or roll right), ff rotate z+ (tilt or roll left)

9th byte - 76543210
--**---- move x
----**-- move y
------** move z
10th byte - 76543210
--**---- rotate x
----**-- rotate y
------** rotate z
At the moment I need to make an interface for my PC so I can read the output, then there needs to be some software to make the data visible to games/apps.

Possible method #1:
I was thinking of using the Objective Development firmware USB driver in an Atmega8 RISC microntroller to convert the data from the existing on-board chips into a HID compliant 6-axis game device.

Specifically a modification of Sergey Ryumik's existing Playstation to USB implementation.

Download source and binary in a zip file (234kb): http://www.obdev.at/ftp/pub/Products/av ... 060108.zip



Possible method #2:

Alternate option, use the Atmega8 to completely bypass all original hardware and use the Atmega8 to directly interface with the buttons/powerball to USB.

http://www.flightsim.com/cgi/kds?$=main/howto/mind.htm

Downsides: no adjustment for the ADC gain/sensitivity/ramping/deadzone. Only 2 10-bit DACs, and 4 8-bit DACs

Upsides: no software to troubleshoot, immediate usage in-game after plugging in.

I wonder if the Atmega could be made to adjust the sensitivity on the fly, either with trimpots, or some software tied to the digital I/O and buttons.


Possible Method #3:
Convert output from the Ascii Sphere to PC serial port input and interface with pre-existing software.
CAVE, see what all the fuss is about:

http://www.youtube.com/watch?v=N6NN5JKlIi0
User avatar
CarlKenner
Binocular Vision CONFIRMED!
Posts: 332
Joined: Tue Aug 28, 2007 12:22 pm

Post by CarlKenner »

It's a 3D input device, Sharky. You move the ball forwards, backwards, left, right, up and down to move in the game, you can also rotate the ball in any direction to rotate. It is analog.

The more modern PC versions are here:
http://www.3dconnexion.com/
Copy this code to clipboard: 0o1rp5zk then go to http://mtbs3d.com/naw to register. Use the code for $5000 startup bonus, and to support Gaza.
Image
nubie
Sharp Eyed Eagle!
Posts: 419
Joined: Sat Apr 07, 2007 2:49 pm

Post by nubie »

Not dealing with immersion? Doesn't sound like this thread. Ok, maybe this just deals with controlling your immersion, if you want to split hairs (or get overly technical). I say that it increases the immersion in Descent like a 1,000 times over. But mostly just games with 6 degrees of freedom, and that isn't a lot. And practically all of them are Space-based, unlike Descent.

Hey Carl, that $59 Space Navigator looks pretty cool. Not a bad deal, will it interface with GlovePIE? I checked the readme, supported!

I wonder if they are better as a desktop unit or a hand-held controller? Can the 3DConnexion models be bolted down? Or does their weight keep them in place?
CAVE, see what all the fuss is about:

http://www.youtube.com/watch?v=N6NN5JKlIi0
sharky
3D Angel Eyes (Moderator)
Posts: 1819
Joined: Fri May 25, 2007 4:08 am
Location: Italy
Contact:

Post by sharky »

i can put it back out if you want.. :D

just a question.. if you can move the ball in all directions, how does it stick to the controller?
nubie
Sharp Eyed Eagle!
Posts: 419
Joined: Sat Apr 07, 2007 2:49 pm

Post by nubie »

I am happy now that I have another disaster in the zone :). You don't need to move me I was just being pedantic. (will there be a general DIY forum in the off-topic or general area? no rush, just curious)

The ball is on 6 metal springs, each spring is in a channel, if you movethe ball along the channel it won't change the value on that spring, but it will change the companion spring because its channel is 90° off.

There is an "inner ball" that holds all of the electronics and springs, it has a window around each spring, the outer ball has a hole for the post that anchors the inner ball to the controller. The spring Channels are added after the outer ball is in place, they are on bits of plastic that glue into the outer ball's surface. (the post on the spaceorb I got from the second-hand shop was broken, I had to take it all apart and use JB Weld epoxy to fix the post, then I used super glue to re-assemble the outer ball and its channel guides. In the end I bought a Ascii Sphere and soldered a brand new ball into it, much nicer.)

You would think it isn't good because you can't move the ball very far, but the instructions say to "gauge by pressure applied", and they are right, it has 10-bits per axis, and they calibrate and change sensitivity entirely in software, lowering the resolution doesn't even matter at such high sensitivity.


It is actually pretty amazing, the guy who designed it left and is now with a new company, they have a ball with 4 springs that ride in a shaft (so they can plunge, but are acted upon in 2 axis) one of the springs has no sensors, but the other 3 springs get an "X" and "Y" axis apiece, I think it might be better due to less spring forces, simpler for sure. I can't remember his name or the new company though.
CAVE, see what all the fuss is about:

http://www.youtube.com/watch?v=N6NN5JKlIi0
sharky
3D Angel Eyes (Moderator)
Posts: 1819
Joined: Fri May 25, 2007 4:08 am
Location: Italy
Contact:

Post by sharky »

(will there be a general DIY forum in the off-topic or general area? no rush, just curious)
THIS is the general DIY section.. :) if this section becomes more popular we can move it a bit upwards in teh forums



btw i found a better controller!

http://www.youtube.com/watch?v=puZclY7k ... re=related
nubie
Sharp Eyed Eagle!
Posts: 419
Joined: Sat Apr 07, 2007 2:49 pm

Post by nubie »

I am not so sure about that setup :P.

Progress report. I have the code for the Atmega8 microcontroller Playastation to USB adapter, and I am learning C so I can modify it for my purposes.

Areas that need modification:

The USB output section; this needs more axis, 6 total

The Playstation input section; the buttons should be the same, encoded on the first 2 bytes. So just the axis will need modification.

The Playstation analog/digital detect section; I am unsure how this works, I may need to insert detection of a new controller type, or it might appear as a regular analog controller.

I learned about arrays, int's, char's and expressions, also the logic symbols, I will attempt to re-read the code again and see if I can break it down into chunks I can understand. I can already see the input pins and output stream to the USB, I just can't quite see where the definition of the axis and the size of the axis value go.
CAVE, see what all the fuss is about:

http://www.youtube.com/watch?v=N6NN5JKlIi0
conferring
One Eyed Hopeful
Posts: 2
Joined: Fri Jun 05, 2009 12:48 am

Re: [WIP]6-Axis Ascii Sphere hacking ($10 SpaceOrb controller)

Post by conferring »

Hello. let me share some ASSCII names
(¯`·._.·[ (your name) ]·._.·´¯)
¨°o.O (your name) O.o°
×÷·.·´¯`·)» (your name) «(·´¯`·.·÷×
· ··^v´¯`×) (your name) (×´¯`v^·· ·
,.-~*'¨¯¨'*·~-.¸-(_ (your name) _)-,.-~*'¨¯¨'*·~-.¸
- - --^[ (your name) ]^-- - -
•·.·´¯`·.·• (your name) •·.·´¯`·.·•
`·.¸¸.·´´¯`··._.· (ASCII msn names) `·.¸¸.·´´¯`··._.·
(¯`·._) (your name) (¯`·._)
¯¨'*·~-.¸¸,.-~*' (your name) ¯¨'*·~-.¸¸,.-~*'
Oº°‘¨ (your name) ¨‘°ºO
׺°”˜`”°º× (your name) ׺°”˜`”°º×
.·´¯`·-> (your name) <-·´¯`·.
<º))))><.·´¯`·. (your name) ¸.·´¯`·.¸><((((º>
Post Reply

Return to “Do it Yourself!”