Page 5 of 7

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Mon Sep 24, 2012 10:30 pm
by superloadedcat
DUDE!!!!

I have never been so stoked to stumble upon a post as this. I FREEKING LOVE my Sidewinder 3D Pro and have been soooooo sad since it has been in a box in the closet for the past 6 years.

I AM SO HAPPY that i can finally breath some life into what I consider the finest all around joystick ever made. Sure its sticky and dirty, and needs a good cleaning but building this box will be one of the most joyous projects I have ever endeavored. This joystick has brought me SO MUCH joy playing Descent and Battlefield 1942 desert combat final mod you cannot imaging. Even the THOUGHT that some day I may be able to use this joystick again brings the biggest smile to my face! I would so rather clean up my old one or buy a used Sidewinder on ebay than go buy some new crappy stick. I've tried the others and I just cant use them.

THANK YOU THANK YOU THANK you for maintaining these posts/pictures and links to the source.

you are the man!

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Wed Oct 10, 2012 1:29 am
by superloadedcat
here it is completed. I put it in an old USB hub case.

It works perfectly! (the first time too!)


THANKS MAN!

Image

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Nov 24, 2012 6:02 pm
by UnknownSolderer
Hi everyone,

I have not been so lucky. Or, which is a lot likelier, I have not been so apt. When I plug the USB cable into the computer, the teensy (2.0) LED starts flashing (quickly, as in the "blink fast" test of the board), but if I then connect to the joystick, no popup.

How could I dieagnose the problem?

Thanks

US

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Nov 24, 2012 6:07 pm
by UnknownSolderer
Gentlemen,

I have not been so lucky; or should I say, not so apt? Yes, i probably should. Anyway, the teensy 2.0 flashes quickly upon connection to a USB port (on a 4way hub, separate power supply), but no popup, joystick not recognized, no trace of additional hardware in system. Any tips how I can find out what went wrong? I'm using Windows Vista 64 bit.

Thanks

US

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sun Nov 25, 2012 2:03 pm
by UnknownSolderer
Grendel, tahnks very much for providing the world with this wonderful thing. Fantastic job.

Unfortunately, I have not been so lucky, or, I should say, apt, as those above. When I plug the USB cable into the computer (after uploading 3DPro32u4.hex to my Teensy 2.0; the program shows as loaded, 11% storage use), the LED on the Teensy starts blinking fast (faster than with the blink_slow program that was on the Teensy just beforehand), but the joystick is not recognized. I know I'm no expert at soldering (or at electronics in general for that matter), so there could be a bad connection. Any way i can diagnose what may be going wrong? Reading out signals on the DB15? How would I go about doing that, and what signal would be expected? Or is there a way to read out signals from the system directly?
Thanks

P.S. I apologize for the multiple posts. Somehow I missed the "your message will be posted after review". I cannot delete the spurious entries above. Can anyone else?

Works Like a Champ!

Posted: Sun Dec 09, 2012 12:45 am
by ConcordSix
Grendel, I cannot thank you enough for posting your incredibly easy to follow breadboard photos, complete with links to exactly what I needed, thereby leaving zero guesswork. I cannot believe that, after all these years, I can finally play Descent once more with the greatest joystick ever created!

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sun Dec 09, 2012 12:52 am
by ConcordSix
UnknownSolderer wrote:I have not been so lucky. Or, which is a lot likelier, I have not been so apt. When I plug the USB cable into the computer, the teensy (2.0) LED starts flashing (quickly, as in the "blink fast" test of the board), but if I then connect to the joystick, no popup.
You might be having the same problem I did at first. What I *thought* I needed to do was just press the button on the Teensy and the program would autoload. This assumption was incorrect. What you need to do is:

Open the Teensy program.
Plug in the Teensy via USB.
Press the button on the Teensy.
File > Open HEX File
Choose the appropriate file Grendel wrote.
Operations > Program
It will say "Download Complete" on the screen.
Operations > Reboot

That's how I got mine to work. Now, I believe you can select "Automatic Mode" to have the program download automatically when the button is pressed, but I didn't try that. I simply followed the longer instructions above. However, I am pretty sure you are experiencing the same problem I did. Hope this helps!

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Feb 09, 2013 5:39 pm
by jproch
Hello Grendel, first off, THANK YOU man for awesome work!!!
Grendel wrote:The 3DP-Vert source code is available here.
It seems that google project holds R1 and R2 versions of src code only. Would it also be possible to get source of R3 version (Teensy2 and Teensy 2++) ?

Thanks,
Ian

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Mon Feb 11, 2013 5:14 pm
by Grendel
It's somewhat hidden, here's a direct link to it.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Wed Apr 24, 2013 2:24 pm
by kile
Hi!

I have been using Grendel's converter for about a year in various several incarnations. I like playing with electronics and I also like soldering so I decided to make a dedicated circuit with everything needed for the converter. I designed a custom PCB for the converter based on the Teensy 1.0 design and I built a prototype. It worked fine. I was happy. :)

I also added a feature in the source code that acted like a sort of a cheat for playing Oolite http://oolite.aegidian.org/bb/viewtopic.php?f=2&t=13637

Then I had a batch of 10 of these blank PCBs made by a Chinese prototyping service.
IMG_0810s.jpg
PCB top side
IMG_0810s.jpg (221.32 KiB) Viewed 14998 times
IMG_0813s.jpg
All the fab PCBs and my prototype
IMG_0813s.jpg (195.86 KiB) Viewed 14998 times
I felt that the microcontroller has too many unused pins so I added a few more things to the PCB. Two extra LEDs, a jumper for activating the Oolite cheat, and a port for a 2.4GHz wireless module (nRF24L01+). This would potentially allow for the joystick to become wireless, but it would require a new circuit connected to the joystick with another 2.4GHz module and a new version of the firmware. I haven't done this yet, thought, I need some free time and motivation...

The board works with the rev 2 version of Grendel's firmware. The extra things I added shouldn't interfere with it at all.

I still have a few PCBs that I don't need. If anyone needs a fully dedicated converter - let me know, I'll gladly build one. Or two. :)

I have attached the schematics in Eagle CAD format.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Tue Jun 04, 2013 12:18 pm
by anzial
Glad to see this is still on-going, just dug up my old 3d pro which I used back in the day to play Descent 1/2 - I still have the CDs lol, and one box is floating somewhere in my old stuff box :) I'd love to use the 3d pro again with modern games and rather than buying the new flimsy joysticks, I'd stick to the old and true one :D I've just started searching for info and this forum seems to contain quite a bit of research done into this thing so I've registered to say thanks for the job well done! :mrgreen:

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Mon Jun 10, 2013 11:04 pm
by Fudda
Are these converters available for purchase, & if so where & how much - I have two Microsoft joysticks - Sidewinder 3D pro plus & a sidewinder 3D pro that I would like to have operational - 1 for my son & the other for my father so he can play FSX.

Cheers for any info.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Tue Jul 23, 2013 9:43 am
by thewarriorhunter
i wanted to pop in and say a huge thanks to grendel for figuring this out! my father and i recently went on a quest to get descent running on our new machines to relive all of our LAN parties from the 90's. i built by breadboards a couple days ago, the serial port adapters came in yesterday and the teensy board should arrive today.

again, many thanks!

and a note to those who are asking to buy these instead of build them, i have zero electronic experience in terms of boards and soldering. the bread boards are like playing with legos. seriously, if i can do it anyone can do it.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Wed Aug 21, 2013 3:19 am
by LION
thewarriorhunter wrote: and a note to those who are asking to buy these instead of build them, i have zero electronic experience in terms of boards and soldering. the bread boards are like playing with legos. seriously, if i can do it anyone can do it.
Anyway there should me a easier way.
Is this joywarrior chips of any help? Is there a project involving this AND make it all easier?
I still want to revive my SW 3D Pro.

LION

PS: Greetings to all descent descent warrior 8)

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Sep 21, 2013 10:46 am
by gonz
Dear Grendel, first thank you for the great gift of your knowledge to build these adapters. I built the Mega8-Version and it works perfectly from the first moment.

Now I have a Mega32U4. I would like to use it to read all axes and buttons. But instead of connecting via USB HID, a serial data stream should be sent including all axes positions and button states. The aim is to control an RC-Car I have since childhood. The microcontroller on the RC-Car is working fine and awaits a serial data stream to tell it how to drive.

I plan to receive signals from the RC-Car to display on an OLED later. If my code is fast enough, I would send and receive serial commands and USB HID commands simultaneously, while displaying received serial commands on an OLED display. If not, the program distinguishes:
- If USB is connected as HID, work only as HID device (saves processing time by omitting serial data stream processing)
- If USB is not connected as HID, work as Remote Control only on serial interface
This is to be done later. At first, I had a quick look over the Source Code http://code.google.com/p/sw3dprousb/source/browse/trunk to find an array...etc where axis positions are saved. I could not find one at my quick look.

I am asking for help to
1. Change Connections for Button4 (PD2/RX) and Button3 (PD3/TX) to PD4 and PD7 to have RX and TX pins free for UART use.
E.g. when changing PD2 to PD4 in 3DPro.h (and leaving the wiring as default)
#define BUT3 PD4 //Default: PD2, new: PD4
the joystick works as normal. So I assume changes need to made somewhere else. Where do I change the pins? (maybe 3DProasm.S?).

2. find the Axis and Button state data to send them via UART. Which variables are used to store axis and button state data?

If someone has made modifications that read out the Sidewinder 3D Pro and send the axis-positions and button states via UART, I would be happy for any hints :)

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sun Sep 22, 2013 3:14 pm
by Grendel
Hi there. Email sent. :)

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Thu Sep 26, 2013 2:27 am
by gonz
Grendel wrote:Hi there. Email sent. :)
Thank you Grendel for your excellent and quick support! Thanks to you and your preceding work, I built a quick-and-dirty prototype for testing RC via Sidewinder 3D Pro.
The USART passes the X-axis data to a RC-Transmitter. This proof-of-concept works successfully.

My OLED Display needs TWI to be filled with data. Since PD0 (INT0) is blocked for the Sidewinder, I cannot use SCL for TWI.

The outlook offers many options: Inside the case of the 3D Pro enough space is given to fit an Atmega32U4, RC-tranceiver, OLED-Display, 18650 li-ion battery, DC/DC-converter and charging circuit for the li-ion battery. So the whole 3D Pro could work as a stand-alone radio transceiver.
Maybe the prototype will not be replaced by an advanced version, if I spend too much time playing instead of coding (which would be no surprise) ;)

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Thu Sep 26, 2013 11:30 am
by Grendel
Yea, the code needs one of the external interrupts (INT0-3) to read the stick. Unfortunately all of these pins share functionality with either the USART (PD3/PD2) or the TWI (PD1/PD0), you can use one but not both at the same time.

Hm, skimming over the data sheet -- there seems to be another one, INT6 (PE6). Will be some work, but it's possible to use that one instead of INT0 :)

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Oct 12, 2013 11:00 am
by Tengato
Hi, I just assembled this device and it works great on Windows 7, but on Windows 8, the slider control doesn't work. Using the Windows game controllers properties panel to test control functions, the slider input just stays at the same value, even after doing a calibration. Can anyone else confirm this? Hopefully someone familiar with the Teensy program might know of a fix.

Thanks!

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Oct 12, 2013 11:27 pm
by Grendel
Try this (note step 5 to open the dialog as administrator.) I have a W8 system around, I'll take a look.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sun Oct 13, 2013 12:49 pm
by Grendel
Tengato wrote:Hi, I just assembled this device and it works great on Windows 7, but on Windows 8, the slider control doesn't work. Using the Windows game controllers properties panel to test control functions, the slider input just stays at the same value, even after doing a calibration. Can anyone else confirm this?
Yep, tried it, same effect. Looks like a bug in the W8 to me. I'll see if I can change der control to something different (throttle), maybe that would fix it.

Edit: not that easy :( The slider is the only throttle like control w/in the generic desktop usages. For changing it to a throttle I need to declare a simulation device 1st. I'm still looking into it, but don't get your hopes up. I probably will wait and see if W8.1 fixes it as-is. OTOH I always wanted to define a "Magic Carpet Simulation Device"... :mrgreen:

Edit2: hm, could change it to Z. Let me try that.

Edit3: Same effect when changing the control from Slider to Z Axis, ie. it's definitely a bug in W8 somewhere. Also the effect is the same for a 3D Pro or Precision Pro despite their different sizes of reports. For now I'll wait and see if W8.1 fixes it.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Mon Oct 14, 2013 11:22 am
by akula65
I noticed that neither Grendel nor Tengato mentioned whether or not they were testing using USB 2.0 or USB 3.0 ports under Win8. Although I haven't experienced it myself, I have heard others indicate that they have had assorted issues with USB 3.0 ports under Win8, particularly when using Microsoft's driver. You might want to re-conduct your tests and take note of exactly which kind of USB port you are using and see if the problem is restricted to USB 3.0 ports or common to both types.

If the issue is specifically a USB 3.0 problem, then you might check to see whose driver you using and then try an alternative. Here is an example of a USB 3.0 problem that was solved by switching from Microsoft's driver to an Intel driver:

http://forum.xda-developers.com/showthr ... ?t=2256359

It may also be helpful if others who have built Grendel's converter and have access to a Win8 machine can also test and report their results, again taking care to note whether the ports they are testing are USB 2.0 or USB 3.0.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Mon Oct 14, 2013 12:13 pm
by Grendel
I believe I used a 2.0 port but I'll double-check this evening (and post if I was wrong.) Shouldn't really matter since it's a 2.0 device and uses the 2.0 portion of a 3.0 port. The problem is not the hardware (else the whole thing wouldn't work right), it's somewhere in or after Windows 8's HID report decoder.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Tue Oct 15, 2013 2:25 pm
by Grendel
Did some more testing, I believe it's a problem w/ the Game Controllers Properties dialog. If you run the calibration and check the Display Raw Values box, it will show you the correct numbers (-512 to 511 for the 3D Pro slider.) Haven't tried to use it in an actual game tho, will do that tonight.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Tue Oct 15, 2013 7:33 pm
by Grendel
Installed the Talon Demo on my HTPC ( i5-4570S, W8P64) -- no problem, the slider is detected and read just like any other axis (well, due to a bug in the demo you can't invert it, but that's a problem w/ the game not the converter :)) So it's the Game Controllers Properties dialog that is broken in W8. The converter works just fine :-D

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Wed Oct 16, 2013 9:50 am
by Foil
Sounds like time to report a bug to MS; I wouldn't expect that this one has been previously reported.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Nov 23, 2013 5:00 pm
by Grendel
PSA -- new Firmware Release for Teensy based 3DP-Vert :)

Since I'm working with the code in a different project I migrated some of the changes back into the 3DP-Vert software. This is a maintenance release, the main changes are:

- increased joystick data read out rate from 222Hz to 333Hz
- increased USB polling rate from 200Hz to 500Hz
- added USB suspend code (LED will blink once every 3s when suspended)
- hardened joystick read code
- major cleanup of the USB descriptor section
- other minor cleanups/bug fixes

The first two changes are the main reasons for updating (reduced input latency.)

To update your Teensy based 3DP-Vert, go here and follow the instructions for your operating system, replace any "blink_fast.hex" reference with the appropriate HEX file for your Teensy:

Code: Select all

Teensy 2.0   -- 3DPro32u4-9.hex
Teensy++ 2.0 -- 3DPro1286-9.hex
Teensy       -- 3DPro162-9.hex
Teensy++     -- 3DPro646-9.hex
If you have any problem w/ the code, let me know.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Thu Dec 12, 2013 12:17 am
by Grendel
[Moved some posts to the Reverse Engineering the Force Feedback Pro thread.]

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Thu Dec 12, 2013 10:38 am
by Verran
I have a [really dumb] question. I went through the threads and couldn't find it, but I apologize if it's on here somewhere.

Does the adapter only provide a DirectInput interface for Windows? Or does it [also?] provide an XInput interface? If not, would something like this be possible? I don't know anything about this stuff. I'm asking because some newer game engines only support XInput. It would be awesome if we could use the adapter and our joysticks on these new game engines without having to setup an unreliable emulator.

Just wondering, thanks!!

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Thu Dec 12, 2013 9:51 pm
by Grendel
The adapter doesn't have anything to do w/ these interfaces. It presents itself as an HID Joystick on the USB, it's up to the OS to collect the raw data and present it to apps via misc. APIs like DirectInput or Xinput. I have yet to encounter the need for any form of emulator -- if the app supports joysticks, the adapter will work.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Dec 14, 2013 11:29 am
by Verran
Ok thanks Grendel!

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Thu Dec 26, 2013 12:58 pm
by Grendel
[Moved Muddy's post here. Seemed more appropriate, PM me if I got it wrong.]

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Dec 28, 2013 12:27 am
by LaineyBugsDaddy
I would dearly love to get ahold of one of these converters. I just picked up a 3DPP from a thrift store for all of US$2.50. (It would have been 4.99, but items with orange price tags were 50% off.) Anyway, even though I have what should be a working gameport, I'm on Windows 8.1 and I have no way that I have been able to find to make the system try to detect the device.
It's really rather frustrating.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Fri Jan 10, 2014 11:43 pm
by Draeyth
Just built one of these, and thanks for all the work I appreciate it, and I was wondering.

What would I have to do to replace my POV hat with an analog stick using the Teensy 2.0 version of the 3DP-Vert? I see instructions but they are for the original and I don't know enough to translate that into what I need to do with the Teensy 2.0 version.

Thanks.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Jan 11, 2014 3:19 am
by Grendel
Well, I never ported the analog code over to the Teensy since you need to run 3 additional wires run from the analog stick to the controller. W/ 3DPV R1 this could be done by replacing the DB15 connector w/ a dual row header connector and some creative rewiring. You need 4 wires for the analog stick: GND, AVCC, and the two sense signals. GND is available w/in the 3DP, that leaves 3 -- it probably would be easiest to run the wires in parallel to the 3DP tail. I still have the SIXAXIS code in my version of the R3 source, just never tested and minus the analog reading routines. Everything else is still there -- the USB descriptors, the routine that assembles the report etc. If you are serious about the mod, I can add the analog readout and get you the code. Let me know.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Jan 11, 2014 12:58 pm
by Draeyth
Could you elaborate a bit? What do you mean by the 3dp tail?

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Sat Jan 11, 2014 5:23 pm
by Grendel
Draeyth wrote:Could you elaborate a bit? What do you mean by the 3dp tail?
The DB15 ended cable coming out of the 3DP :)

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Mon Jan 13, 2014 5:55 pm
by m3rc1l3ss
I just bought a teensy to build one of these myself, so I would like to thank you for doing all the work to figure this out.

I am planning on reverse engineering it and porting the thing to an arduino as a learning experience and had a couple questions about the pinout. First, if my understanding of the digital spec is correct from the documents you have posted on google code, all the data is passed over the digital pins once the joystick is put into digital mode. With this in mind, is anything passed analog pins 3 and 13 or are those connected to keep the joystick happy. Secondly I see initially one of the pins is getting set as an output send the signal to enable digital mode. Am I correct in believing that this pin is pin 2 (d0)?

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Tue Jan 14, 2014 10:14 pm
by Draeyth
Oh, I see. I'm still interested and would love to get a hold of that code.

Re: USB Converter for MS Sidewinder 3DPro, PP, and FFP

Posted: Fri Jan 17, 2014 4:59 pm
by Grendel
m3rc1l3ss wrote:First, if my understanding of the digital spec is correct from the documents you have posted on google code, all the data is passed over the digital pins once the joystick is put into digital mode. With this in mind, is anything passed analog pins 3 and 13 or are those connected to keep the joystick happy. Secondly I see initially one of the pins is getting set as an output send the signal to enable digital mode. Am I correct in believing that this pin is pin 2 (d0)?
The joysticks are read out digitally via the button lines (connected to D0-D3), yes. The two "analog" lines (3 & 13) are used to trigger the joystick to send the data and thus need to be there for the whole thing to work. :) D0 is connected to button 1, so it's an input. B4 & B5 are used to signal the stick. D6 is configured as an output, on a Teensy it's connected to the on-board LED.
Draeyth wrote:Oh, I see. I'm still interested and would love to get a hold of that code.
I'll see what I can do, give me a few days.