Reverse Engineering the Force Feedback Pro

For system help, all hardware / software topics NOTE: use Coders Corner for all coders topics.

Moderators: Krom, Grendel

claud2000
DBB Cadet
DBB Cadet
Posts: 2
Joined: Thu Dec 20, 2018 10:57 pm

Re: Reverse Engineering the Force Feedback Pro

Post by claud2000 »

Implicit wrote: Tue Oct 23, 2018 12:06 am
schumpo wrote: Mon Feb 19, 2018 5:47 am Hello Everybody,

I know this thread is very old, but there are still some people trying to make the good old Sidewinder FFB pro work...

My Hardware:
  • PC with Windows 10 pro
    MS Sidewinder FFB Pro
    Teensy 2.0
    Female DB-15 Port
I recently bought the parts for the Teensy-DB15-Connection from the well-known "adapt-ffb-joy"-project and soldered them together according to the circuit plan. Everything seems to be connected fine.

This is my problem:

1. When I plug in my board, the Teensy is recognised by Windows.
2. The LED on the stick is illuminated constantly, also i can "sense" that the motors in the stick are activated, the stick centers.
3. Now I can transfer the "adaptffbjoy-shift-r54-beta.hex" onto the teensy...

and here comes the problem...

Nothing happens, the teensy just starts blinking rapidly. There is no new hardware recognized by Windows.

I've tried all available Hex-Files I could get - same results.
I resoldered the board with shorter wires and the capacitors - same results.
I installed the serial port drivers from the Teensy Website - same results
The Teensy itself seems to be working fine, I tried and tested several things with Arduino - it does what it should do - but not with the Stick :-(


Unfortunataly I could not finde ANY hint what this rapid blinking means... and yes, I'm a noob and also German, so my English understanding isn't thhat good.

Is anyone on this board still "alive" and able to help me?

Thanks a lot in advance,

Christian
I'm having exact same problem. It'll recognize it if I load the standard Teensy joystick software on it, but nothing happens when I load any of the adaptffbjoy versions.
Rapid blink, windows doesn't see anything. Does it need to have external 5v power to work?
Hi there , I have recently successfully built the convert for my FFP,and it works indeed.
MY PC WIN10
MS sidewinder force feedback pro, product ID:66883-…..
Actually I met your problem as well , the light blink rapidly , and PC don’t have any feedback . it takes me a lot of time to check and finally I figure out what is wrong. I use wrong resistors . it should be 2.2k resistors , but I use 220k .
When I replace them with correct resistors . it work . the light blink 2-3 times and then will be light on for around 1-2second and then light off , then PC will recognize the FFP . it’s so great!!!
Hope my experience can help you .
BTW ,I am Chinese. My English is poor. Hope you can understand what I said .
tglaria
DBB Cadet
DBB Cadet
Posts: 3
Joined: Wed Feb 04, 2015 9:58 am

Re: Reverse Engineering the Force Feedback Pro

Post by tglaria »

Like 3 years later I'm reading again this thread.

I have a Sidewinder Gamepad, does this code work on it or it's exclusive to the Joystick?
If the latter, does an usb adapter exist for the gamepad?

I'm assuming the gameport protocol is the same for the gamepad, is it not?
jesusjj86
DBB Cadet
DBB Cadet
Posts: 1
Joined: Sun May 19, 2019 2:54 am

Re: Reverse Engineering the Force Feedback Pro

Post by jesusjj86 »

Hello,
I set it up and it worked ... it did not have the exact values of resistance, so I put two in seri and got 2k for the midi two in parallel of 470k ... I did not have capacitors and I did not put them ...

checked works perfectly without power supply and with power also works well, only that in the test the values can oscillate a bit over the required value in the axes ..
it could be that by adding the two capacitors this will be solved ...
I tried it with the microsoft flight simulator 2004 and the force works perfectly ....

As I am not good at making printed circuit boards, with a connector extracted from a sound card, I stuck the microcontroller board with hot silicone after wiring the wires between them.

success for a joystick that has remained more than 20 years in the closet since it lost the sofware support when changing the windows, and when the games port stopped the computers ...

exit. I recommend it.
Todzilla
DBB Cadet
DBB Cadet
Posts: 3
Joined: Tue Jun 18, 2019 8:47 pm

Re: Reverse Engineering the Force Feedback Pro

Post by Todzilla »

I finally go one working.
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

Hello,
If someone needs a ready to use device:
viewtopic.php?p=389914#p389914
JayBee
DBB Cadet
DBB Cadet
Posts: 4
Joined: Sat Jan 02, 2021 12:42 am

Re: Reverse Engineering the Force Feedback Pro

Post by JayBee »

Hey guys,

Sorry to revive this old thread, but I have a small issue with the firmware of this diy adapter.

It works fantastic with most game with my FFP stick, everything is nice.

But some games like Freespace 2 sadly support only a limited number of axis (6 I think?), meaning the throttle axis is not detected at all in game.
Is there a way I can reorder the axises to make a throttle in higher priority, or simply disable the extra pot axis (which I don't use at all)?

I guess the most simple way to do that is to remove the extra axis part in the descriptor, but then I don't know where I can get the last firmware version of the code, with bug fixed and the button shifting function.

If anyone could point me in the right direction that'd be great, thank you :mrgreen:
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

User avatar
Scanjo
DBB Ace
DBB Ace
Posts: 64
Joined: Wed Oct 23, 2013 9:01 pm

Re: Reverse Engineering the Force Feedback Pro

Post by Scanjo »

tglaria wrote: Tue Jan 29, 2019 2:36 pm Like 3 years later I'm reading again this thread.

I have a Sidewinder Gamepad, does this code work on it or it's exclusive to the Joystick?
If the latter, does an usb adapter exist for the gamepad?

I'm assuming the gameport protocol is the same for the gamepad, is it not?
As far as I know, no one has written any firmware for the game pad. I would guess that it is different since we KNOW that the wheel is not the same as the joystick. Someone else may have a project going but I haven't heard anything myself.
=================
More info is on MY SITE.
JayBee
DBB Cadet
DBB Cadet
Posts: 4
Joined: Sat Jan 02, 2021 12:42 am

Re: Reverse Engineering the Force Feedback Pro

Post by JayBee »

rage76 wrote: Mon Jan 04, 2021 10:33 am Hi,
Here should be the last one:
https://github.com/tloimu/adapt-ffb-joy
https://github.com/zduford/adapt-ffb-joy
Thanks, but actually this one seems more recent;
https://github.com/r8dhex/adapt-ffb-joy ... hiftEnable
I just wanted to be sure it was the last stable one with bug fixes and shift enabled?
There are so many clones of this repository, I have no idea which one is the best.

Edit:
I think I managed to make the code modification I wanted to do, but I can't compile it with my windows 10 x64 (got an error that says I can't run avr-gcc.exe).
Was anyone able to compile it with the same windows version?
scifi
DBB Cadet
DBB Cadet
Posts: 1
Joined: Wed Jan 13, 2021 4:26 am

Re: Reverse Engineering the Force Feedback Pro

Post by scifi »

Hi, i feel like i know a bunch of you here after all the reading iv been doing, this is my 3rd build of one of these so im no stranger to them, but i wanted to share an issue i have with the morebuttons.hex when used and FF is active, its game breaking! slows all in game responces to joystick movement, and drops the fps in game from +200 to 5fps, from what i can see in the uncompiled code it looks like its a debugging issue, could you take another look at it please and let me know, i would really like to make use of the unused pins for extra buttons functionality.

Many thanks Scifi.


r8dhex wrote: Fri Oct 06, 2017 4:17 am I have the .hex file attached here. This makes all the original buttons 1-8, appear as 9-16 when the shift button is pressed. Of course credit goes to jaffa225man for the original shift implementation which I simply added on to.

If you wanted to use buttons 17-24, you'll wire buttons to pins PB7, PD1, PD2, PC6, PC7, PB6, PD7, PD4. They will also be shiftable.

Let me know how it works out for you.
papounet2 wrote:Hi,

I had ordered an adapter some time ago but could not get it working the first time.
I am getting ready to play star citizen and bought a Thrustmaster 1600M which is fine.
But I had a bout of nostalgia , and I tried the adapter again and this time !!! I got my FFB Pro without Fan working with both adaptffbjoy-r54.hex and 3DPro32u4-10.hex with Win7 64.
With the former FW, the slider (throttle) appears rather unstable in Joy.cpl. with the late, the % bar is less jumpy
the later FW could be slightly more responsive.

Calibration is a bit of a problem, because a slight off-center setting and the ship is perpetuall drifting, but several calibration run later, i managed to have it stable.

I would be very very interested in getting the FW with the shift button (8 button+shift+8 shifted extra buttons) compiled for the teensys 2.0.

In the mean time, i will look into dual joysticks 6-DOF configuration
JayBee
DBB Cadet
DBB Cadet
Posts: 4
Joined: Sat Jan 02, 2021 12:42 am

Re: Reverse Engineering the Force Feedback Pro

Post by JayBee »

I've finally managed to make the changes I wanted to the firmware and compile it, but I have a weird issue.
It seems WinAVR makes the firmware .hex file way bigger than needed.

When compiling, I get that result;

Code: Select all

Size after:
AVR Memory Usage
----------------
Device: atmega32u4

Program:   19678 bytes (60.1% Full)
(.text + .data + .bootloader)

Data:       1973 bytes (77.1% Full)
(.data + .bss + .noinit)
Which seems good, that's the expected size for the atmega32u4.

But then the .hex file is 55kB, which doesn't make much sense.
Just in case I tried to compile the og firmware, and I get the same result.

Did you guys get the same issue, or know how to fix that?
JayBee
DBB Cadet
DBB Cadet
Posts: 4
Joined: Sat Jan 02, 2021 12:42 am

Re: Reverse Engineering the Force Feedback Pro

Post by JayBee »

Ok I fixed the issue with the compilation.

So I made a firmware that uses most of the fixes of other firmware (Shift+buttons, joystick name change), disables the debug and serial mode (that were causing issues), and also completely disable the Z, Rx, Ry and Rudder axis for maximum compatibility (now games like Freespace2 or Crimson Skies work perfectly).

I uploaded my branch code and compiled firmware on github;
https://github.com/JayBee-git/adapt-ffb-joy
The firmware is here;
https://github.com/JayBee-git/adapt-ffb ... -Clean.hex

Tell me if there is anything you want me to add.
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

Thanks for the cleanup. Works fine.
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

I send you a PM for a small improvement
User avatar
astamresmo
DBB Cadet
DBB Cadet
Posts: 2
Joined: Fri Mar 26, 2021 3:37 am

Re: Reverse Engineering the Force Feedback Pro

Post by astamresmo »

Hello to everyone.
I'm very glad to see Jaybee here. Your Gun4IR project is awesome, and I'm happy that you are helping here.
I have a Sidewinder Force Feedback Wheel with gameport, but the project seems quite dead.
Is there any hope for us?
Is there any way I can reuse the wheel internals to adapt to modern games through arduino/teensy or something?
Thank you very much.
User avatar
Scanjo
DBB Ace
DBB Ace
Posts: 64
Joined: Wed Oct 23, 2013 9:01 pm

Re: Reverse Engineering the Force Feedback Pro

Post by Scanjo »

Hope dwindles, but it's never gone. The wheel wasn't even considered until one man took up the challenge. Just need someone else to follow in the footsteps now. ;)

I think it would be easier to just continue the current project than to attempt what you propose...
=================
More info is on MY SITE.
User avatar
astamresmo
DBB Cadet
DBB Cadet
Posts: 2
Joined: Fri Mar 26, 2021 3:37 am

Re: Reverse Engineering the Force Feedback Pro

Post by astamresmo »

Scanjo wrote: Fri Mar 26, 2021 5:32 am Hope dwindles, but it's never gone. The wheel wasn't even considered until one man took up the challenge. Just need someone else to follow in the footsteps now. ;)

I think it would be easier to just continue the current project than to attempt what you propose...
I'm no expert, but I'd like to help in whatever I could.
I have a gameport FFB Wheel, and was amazed by the fact that force feedback was indeed MIDI protocol.
I don't mind tinkering with it, but I'd need some guidance.
Thank you for your reply.
User avatar
Scanjo
DBB Ace
DBB Ace
Posts: 64
Joined: Wed Oct 23, 2013 9:01 pm

Re: Reverse Engineering the Force Feedback Pro

Post by Scanjo »

Unfortunately I can't offer any guidance. It's way above my pay grade. They were reverse engineering the ffb stuff. It's particular strings of code that must also be timed right. How they figure that out is way beyond me. :(
=================
More info is on MY SITE.
ej113
DBB Cadet
DBB Cadet
Posts: 4
Joined: Fri Oct 27, 2023 3:22 pm

Re: Reverse Engineering the Force Feedback Pro

Post by ej113 »

I can report some progress! Since I managed to get an adapter together I was hooked. I saw an opportunity in that some of the effects were not working really as I would expect them to. So I've been incrementally testing and improving the translation of effects from USB to MIDI. I made significant inroads by using the existing USB serial port in the adapter to inject MIDI messages, plus had a stroke of luck in stumbling upon the Microsoft Sidewinder Force Feedback SDK Programmers Guide, which includes the FFP force feedback specification. (I've just spotted this link is now broken, which is a shame, although I kept a copy)

I've since been able to improve the force feedback capability for the FFP to an almost complete implementation of the generic PID spec, at least as far as the joystick firmware natively supports, and excluding "custom" forces which are rarely if ever used. In some aspects I was able to improve on what the original MS drivers would have done. The updates should improve compatibility with most games and make it more likely the effects will play as originally intended.

The update includes a collection of new features, bug fixes and workarounds of FFP limitations. It's all relatively minor code changes compared to the initial work to reverse engineer the comms, initialisation sequence and MIDI message structure. However my impression is that the feel in games is much improved. Some missing effects appeared, others no longer get stuck on nor others play at too high a strength.

New beta version of the firmware v0.5.0beta1 can be found on github with release notes. I contacted cal/tloimu about what I was trying to do and he made me a contributor so that these changes are now merged into the main project repo.

The initial published hex is targeted at legacy Teensy 2.0 adapters and includes the axes from the optional pots. I will also be adding a variant that include the updates in the JayBee fork (shift button, fewer axes), as well as a variant of this targeted at Micro/Pro Micro boards. (I am using Arduino Micro)

Please do test it out and report how it goes.

Regarding the FF wheel I am betting that there is enough information between this thread and the project wiki to finish the job with some trial and error without going back to Win XP. However I do have a concern (which I've not seen mentioned anywhere else) that the wheel PCB appears to be independently powered, unlike the joystick, and the adapter wiring might need to be modified for the wheel. More details in this issue.
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

Thanks for your work.
The Arduino pro Micro version would be great. Much easier to get.
Do you have already a schematics for the Micro Pro ?
ej113
DBB Cadet
DBB Cadet
Posts: 4
Joined: Fri Oct 27, 2023 3:22 pm

Re: Reverse Engineering the Force Feedback Pro

Post by ej113 »

I've now included the variants in the v0.5.beta1 linked in my post above, including the Micro/Pro Micro targeted one.

Juchong did a nice guide with schematic, PCB layout and instructions for flashing the firmware to the Pro Micro. I used the same modification to Button 1 GPIO. Note the firmware download on that page is based on the previous version of the FFB code.
Technically you could use the Teensy targeted firmware with the Pro Micro if you were willing to do a mod to the LED pads (this has been done successfully I believe for an adapter)
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

Hi,
Thanks for the link.
I will try make my own PCB for the Micro Pro with USB-C port.
This port hat more stability ;-)
BTW. I found out using 1.5nF makes the FFB a bit more stable with the old design.
Perhaps also with the Micro Pro
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

Question: Do you use the 10k resistor ?
VCC
|
10k-PIN
|
GND

Are these the additional axsis ?
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

I just tested the adaptffbjoy-0.5.0beta1-shift_4axis_Teensy.hex.
looks quite good.
All buttons are working
ej113
DBB Cadet
DBB Cadet
Posts: 4
Joined: Fri Oct 27, 2023 3:22 pm

Re: Reverse Engineering the Force Feedback Pro

Post by ej113 »

Good to hear
rage76 wrote: Mon Nov 06, 2023 2:16 am Question: Do you use the 10k resistor ?
VCC
|
10k-PIN
|
GND

Are these the additional axsis ?
Yes those are the potentiometers for extra axes. You would need to build a firmware that enables them on the Micro.
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

Thanks.
Then I don't need them ;-)
BTW, the Z-Axis and Throttle is flickering when the FFB motors are on.
Is this only on my Joystick or do you also see this ?
But this is also with the original FW.
ej113
DBB Cadet
DBB Cadet
Posts: 4
Joined: Fri Oct 27, 2023 3:22 pm

Re: Reverse Engineering the Force Feedback Pro

Post by ej113 »

Yes I have this too, and on the X,Y axes as well. There's a thread on this issue - it's the joystick not the adapter, not clear whether age related or was always there. Someone did write a filter for it but the tradeoff is lag. Personally haven't found it (the jitter) a problem in games.
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

Thanks for the hint
r8dhex
DBB Cadet
DBB Cadet
Posts: 16
Joined: Mon Feb 08, 2016 6:44 pm

Re: Reverse Engineering the Force Feedback Pro

Post by r8dhex »

wow, coming back after many years, and updates are still happening, Thanks to the efforts of ej113, JayBee and others!
rage76
DBB Cadet
DBB Cadet
Posts: 13
Joined: Thu Jan 09, 2020 6:11 am

Re: Reverse Engineering the Force Feedback Pro

Post by rage76 »

@ej113
Can you describe how to compile the hex for Teensy and Micro Pro ?
I tried to find out how to switch between the both, but I couldn't find it.
Thanks.
The FW still runs very stable
Post Reply