 |
|
 |
| Author |
Message |
Grendel DBB_Admiral

 |
Posted Sun Jun 28, 2009 7:12 pm
|
|
|
|
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
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.
I'll update this thread as more info becomes available.
|
|
|
| |
Lothar DBB Ghost Admin

 |
Posted Sun Jun 28, 2009 8:28 pm
|
|
|
|
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

 |
Posted Sun Jun 28, 2009 9:36 pm
|
|
|
|
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.
|
|
|
| |
Grendel DBB_Admiral

 |
Posted Sun Jun 28, 2009 10:31 pm
|
|
|
|
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
|
|
|
| |
Foil DBB Fleet Admiral

 |
Posted Mon Jun 29, 2009 6:50 am
|
|
|
|
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!!
|
|
|
| |
Lothar DBB Ghost Admin

 |
Posted Mon Jun 29, 2009 9:27 pm
|
|
|
|
| All right, I've got it figured out. Thanks everyone!
|
|
|
| |
fliptw DBB DemiGod

 |
Posted Tue Jun 30, 2009 5:39 pm
|
|
|
|
| super nifty.
|
|
|
| |
Grendel DBB_Admiral

 |
Posted Thu Jul 02, 2009 11:35 am
|
|
|
|
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
|
|
|
| |
Grendel DBB_Admiral

 |
Posted Thu Jul 02, 2009 7:34 pm
|
|
|
|
| @#$%, 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

 |
Posted Sat Jul 04, 2009 2:19 am
|
|
|
|
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
|
|
|
| |
joker23 DBB Cadet

|
Posted Wed Jul 15, 2009 7:14 am
|
|
|
|
| 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

 |
Posted Wed Jul 15, 2009 2:36 pm
|
|
|
|
| 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

|
Posted Thu Jul 16, 2009 6:49 pm
|
|
|
|
Cool!
It should work then, because I do get the annoying message...
|
|
|
| |
joker23 DBB Cadet

|
Posted Wed Jul 22, 2009 1:34 pm
|
|
|
|
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

 |
Posted Wed Jul 22, 2009 11:50 pm
|
|
|
|
| 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..
|
|
|
| |
joker23 DBB Cadet

|
Posted Fri Jul 24, 2009 1:15 pm
|
|
|
|
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

|
Posted Tue Aug 11, 2009 11:09 pm
|
|
|
|
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.... )!
Anyone up to the task ?
|
|
|
| |
mors DBB Cadet

|
Posted Thu Aug 27, 2009 6:31 am
|
|
|
|
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

 |
Posted Thu Aug 27, 2009 11:03 am
|
|
|
|
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
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

|
Posted Sun Sep 13, 2009 11:46 am
|
|
|
|
@Grendel:
In case you are collecting volunteers to buy pre-assembled converters from you I am interested for up to 3 pcs.
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

 |
Posted Mon Sep 28, 2009 1:35 pm
|
|
|
|
Small update: the Teensy board went through a hardware revision and now hosts the chip I wanted to use in the 1st place (Mega32U4) 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

 |
Posted Fri Oct 02, 2009 1:56 pm
|
|
|
|
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.
|
|
|
| |
Carsinigin DBB Cadet

|
Posted Fri Oct 16, 2009 10:45 am
|
|
|
|
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

 |
Posted Fri Oct 16, 2009 6:52 pm
|
|
|
|
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

|
Posted Sat Oct 17, 2009 8:28 pm
|
|
|
|
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

|
Posted Fri Oct 23, 2009 3:22 pm
|
|
|
|
I just got one of these running myself. Works great! Woohoo, no more "not connected" in the game controller window
|
|
|
| |
Grendel DBB_Admiral

 |
Posted Fri Oct 23, 2009 7:13 pm
|
|
|
|
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
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.
|
|
|
| |
wolfmanjm DBB Cadet

|
|
| |
Drakoz DBB Captain

|
Posted Wed Oct 28, 2009 10:51 pm
|
|
|
|
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

|
|
| |
|
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
|
|