FAQ FAQ   Search Search   Memberlist Memberlist   Usergroups Usergroups       Register Register   Register  
  Profile Profile     Log in to check your private messages Log in to check your private messages     DBB Supporters Benefactors  
  Log in Log in  
Post new topic   Reply to topic
DescentBB Forum Index > Tech Forum > USB Converter for MS Sidewinder 3DPro, PP, and FFP

Goto page 1, 2, 3  Next
View next topic | View previous topic
Author Message
Grendel
DBB_Admiral
DBB_Admiral
Posted Sun Jun 28, 2009 7:12 pm  View user's profile    Reply with quote  Send private message

Time to clean up the 3DP-Vert threads in this section a bit:

The original thread can be found here: M$ Sidewinder 3D Pro on USB, the follow-up thread here: M$ Sidewinder 3D Pro on USB - 2?, a thread about replacing the POV switch w/ a tiny analog joystick here: SideWinder 3D Pro Borgified.

Latest developments:

Note: The Teensy board went through a hardware revision. Please read my post from Oct 23, 2009 for the latest version of the r3 proto ! (post #26 in this thread)

I set up a Google code project for the 3DP-Vert, everything you need is hosted there.

Note on force feedback support:

Grendel wrote:
Just to clear this -- the converter in the current state does not support force feedback effects for the FFP and probably never will. Here's why:

Most gameports back in the day were located on a sound card sharing some pins with the cards MIDI interface. M$ added pin 12 to the FFP (MIDI TxD) and uses MIDI channel 6 to issue FF commands. It's too much work trying to reverse engineer the commands, add a MIDI interface to the 3DP-Vert and modify its USB code to have a fully featured FF device.

_________________________________________________________________________________

A week ago I stumbled over the Teensy development board (silly name, I agree..), got one, and poked at it a bit. Now I have a 3DP-Vert rev3 design that I'm planning to use in a possible 2nd run of the converter Smile

A side effect is that this prototype version is probably the most easy to copy, unfortunately also the most expensive..

What you need:

1 Teensy board, $22 (+s&h)
1 Breadboard w/ wires, $13.44 (got mine at RadioShack tho)
1 DB15F for wire wrap, $5.56
2 2.2kOhm resistors, $0.18
2 2.2nF capacitors, $0.78

The program for the microcontroller -- I'm still working on that, as soon it's finished I'll publish it. Meanwhile, PM me for a copy if you need one.

I don't have a schematic for this one yet, so you'll have to use the following pictures as a guide to build that thing:



Then connect it to your PC (using a USB A-miniB cable, everyone has them right ?), hit the reset button on the board and use the Teensy loader to program the 3DP-Vert image. That's it. Smile

I'll update this thread as more info becomes available.
 
Lothar
DBB Ghost Admin
<font color=#000000>DBB Ghost Admin</font>
Posted Sun Jun 28, 2009 8:28 pm  View user's profile    Reply with quote  Send private message

Perfect timing. My USB stick just quit on me, and I have eight (!) 3d pros in storage.

Any chance I can buy one from you preassembled?
 
Aus-RED-5
DBB Admiral
DBB Admiral
Posted Sun Jun 28, 2009 9:36 pm  View user's profile    Reply with quote  Send private message

hehe - I think this is what the thread is about.

Making your own as it seems Grendel is trying to avoid building them for us. Razz
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Sun Jun 28, 2009 10:31 pm  View user's profile    Reply with quote  Send private message

Heh, there's some truth in it -- for a non-EE getting a PCB made is a non-trivial task. It's not really cheap either, eg. the parts for 100 boards alone are about $600. Plus whatever the boards will be (loaded). The least I can do is to make it easier to build your own while I'm struggling to get something going Wink
 
Foil
DBB Fleet Admiral
DBB Fleet Admiral
Posted Mon Jun 29, 2009 6:50 am  View user's profile    Reply with quote  Send private message

This is a few $ more than the other assembly you provided specs for... but it looks considerably simpler, so I'll probably go for this one when I get the chance.

Thank you, Gren!! Very Happy
 
Lothar
DBB Ghost Admin
<font color=#000000>DBB Ghost Admin</font>
Posted Mon Jun 29, 2009 9:27 pm  View user's profile    Reply with quote  Send private message

All right, I've got it figured out. Thanks everyone!
 
fliptw
DBB DemiGod
<font color=#99FF99>DBB DemiGod</font>
Posted Tue Jun 30, 2009 5:39 pm  View user's profile    Reply with quote  Send private message

super nifty.
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Thu Jul 02, 2009 11:35 am  View user's profile    Reply with quote  Send private message

Software is pretty much ready to go, I'm currently testing it.

The USB module Atmel uses in their chips (the Teensy board has an at90usb162 stuck to it) is USB 2.0 only, it will not work on an old USB 1.1 port (they should be pretty much extinct anyway..)

USB 2.0 also means faster data throughput, so I decreased the polling rate to 6ms (167Hz) from the previous 10ms (100Hz. Actually Windows violates the specs and polls w/ 8ms, 125Hz). Not sure if the stick will handle 5ms (200Hz) or 4ms (250Hz), something to look into I guess Smile
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Thu Jul 02, 2009 7:34 pm  View user's profile    Reply with quote  Send private message

@#$%, forgot about Windows inabilities. Windoze polls HID devices at a fixed frequency (125Hz, 8ms) rather than using the number provided by the device.. *&%$#@! POS OS.
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Sat Jul 04, 2009 2:19 am  View user's profile    Reply with quote  Send private message

Figured that one out -- had to implement the HID idle management, Windoze then queries in 1ms intervals. The stick seems to keep up fine w/ a 4ms interval, so now it's polled at 250Hz. Probably the only joystick on the market read out at twice the "regular" speed Smile
 
joker23
DBB Cadet
DBB Cadet
Posted Wed Jul 15, 2009 7:14 am  View user's profile    Reply with quote  Send private message

Well shoot. The "USB 2.0 only" might keep me from using this newer version. I have two computers in the basement, one for me and one for my son. One of them is an older one with the old USB. I also think my laptop has the old USB...
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Wed Jul 15, 2009 2:36 pm  View user's profile    Reply with quote  Send private message

It should work as long it's USB 2.0 Full Speed, USB Low Speed is what's not supported. Unless it's a _really_ old computer (like a 386) it should work. A simple test is to plug in a USB 2.0 thumb drive, if it works (and you get that annoying "this device could work faster" message in XP..) you are set.
 
joker23
DBB Cadet
DBB Cadet
Posted Thu Jul 16, 2009 6:49 pm  View user's profile    Reply with quote  Send private message

Cool!

It should work then, because I do get the annoying message...
 
joker23
DBB Cadet
DBB Cadet
Posted Wed Jul 22, 2009 1:34 pm  View user's profile    Reply with quote  Send private message

Grendel,

Do you have a good way to mount a solderless breadboard like that into a project box, or would the final version be soldered?

It appears that Radio Shack no longer carries the box and PC board used in the old 3DP-Vert.

I was looking at this board and this box to use instead.

I'm probably gonna have tons of questions (if you don't mind). Would they be better listed here or by PM or email?

Thanks!
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Wed Jul 22, 2009 11:50 pm  View user's profile    Reply with quote  Send private message

joker23 wrote:
Do you have a good way to mount a solderless breadboard like that into a project box, or would the final version be soldered?

The final version would be a custom made PCB, already soldered. The solderless breadboard version is a prototype I used for porting to software to the AT90USB module, it just happens to be easy to copy.

joker23 wrote:
It appears that Radio Shack no longer carries the box and PC board used in the old 3DP-Vert.

Yes, apparently the dropped it. Unfortunately I may add, that was a very handy set.

joker23 wrote:
I was looking at this board and this box to use instead.

I looked at that board before, it will be too small.

joker23 wrote:
I'm probably gonna have tons of questions (if you don't mind). Would they be better listed here or by PM or email?

Probably email would be best if it's really a lot of questions.. Smile
 
joker23
DBB Cadet
DBB Cadet
Posted Fri Jul 24, 2009 1:15 pm  View user's profile    Reply with quote  Send private message

Thanks!

Things got really busy at work all of a sudden and I wasn't able to see your response until today...
 
Mick
DBB Cadet
DBB Cadet
Posted Tue Aug 11, 2009 11:09 pm  View user's profile    Reply with quote  Send private message

Greetings from Denmark from a new DescentBB member.

I still have at least 2 old 3D PRO's laying around, would buy 1-2 finished converter boards immediately if they were available (and if I could get them sent to Denmark.... Rolling Eyes)!

Anyone up to the task Smile ?
 
mors
DBB Cadet
DBB Cadet
Posted Thu Aug 27, 2009 6:31 am  View user's profile    Reply with quote  Send private message

Hi!

Last week I started playing around with my old 3D PRO and a PIC micro, not knowing that there actually was quite some activity around the topic on the web. I found this forum and this thread while searching for more info concerning the Sidewinder 3D Pro interface.

@Grendel: Seems that in the first converter you have proposed you are using the conventional 555-Timer method with pulse widths representing the axis position. On that newer (2009) prototype I cannot see any 555/556/558 IC, and I assume you are reading the digital output on the button pins. Did you reverse engineer a little to find out how the interface works or do you have a good source of information that you could share?
Also, when I read out the emulated analog output from the stick, it seems to be very jittery. I assumed a software bug, but I checked the code a million times, and it all seems ok. How stable was the output for you?

Edit: taking a deeper look i realised you have been using the digital out from the begining. have you ever tried the emulated analog?
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Thu Aug 27, 2009 11:03 am  View user's profile    Reply with quote  Send private message

I never bothered w/ the analog emulation since both modes reduce the functionality of the stick considerably (CH: no simultanous button actuations, TM: no slider nor base buttons available) and require calibration. The analog part of the interface is needed to switch the 3DP into digital mode and to trigger it to send the data -- the stick detects the beginning of the RC charge when the 555 is triggered. This can be done by connecting the RC element to an I/O pin, so I got rid of the timer Smile

I used two references for development: Vojtech Pavlik's 3DP Linux driver (Sidewinder.c) and Microsofts Overdrive patent, Patent #5628686 - Apperatus and Method for Bidirectional Data Communication in a Gameport. You definately want to check the patent out, as for code reference I would suggest to take a look at the 3DP-Vert source code (the current r3 code is here).

The digital resolution of the X and Y axis is quite high (10bit each), creating jitter at rest that translates to the mid point of he R chain MS used for the analog emulation.
 
RubberD
DBB Cadet
DBB Cadet
Posted Sun Sep 13, 2009 11:46 am  View user's profile    Reply with quote  Send private message

@Grendel:

In case you are collecting volunteers to buy pre-assembled converters from you I am interested for up to 3 pcs. Razz

I guess the only way to save my 3d pros into the next generations of Windows.

RubberD
An old-timer from Germany appreciating your work.

---
D1 - D2 - D3
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Mon Sep 28, 2009 1:35 pm  View user's profile    Reply with quote  Send private message

Small update: the Teensy board went through a hardware revision and now hosts the chip I wanted to use in the 1st place (Mega32U4) Smile I just ordered one so I can update my prototype and port the software. I'll post updated pictures/code once I'm done.
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Fri Oct 02, 2009 1:56 pm  View user's profile    Reply with quote  Send private message

Here is the updated 3DP-Vert r3 prototype design based on the new Teensy board.

What you need:

1 Teensy board, $21 (+s&h)
1 Breadboard w/ wires, $13.44 (got mine at RadioShack tho)
1 DB15F for wire wrap, $5.56
2 2.2kOhm resistors, $0.18
2 2.2nF capacitors, $0.78

The program image and the Teensy loader.

I still don't have a schematic for r3 yet, so you'll have to use the following pictures as a guide to build that thing:



The resistors can be 1kohm if you can't source the 2.2kohm. The two capacitors can almost be any value less or equal to 2.2nF, I've successfully used as low as 470pF. Since I didn't have a fancy DB15F wire-wrap connector I used a regular one w/ solder cups and soldered the pins that are being used to it:



Once you built the thing connect it to your PC with an USB A-miniB cable, hit the button on the board, and use the Teensy loader to program the 3DPro.hex image. That's it. Smile
 
Carsinigin
DBB Cadet
DBB Cadet
Posted Fri Oct 16, 2009 10:45 am  View user's profile    Reply with quote  Send private message

Grendel - Thanks for bringing my two favorite joysticks back to life, a 3DP and FFP.

I finally got my teensy (UPS ground is slow) and was able to follow your instructions and I had this built and running in less then an hour.



I ended up using a DB15 breadboard adapter instead of the wirewrap DB15F. It takes up a lot of space on the breadboard but it was easier to wire up.

One issue that I ran into is that on my FFP the z-axis (twist) has a lot of jitter when the joystick is at rest. I think it may be the joystick since my 3DP seems fine.
 
Grendel
DBB_Admiral
DBB_Admiral
Posted Fri Oct 16, 2009 6:52 pm  View user's profile    Reply with quote  Send private message

Very nice ! I like the DB15F breadboard adapter, makes it a lot more secure plugging the stick. Great find.

As for the jitter in the FFP, it's most likely rooted in the stick. The one I use for testing works fine w/ the firmware. You could try to open it and check for dust.
 
wolfmanjm
DBB Cadet
DBB Cadet
Posted Sat Oct 17, 2009 8:28 pm  View user's profile    Reply with quote  Send private message

Very nice project, I have a teensy on order, however my plan is to use this to communicate with a robot control program (a rovio) running on Linux. So it would be plugged into a linux system, and I would probably want to use a different USB protocol (probably straight serial). So is the source code for this project available? Or at least the part of the code that talks to the joystick?

UPDATE: I built it as specified, and it seems to work with Linux as is, so no need to mod the code, great work

Thanks
 
moonfly
DBB Cadet
DBB Cadet
Posted Fri Oct 23, 2009 3:22 pm  View user's profile    Reply with quote  Send private message

I just got one of these running myself. Works great! Woohoo, no more "not connected" in the game controller window Very Happy

 
Grendel
DBB_Admiral
DBB_Admiral
Posted Fri Oct 23, 2009 7:13 pm  View user's profile    Reply with quote  Send private message

Very cool ! I got myself one of those DB15F adapters, so here is the most-easy-to-copy-yet version, it's even almost kid & pet save Wink

What you will need:

1 Teensy board, $21 (PJRC)
1 PBC15F, $8 (Winford)
1 Breadboard, $8.99 (RadioShack)
1 Wire Kit, $5.99 (RadioShack)
2 2.2kOhm resistors, $.99 (5) (RadioShack)
2 .001uF capacitors, $1.49 (RadioShack)

The program image and the Teensy loader.

Use the following picture as a guide to build that thing, note the wires in the upper left corner (circled in the pic). Make sure it looks the same to prevent the pins from the PBC15F adapter digging into the wires. Also note the corner of the PBC15F adapter close to the Teensy board, I ground it down a bit using some sandpaper.



Once you built the 3DP-Vert, connect it to your PC with an USB A-miniB cable, push the button on the board and use the Teensy loader to program the 3DPro.hex image. That's it. Smile
 
wolfmanjm
DBB Cadet
DBB Cadet
Posted Sat Oct 24, 2009 3:38 pm  View user's profile    Reply with quote  Send private message

I used a Schmartboard... http://www.schmartboard.com/index.asp?page=products_th&id=24. although the dsub needed to be coerced into it, they do have a special board for dsubs..
http://www.schmartboard.com/index.asp?page=products_io&id=16

The board was about $5.

I'm making a little acrylic case for it using a $1 scrap of clear acrylic from Tap Plastics.



 
Drakoz
DBB Captain
DBB Captain
Posted Wed Oct 28, 2009 10:51 pm  View user's profile    Reply with quote  Send private message

I bought parts to build a 3DP-Vert rev 2 months ago and finally built one a couple weekends ago. Ugh, it took all day - mostly due to the mechanical work of cutting the perf board and the plastic case because Radio Shack doesn't have that nice board designed for the case anymore. But it works great. Grendel, your software is fantastic.



To program it, I just soldered some resistors and wires directly to a DB25 parallel port connector following the "Programmer Hardware" example here. I used test clips to connect it to my board, and programmed it using Ponyprog. As you can see below, it's messy, but it worked fine.



Anyway, by the time I was done, I thought it would have been just as easy to design a real PCB and have it fabricated (that's what I do for a living). But, now we have 3DP-Vert rev 3. So, I've done a schematic of the rev 3, and instead of mocking this one up, I'm just going to design a PCB. The only question is, to use a Teensy board, or do a design completely from scratch. I've talked to Grendel about this off line, and we'll see where it goes. Using a Teensy board, anyone can assemble it, and we just have to make PCB's. But a custom design allows Grendel to do some other custom stuff. Unfortunately, though, we have to pay someone else to assemble them because it'll be surface mount parts. Turns out cost is about the same either way for a run of 20-30 boards. I'm not saying this to promise anything. Talk is cheap. But, I need at least 2 more 3DP-Vert's (see below), and I'm not going to build them manually this time. I'm going to get real PCB's fabricated instead.

Why do I need 2 more 3DP-Verts? I was playing Descent and both my kids see it. "Hey, that's the game you used to play all the time." Next thing I know, I've lost my joystick/3DP-Vert because they want to play Descent now. It's about time! They never seemed to care before, but they took to the Pyro like old pros. So, I need to build two more 3DP-Vert's. Ha!

Cya,
Mike
 
wolfmanjm
DBB Cadet
DBB Cadet
Posted Wed Oct 28, 2009 11:11 pm  View user's profile    Reply with quote  Send private message

FWIW I did a schematic and PCB using ExpressPCB, the PCB has two per board, ExpressPCB charges ~$50 for 3 boards, so you get 6 for $50.

The schematic and pcb editor is free from http://www.expresspcb.com/ExpressPCBHtm/Download.htm and the two files I used are here...

schematic -
http://blog.wolfman.com/files/3dpvert.sch

PCB -
http://blog.wolfman.com/files/3dvert.pcb

If you want to use an off-the-shelf Teensy, feel free to use them.
 
Goto page 1, 2, 3  Next

All times are GMT - 8 Hours
View next topic | View previous topic
Post new topic   Reply to topic
Jump to:  
DescentBB Forum Index > Tech Forum > USB Converter for MS Sidewinder 3DPro, PP, and FFP

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


 


 

Descent'rs have piloted these pages
 
The layout and contents contained within this site are © DescentBB.net 1997-2006.
Descent, Descent II are © Parallax Software Corporation.
Descent III is Outrage Entertainment.
Descent is a Trademark of Interplay Productions.

Core Decision is © and a Trademark of HighOctane Software.


Powered by phpBB © 2001, 2005 phpBB Group