M$ Sidewinder 3D Pro on USB
Updated the schematic, had a nice idea for hassle-free init and automatic restarts Our ME took on the task for creating a PCB layout -- probably saw me struggeling w/ Protel DXP Gives me some time over the weekend to fine-tune the software a bit.
Edit: BTW, here's a picture of the 2nd proto in \"action\" The board will be designed to fit into this case.
Edit: BTW, here's a picture of the 2nd proto in \"action\" The board will be designed to fit into this case.
- Perediablo
- DBB Ace
- Posts: 90
- Joined: Sun Oct 31, 2004 10:49 am
- Location: Fort Worth, TX
- Contact:
It's a server run by friends in germany, should be back soon (monday latest..)
Fine tuned the software -- now you actually can unplug the stick and the device will go off the USB bus. As soon you plug it back in it'll recover. Trying to get a handle on the disco problem of proto Mk I -- was using Mk II all night long w/o problems.. Going to do the harware mod to Mk I tomorrow so it can go back into the computer for further investigation..
Fine tuned the software -- now you actually can unplug the stick and the device will go off the USB bus. As soon you plug it back in it'll recover. Trying to get a handle on the disco problem of proto Mk I -- was using Mk II all night long w/o problems.. Going to do the harware mod to Mk I tomorrow so it can go back into the computer for further investigation..
- Fusion
- DBB Ace
- Posts: 379
- Joined: Sun Sep 07, 2003 2:01 am
- Location: Valdez System, Underverse; 7 Stars, Azeroth
Will the final version gonna have that gamport connector sticking out like that or is gonna be flush w/the outside of the case?Grendel wrote:BTW, here's a
picture of the 2nd proto in "action"
Fus
Small update:
Ever since my first post in this thread I'm using the converter in game, mainly the 1st prototype (since I installed it into this comp). The main problem I had are "disconnects" -- happens when the 3DP suddenly decides to switch back into analog mode and the converter tries in vein to get some data (remember, digital mode means the 3DP uses the button lines as a serial interface). W/ the change in the schematic the converter will recover from this by disconnecting from the USB line, wait 500ms and reboot (starts over the 3DP/USB initialization). In game that means approx. 1.5s w/ no control.. Since my resources are limited I tried various things, some helped, some made it worse. That way I dropped disco's to about 1 per 1hr game time -- not acceptable, so I rewrote the part querying the 3DP to make sure it will not be queried if a transmission is going on (will cause the 3DP sending a long ID packet. Another query while that's happening will switch it into analog mode..) and relaxed some timeout timings.
That seemed to have dropped the disco's to about 1 per 3hr intensive gaming -- so far I think that's acceptable. I'll test a bit further and probably try some more things, esp. using the 2nd prototype (better resistance against electonic noise).
Meanwhile, a friend of mine is working on a board layout. It'll be a 2 layer board w/ the top layer being the ground plane (to armor it against noise, also the layout becomes a lot easier.) He's doing it in his free time so please be patient
Ever since my first post in this thread I'm using the converter in game, mainly the 1st prototype (since I installed it into this comp). The main problem I had are "disconnects" -- happens when the 3DP suddenly decides to switch back into analog mode and the converter tries in vein to get some data (remember, digital mode means the 3DP uses the button lines as a serial interface). W/ the change in the schematic the converter will recover from this by disconnecting from the USB line, wait 500ms and reboot (starts over the 3DP/USB initialization). In game that means approx. 1.5s w/ no control.. Since my resources are limited I tried various things, some helped, some made it worse. That way I dropped disco's to about 1 per 1hr game time -- not acceptable, so I rewrote the part querying the 3DP to make sure it will not be queried if a transmission is going on (will cause the 3DP sending a long ID packet. Another query while that's happening will switch it into analog mode..) and relaxed some timeout timings.
That seemed to have dropped the disco's to about 1 per 3hr intensive gaming -- so far I think that's acceptable. I'll test a bit further and probably try some more things, esp. using the 2nd prototype (better resistance against electonic noise).
Meanwhile, a friend of mine is working on a board layout. It'll be a 2 layer board w/ the top layer being the ground plane (to armor it against noise, also the layout becomes a lot easier.) He's doing it in his free time so please be patient
I think the discos are under control -- no problems the last three days but due to the lack of pilots I haven't tried it very excessively yet.. If it still goes analog it's most likely a quirk w/ the 3D Pro -- evtl. caused by polling it 100-125 times a second (I would be surprised if the XP/2k driver polls it more than 20 times a second..)
No news on the layout yet, but I started looking into parts again. Current plan is to build a 1st series of 13 units (actually 15 -- I need two tho), this should be enought to get at least one unit to everyone who posted interest here. I squeezed the parts cost down by $5 giving me a bit more leeway in board costs.
More soon.
No news on the layout yet, but I started looking into parts again. Current plan is to build a 1st series of 13 units (actually 15 -- I need two tho), this should be enought to get at least one unit to everyone who posted interest here. I squeezed the parts cost down by $5 giving me a bit more leeway in board costs.
More soon.
Why, thanks ! Six units -- that must be all of ROX (you are not planning to resell them I assume ) Ok, so far I got 18 units reserved -- I'll better plan on building 20..
Just to let you know, I have not tested connecting more than one unit to a comp at a time. If anyone is planning to do that I need to know -- evtl. I have to program different device IDs into those.
Yesterday night I played about 1.5 hours in VV and an hour in J9 (must be one of the fastest paced levels out here) w/o any problems Software is now locked. Unfortunately I can't access my ftp space at the moment (QWorst changed our IP..) -- I'll upload the software ASAP so whoever is interested can take a peek.
Edit: Here you go.
Just to let you know, I have not tested connecting more than one unit to a comp at a time. If anyone is planning to do that I need to know -- evtl. I have to program different device IDs into those.
Yesterday night I played about 1.5 hours in VV and an hour in J9 (must be one of the fastest paced levels out here) w/o any problems Software is now locked. Unfortunately I can't access my ftp space at the moment (QWorst changed our IP..) -- I'll upload the software ASAP so whoever is interested can take a peek.
Edit: Here you go.
Too early for ordering I'm still waiting for the layout, as soon that's done it'll be a couple days until I get boards & parts (the mega8 seems to be on backorder ATM too..) I will post more info as soon anything comes up.
Also, even if a MB has the gameport (a lot actually do -- the cable isn't included anymore tho) it's very likely that the XP/2k driver has a hard time to switch the 3DP into digital mode (if at all) due to a timing bug on high speed FSB machines.
Random notes:
It works w/o problems since my last fix. The USB query rate is 10ms, ie. the 3DP is polled 100 times a second (I did see 8ms on a 2k system tho -- even beter, 125 times a sec). Since the data transfer from the 3DP takes up to 1ms, the XP/2k driver would eat 10% absolute CPU power at that rate ! (Because the gameport has to be polled interrupts must be disabled during the data transmission) That's why I think the XP driver does 50Hz max -- still 5% tho. Receiving a USB packet OTOH is done in hardware, so the USB converter actually frees up valuable CPU time Since the data path is really short, the latency of the USB converter vs. gameport should be at least equal. The converter/3DP combo draws less then 100mA, so it's a bus powered device and well w/in the USB specs for such -- should work on any USB port.
Also, even if a MB has the gameport (a lot actually do -- the cable isn't included anymore tho) it's very likely that the XP/2k driver has a hard time to switch the 3DP into digital mode (if at all) due to a timing bug on high speed FSB machines.
Random notes:
It works w/o problems since my last fix. The USB query rate is 10ms, ie. the 3DP is polled 100 times a second (I did see 8ms on a 2k system tho -- even beter, 125 times a sec). Since the data transfer from the 3DP takes up to 1ms, the XP/2k driver would eat 10% absolute CPU power at that rate ! (Because the gameport has to be polled interrupts must be disabled during the data transmission) That's why I think the XP driver does 50Hz max -- still 5% tho. Receiving a USB packet OTOH is done in hardware, so the USB converter actually frees up valuable CPU time Since the data path is really short, the latency of the USB converter vs. gameport should be at least equal. The converter/3DP combo draws less then 100mA, so it's a bus powered device and well w/in the USB specs for such -- should work on any USB port.
- CDN_Merlin
- DBB_Master
- Posts: 9781
- Joined: Thu Nov 05, 1998 12:01 pm
- Location: Capital Of Canada
That's not true, at least not for me. I added my 3DPro as a Microsoft Sidewinder device on my family's PC, XP auto-detected it, and it's worked perfectly ever since; all of the base buttons work, and I can press multiple buttons without a problem. If my own PC had had a gameport on its sound card, I wouldn't have been overly excited about Grendel's project, but as it is, I can't wait for it to be completed. While I love my Cyborg Evo for playing FreeSpace, it just can't beat the 3DPro for Descent.CDN_Merlin wrote:3d pro needs to be added manually in XP and then you don't get full function. The base buttons don't work and you can't press more than 1 button a a time.
Since DigiKey is out of stock for the Mega8 I poked around the net and found another source (Hobby Engineering) -- $3.19 instead of $3.66 Went ahead and ordered 25. I've an order @ DigiKey for the rest of the parts ready to go, waiting for the layout.. (was promised to have it next week )
The 3D Pro does work with that adapter (I tried it myself), but unfortunately, it only works in analog mode, which means that the base buttons/8-way hat/multiple button presses may not work depending on which analog mode you're using. The only way to get the 3D Pro fully operational on a USB port is to do something like Grendel is doing.
Let's see.. Trying to make this short.. Here's a good writeup on how the PC gameport works to get an idea what "analog mode" means.
Now, a fully featured gameport is limited to read 4 axis and 4 buttons (in a really awkward manner). To get the hat switch in there as well, CH invented a method to use the 4 button bits as a binary coded number (0-16) and assigned values to different situations -- that doesn't allow for multiple buttons pressed at the same time nor 8-way hat positions tho. Thrustmaster went a different way, they map the hat to fixed values on the 4th axis -- unfortunately only 4-way too.
M$ came up w/ a clever way of getting a boatload of info out of the stick -- they figured out that you can detect the discharge of the monostable multivibrator and so send a bit of info to the stick. This is used to switch it into "digital mode" where it uses the 4 button lines as a synchronous serial port to transfer 64 bits of data in about 700us. The strings attached: the stick needs to be switched into this mode (quite elaborate process..), the data needs to be recieved and put together plus certain timing things need to be heeded. Off course M$ isn't documenting that anywhere but their patent on the whole thing (which is sketchy at best).. It's very propriatary, hence noone ever built this converter nor a driver for a different OS until Vojtech Pavlik put a lot of work into it to reverse engineer the protocol & data format for the linux driver.
Quick update: I fixed the last problem that was bugging me -- the device name in the control panel. The 3DP on USB now lists as "Microsoft SideWinder 3D Pro (USB)" as it should
Screeny
For those who wonder -- I took that shot on my comp at work, it has a Creative Soundblaster installed. And yes, I'm off work now
No layout yet, it's comming together tho. Got 15 of the 25 mega8's I ordered -- 10 are on backorder. W/ my "stash" I now have 19 ready to go into boards..
Screeny
For those who wonder -- I took that shot on my comp at work, it has a Creative Soundblaster installed. And yes, I'm off work now
No layout yet, it's comming together tho. Got 15 of the 25 mega8's I ordered -- 10 are on backorder. W/ my "stash" I now have 19 ready to go into boards..
Well, there's a converter that probably could be modified to work w/ the 3DP -- if there would be access to its firmware (which I doubt ). It's the Precision Pro "dongle". Problem is that M$ stripped down the "Digital Overdrive" (offical M$ term for the protocol) -- analog mode went out the window and the data structure changed (to the worse BTW). Around '96 Mitsumi built most of the M$ hardware, my guess is that they made the 3DP and PP as well. I don't think Mitsumi still got the tools for building that thing tho -- even if they do, I doubt there's a market for it.. Oh, and it would be more expensive then 30c, that's for sure
What is your price on that, Grendel ?
I looked at Farnell for all components, and came to 15 EUR for each device, PCB board not included. Depending on the actual number of orders (10 to 20), I came to a total price of 28 to 35 EUR (incl. shipping within europe).
If someone from europe is interested, look at
http://www.descentforum.de/forum/viewtopic.php?t=2898
I looked at Farnell for all components, and came to 15 EUR for each device, PCB board not included. Depending on the actual number of orders (10 to 20), I came to a total price of 28 to 35 EUR (incl. shipping within europe).
If someone from europe is interested, look at
http://www.descentforum.de/forum/viewtopic.php?t=2898
Sounds about right. Last time I calculated the component cost it came up w/ $13.50. I'm hoping to get the PCB done for $15.Munk wrote:I looked at Farnell for all components, and came to 15 EUR for each device, PCB board not included. Depending on the actual number of orders (10 to 20), I came to a total price of 28 to 35 EUR (incl. shipping within europe).
I don't know if you've thought about this yet, but how would you want to be paid for the adapter? I'm only asking since neither I nor my family has a PayPal account, and I'd have to talk to my parents about setting one up if that was your preferred mode of payment. It shouldn't be too much trouble, but I was curious if you had given the matter any thought, so that if a PayPal account is necessary, I could set one up before I leave for school.
Paypal would be most easy. As emergency alternative a check would work, but it would be a hassle for me (have to physically deliver it to the bank, wait til it clears..) -- slower too.
Munk sent me the files he created for his layout (thanks again man ! ) so I switched programs (again..) -- hopefully I'll get that finished over the weekend and order boards next week. The missing 10 mega8's are on their way, should be here on Fri.
I'm probably going to commit the DigiKey order for the rest of the parts tomorrow or Fri so I'll have the stuff at hand when the boards arrive.
Munk sent me the files he created for his layout (thanks again man ! ) so I switched programs (again..) -- hopefully I'll get that finished over the weekend and order boards next week. The missing 10 mega8's are on their way, should be here on Fri.
I'm probably going to commit the DigiKey order for the rest of the parts tomorrow or Fri so I'll have the stuff at hand when the boards arrive.
While the layout (finally ) takes shape, I'm thinking of extending the software a bit. SuperSheep changed the response curve of his home made 2.4 from linear to parabolic, ie. around the center the stick is less sensitive (allows you to aim better). I haven't written code yet but I could do the same thing w/in the coverter, even make it switchable (on/off using the mode switch on the 3DP). I may give it a try and check how that works w/ the 3DP.
- Sergeant Thorne
- DBB Material Defender
- Posts: 4641
- Joined: Sun Nov 25, 2001 3:01 am
- Location: Indiana, U.S.A.