Milopapa Posted November 17, 2015 Posted November 17, 2015 (edited) I’ve started a joystick modding project and since I did a lot of research and got a lot of inspiration from other posts around the net, I thought I’d also post my updates on various flight sim forums (the original thread is here). My goal: extend the MS FFB2 so I could enjoy the enhanced precision provided by a longer throw. Along the way, I also found that this is a good opportunity to replace the grip with something that has more buttons. Background: I needed something that could be easily removed as I have two small kids who can’t be expected to show proper respect to Daddy’s flying equipment – which (for now) lives in the living room until I can get my own room (next year’s project). I’m already using VESA mounts for the CH Throttle which I routinely install and remove on the arms of the chair (with the help of some 3M velcro). I won’t be needing the built-in twist rudder as I’m now using my namesake’s excellent Crosswind rudder. I found these posts to be really inspiring: http://forums.eagle....86&postcount=51 http://forum.il2stur...k-2/#entry46228 http://forums.eagle....ad.php?t=125281 Here are the steps I performed so far: Preparing MS FFB2 base remove original grip (incl cabling and twist rudder) add carbon tube extension (20cm) create hole in base for extra cabling remove throttle control for tighter fit increase current to FFB motors to compensate for longer leverage by adding resistors to one of the base PCBs [*]Seat modification cut away parts of my office chair’s seat to allow enough movement for stick between my legs install tray to hold joystick base below leg level [*]Grip replacement strip down Thrustmaster F-16 FLCS joystick for grip only install Teensy board, connect to grip wiring add mini-USB cable connected to Teensy, lead through the shaft extension and out in the base program board so it shows up as a joystick device in Windows limit stick throw by adding an outer ring the bottom of the shaft Materials needed: Microsoft Sidewinder Force Feedback 2 cost 85EUR ($90) Thrustmaster F-16 FLCS joystick (gameport) cost $36 Teensy 2.0 board cost $20 8 x SMD resistors (RC1206 1R 1Ohm 1/4W 1%) for motor boost (cost $10) Mini-B USB cable, 3m (cost $3) Carbon tube (internal diameter 14mm, outer diameter 16mm) (cost $12) Tray: wooden shelf, screws, brackets, paint (from local brick and mortar shop, cost $40) My existing office chair (optional: I used a powered USB hub on the side of my table for cable management purposes) Total cost of materials (MSFFB2 joystick included): $211 In the consecutive posts I'll detail each of the stages. Edited November 17, 2015 by Milopapa Adding costs 1 PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Milopapa Posted November 17, 2015 Author Posted November 17, 2015 1. MS FFB2 base modifications So here is the first step, removing the grip and trying on the carbon extension. I had to remove the buttom plate to get access to the wiring - I wanted to keep the original grip intact and the only way to do that is to pull it through the shaft. The central 3 screws scared me first - I though they were stripped as a regular philips head wouldn't catch them. Fortunately I found this guide which assured me these were normal heads and all I needed was to experiement with different screwdrivers till I found a fitting one. Basically the grooves are a lot deeper that in a regular phillips head - I eventually just used a trusted old flathead. You can see the cable strip going into the shaft on the image above - that's the one carrying the signals of the grip buttons, the twist rudder and the IR sensor. Next I tried the tube on – it fits really nice and tight: It's a bit long as my raw material is 50cm long - I cut it to a comfortable size after a few tests (currently 20cm). During the disassembly process I came unto an interesting find. The twist rudder's centering force is achieved through a U-shaped spring. By bending and twisting it a little (well, I'm saying little but it took me more than half an hour) I could lessen the centering force which previously made it very difficult to apply small movements in the rudder. Once happy with the result, I took out the spring from this stick (I won't be needing it) and installed it in my backup joystick (which I'll be keeping as a regular MS FFB2 in case I mess up the extension ). It made a huge difference in my ability to use the twist rudder and I wholeheartedly recommend everyone using the twist rudder in this joystick to give it a try. I did some preliminary tests and while the centering forces seemed okay, the shaking effect was reduced significantly. So next step was to increase motor power – as described in this thread. I used these SMD resistors (RC1206 1R 1Ohm 1/4W 1%): I couldn't believe my eyes when I open the box, they are tiny little f*ckers! Photos did them no justice - they are really small! I was already scared shitless about the soldering (for me soldering is a necessity not a skill), but I did some practice runs on an old HDDs circuitry and managed to figure out the right technique. This video also helped a lot: In the end, the actual soldering took maybe 10 minutes. Here's what the result looks like: Zooming in: Result: The force feedback effects are back in their glorious strength! I actually had to reduce the centering effect from 100% to about 70% in Rise of Flight, same as with the unmodified stick. Shaking is now clearly noticable, not to mention the bumping on the ground effect (that was always crazy strong anyway). This mod makes a world of a difference to the extension, makes it feel exactly like the original (without a grip at least). I'm not sure what the longevity effect is but if it last for at least 2 years, I'll be a happy man. There is some noticable heating around the power conversion area (lots of capacitor there) – I might add a fan in the long run. PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Milopapa Posted November 17, 2015 Author Posted November 17, 2015 2. Chair modification Here's where I started with the chair. Cutting the sitting materials out, preserving the leather: The result: Since I haven't found anything that would work as the joystick holder, I decided to make one myself. Here is what it looks like: I later painted it black to make it blend in some more (don’t forget, this is in a living room). PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Milopapa Posted November 17, 2015 Author Posted November 17, 2015 3. Grip modification Here is the original F-16 joystick from Thrustmaster: This goes for $30-40 on ebay – no use in newer PCs as it still uses a gameport connection. For me, that doesn’t matter, I just needed the grip with the buttons. Grip replacement I started out by disassembling the joystick and then the grip itself. Surprise: as opposed to the CH Fighterstick, the handle is chock full of wires and a control PCB so I had trouble finding a home for the Teensy. As the inside of the grip is extremely busy, it took a long time to figure out where to put the Teensy... or more precisely, the Teensy + the mini USB cable going through the handle. In the end, I put it on top of the exisiting PCB but I had to reroute some of the existing wires to different parts of the grip. Soldering was also a bitch... This was probably the most difficult part of the whole project. The two-stage trigger was worn down, I ended up replacing the hard foam for the second stage as a large part of it was missing. This is how the grip looks like. I put a screw perpendicular to the shaft to try and keep it from rotating... it’s not perfect but it’ll do for now. This is how the extra USB cable is routed in the base. For the outlet, I simply enlarged the existing one to accommodate an extra cable. It's tight but it works. Programming the Teensy: Getting the Teensy to work in Windows was relatively easy (apart from a bug). I need the Arduino IDE (only version 1.6.5 works with Teensy) and the Teensyduino extension. Then I pasted in this code (credit: NonWonderDog): /* USB FLCS Grip You must select Joystick from the "Tools > USB Type" menu */ // Buttons are muxed into shift registers, use the SPI protocol to read them #include <SPI.h> const int slaveSelectPin = 0; unsigned int buttonInputs1; // data read from SPI unsigned int buttonInputs2; unsigned int buttonInputs3; // Use some macros to clean things up #define S3 !(buttonInputs1 & 0x80) /* Pinky Switch */ #define TG1 !(buttonInputs1 & 0x40) /* Trigger 1 */ #define TG2 !(buttonInputs1 & 0x20) /* Trigger 2 */ #define S1 !(buttonInputs1 & 0x10) /* Nose Wheel Steering */ #define S4 !(buttonInputs1 & 0x08) /* Paddle Switch */ #define S2 !(buttonInputs1 & 0x04) /* Pickle */ #define H1D !(buttonInputs2 & 0x80) /* Trim */ #define H1R !(buttonInputs2 & 0x40) #define H1U !(buttonInputs2 & 0x20) #define H1L !(buttonInputs2 & 0x10) #define H4U !(buttonInputs2 & 0x08) /* CMS */ #define H4L !(buttonInputs2 & 0x04) #define H4D !(buttonInputs2 & 0x02) #define H4R !(buttonInputs2 & 0x01) #define H3D !(buttonInputs3 & 0x80) /* DMS */ #define H3R !(buttonInputs3 & 0x40) #define H3U !(buttonInputs3 & 0x20) #define H3L !(buttonInputs3 & 0x10) #define H2D !(buttonInputs3 & 0x08) /* TMS */ #define H2R !(buttonInputs3 & 0x04) #define H2U !(buttonInputs3 & 0x02) #define H2L !(buttonInputs3 & 0x01) // setup() runs once on boot void setup() { // set the slaveSelectPin as an output: pinMode (slaveSelectPin, OUTPUT); // start the SPI library: SPI.begin(); // configure the joystick to manual send mode. This gives precise // control over when the computer receives updates, but it does // require you to manually call Joystick.send_now(). Joystick.useManualSend(true); } // loop() runs for as long as power is applied void loop() { // take the SS pin low to select the chip digitalWrite(slaveSelectPin,LOW); // send a value of 0 to read the SPI bytes buttonInputs1 = SPI.transfer(0x00); buttonInputs2 = SPI.transfer(0x00); buttonInputs3 = SPI.transfer(0x00); // take the SS pin high to de-select the chip: digitalWrite(slaveSelectPin,HIGH); // Write to joystick buttons Joystick.button(1, TG1); Joystick.button(2, S2); Joystick.button(3, S3); Joystick.button(4, S4); Joystick.button(5, S1); Joystick.button(6, TG2); Joystick.button(7, H2U); Joystick.button(8, H2R); Joystick.button(9, H2D); Joystick.button(10, H2L); Joystick.button(11, H3U); Joystick.button(12, H3R); Joystick.button(13, H3D); Joystick.button(14, H3L); Joystick.button(15, H4U); Joystick.button(16, H4R); Joystick.button(17, H4D); Joystick.button(18, H4L); //Joystick.button(19, H1U); //Joystick.button(20, H1R); //Joystick.button(21, H1D); //Joystick.button(22, H1L); // Determine Joystick Hat Position int angle = -1; if (H1U) { if (H1R) { angle = 45; } else if (H1L) { angle = 315; } else { angle = 0; } } else if (H1D) { if (H1R) { angle = 135; } else if (H1L) { angle = 225; } else { angle = 180; } } else if (H1R) { angle = 90; } else if (H1L) { angle = 270; } Joystick.hat(angle); // Because setup configured the Joystick manual send, // the computer does not see any of the changes yet. // This send_now() transmits everything all at once. Joystick.send_now(); } I had to choose "Serial+Keyboard+Mouse+Joystick" under Tools > USB Type as the one without the Serial wouldn't show any buttons or axis in joy.cpl - this looks like a Windows bug. I also chose 1MHz speed as some reported issues with faster speeds - didn't bother to test. Uploading the code was a simple matter and the joystick shows up in Game controllers right away. All buttons work (even if some require extensive force due to the age)! So here is what it looks like at the moment: I limited the stick throw slightly as it was getting a bit excessive. I used a plastic ring cut from a windshield cleaner bottle – pretty much anything that’s a hard (non-sticking) plastic ring would do. I don't have pictures about that yet, can upload later if anyone's interested. Overall - I spent some time testing this setup in Il2 Bos, Rise of Flight and DCS:Huey and flying with the extended stick is AWESOME. Summary of impressions: great immersion, controls feel much more natural center-mounted precise control of pitch and roll - crucial for heli but really useful for prop planes too abundancy of buttons (even if they are a bit worn) very slight throbbing/vibrations can be felt occasionally, might be due to the increased current to the motors - insignificant overall the grip reduced the force feedback further but it's still pretty good - motor boost is a must have with an extension like this two-stage trigger is NICE - I programmed guns to TG1 (leading) and cannons to TG2 (killing) Please let me know if there is any additional detail you'd be interested to hear more about. PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Gruman Posted November 19, 2015 Posted November 19, 2015 Nice. Thanks for the whole written summary. I purchased two MSFFB2 Sticks for arround 20$ a month ago and eager to start my own build. This gives me another sweet starting point. The Thrustmaster F-16 stick is all plastic, right? I would really like to use my warthog stick for my build because of the feel, but I'm pretty sure it will be to heavy. :( And I have no clue how the wiring is done inside the handle. But again, thanks :) Intel I9 10900k @5.1GHz | MSI MEG Z490 Unify | Corsair Vengeance 64GB - 3600MHz | EVGA RTX 3090 FTW3 VPC T-50 Base /w Viper & Hornet Grip | VPC Rotor TCS Pro w/ Hawk-60 Grip | TM TPR LG C2 42" | Reverb G2 | TIR 5 | PointCtrl | OpenKneeboard
Milopapa Posted November 19, 2015 Author Posted November 19, 2015 The Thrustmaster F-16 stick is all plastic, right? I would really like to use my warthog stick for my build because of the feel, but I'm pretty sure it will be to heavy. :( And I have no clue how the wiring is done inside the handle. Correct, it's all plastic - that was one of the reasons I chose it. Even like this, the stick got pretty heavy with the grip on top of the extension. I'm sure using a full-metal grip would further diminish the FFB effects. You'd probably need the dual motor setup, the resistor mod and a counterweight to have similar effects. As for the wiring, I forgot to include this image: Brown - VCC / +5V Green - GND Yellow - MISO / PB3 Red - SS / PB0 Orange - SCLK / PB1 It's pretty simple as all the button handling is done by the F-16 chips, and it outputs all data on a 5-wire cable strip. This is what you need to solder to the Teensy board. PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Sokol1_br Posted November 19, 2015 Posted November 19, 2015 (edited) Good job on FFb2. :thumbup: For use Cougar/Warthog grip (~900grs), what people do is place a counter weight bellow FFB2 base (see Peter... dual FFb). All buttons work(even if some require extensive force due to the age)! Is not due the age, is due the "more heavy is more real" idea that are used in Tm sticks since FCS (see the ridiculous heavy springs in F22 PRO). I had one those sticks new and buttons/HAT's are uncomfortable for use. From game perspective the buttons/HAT in CH are more friendly. :) They grip only lack a pinkie button, a 'mod' is need. A extra 'mod' some people do in FFB2 is place ball bearings in the gimbal, and replace worm pot' with contactless sensor. http://forum.il2sturmovik.ru/topic/2168-modernizaciya-msff2/ Edited May 9, 2016 by Sokol1_br
sydost Posted November 19, 2015 Posted November 19, 2015 (edited) I'm sure using a full-metal grip would further diminish the FFB effects. You'd probably need the dual motor setup, the resistor mod and a counterweight to have similar effects. I have done all that (dual motors, resistor mod + counterweight) with a Cougar grip which is also full-metal and I would still like to have more force. So I think it is a good idea to use plastic grip or limit the length of the extension. Very nice work there Milopapa :thumbup: . Edited November 19, 2015 by sydost
Milopapa Posted November 19, 2015 Author Posted November 19, 2015 Thank you! All told, it must have been around 20-30 hours of actual work, not counting the research. Every hour worth it! Flying with this setup (plus the Crosswind rudders) feels amazingly real. The only thing that could make it more complete is a VR headset :) Hopefully next year. PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Milopapa Posted November 19, 2015 Author Posted November 19, 2015 Buttons Good job on FFb2. :thumbup: Is not due the age, is due the "more heavy is more real" idea that are used in Tm sticks since FCS (see the ridiculous heavy springs in F22 PRO). I had one those sticks new and buttons/HAT's are uncomfortable for use. From game perspective the buttons/HAT in CH are more friendly. :) I know, but getting a CH Fighterstick would have cost me around $100 more. Also, I have contacted Thrustmaster support and they agreed to send me a full set of spare hat assemblies from the Cougar for €32. They are on their way, curious to see if I can make them work with the FLCS. Those should be metal vs plastic. More weight :( but hopefully better action. A extra 'mod' some people do in FFB2 is place ball bearings in the gimbal, and replace worm pot' with contactless sensor. http://forum.il2sturmovik.ru/topic/2168-modernizaciya-msff2/ I don't quite get this (don't speak Russian, google translate couldn't really manage it) - why the bearings? Also, pots are fine for me - great resolution, don't seem to be worn yet. There is a slight mechanical deadzone but nothing to worry about. PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Sokol1_br Posted November 20, 2015 Posted November 20, 2015 The use of bearings is to eliminate mechanical deadzones in axis, that became issue when use contactless sensor, this things register the slightest movement. Replace pot with sensor don't improve resolution, this is defined in controller board. The use of sensors to replace worn pot is due the impossibility to get proper pot' replacement. Joystick pot is different from commercial pot, have limited electrical angle. "If ain't broken, dont fix". ;)
BrassEm Posted November 21, 2015 Posted November 21, 2015 (edited) @Milopap An excellent Mod! :thumbup: Would you be kind enough to post the details on the Hat switch assemblies you get from thrustmaster? I am having great difficulty finding a reasonable supplier for Hat switches. @Sokol1_br With the addition of an OP Amp circuit you can modify the pot characteristics no problem. With this example I got full linear pot range from 280° down to 90°. (R3/6 adjusts FSD and R2/5 adjusts Zero. Excess angle is just rail voltages, just need to put mechanical stops in then.) Edited August 13, 2017 by BrassEm 1 www.brass-em.com
Sokol1_br Posted November 21, 2015 Posted November 21, 2015 BrassEm Yes the Op Amp is a good workaround for the angle problem, but as the most of simmers want a "PnP" solution... :)
Viersbovsky Posted November 21, 2015 Posted November 21, 2015 (edited) With the addition of an OP Amp circuit you can modify the pot characteristics no problem. With this example I got full linear pot range from 280° down to 90°. (R3/6 adjusts FSD and R2/5 adjusts Zero. Excess angle is just rail voltages, just need to put mechanical stops in then.) Nice work! I have been thinking about using OpAmps for reducing travel too (that or pre-loaded gearing). May I ask how well it works? What resolution do you get out of it before noise becomes overwhelming, e.g. 10 or 12 Bit? Thank you! All told, it must have been around 20-30 hours of actual work, not counting the research. Every hour worth it! Flying with this setup (plus the Crosswind rudders) feels amazingly real. The only thing that could make it more complete is a VR headset Hopefully next year. That is one awesome stick mash-up, kudos! While building and tinkering itself is great fun, seeing it all come together and work is something really special. Edited November 21, 2015 by Viersbovsky Callsign "Lion"
Milopapa Posted November 23, 2015 Author Posted November 23, 2015 Would you be kind enough to post the details on the Hat switch assemblies you get from thrustmaster? I am having great difficulty finding a reasonable supplier for Hat switches. Sure - last I heard from Thrustmaster support, they're scheduled to arrive this Friday (Nov 27), so hopefully I can take a detailed look at them this weekend. I have high expectations due to their supposedly metal nature :) Although CH has repeatedly proven that you can do nice things with plastic. PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Sokol1_br Posted November 23, 2015 Posted November 23, 2015 I have high expectations due to their supposedly metal nature I suspect this "nature" will be only in the cap part ("hat"). :)
Milopapa Posted November 23, 2015 Author Posted November 23, 2015 I suspect this "nature" will be only in the cap part ("hat"). :) Could be... I can only speculate based on Cougar reviews. They are supposed to have longer throws than FLCS hats which alone would make me happy (if I can get them to work). Compared to the older TM F-22 PRO, the hats have longer shafts and stand away from the body of the handle more, thus offering a longer throw and greater control. Much easier getting those corner positons first time now. Practically all metal construction (...) Even the hats and buttons are metal!Source: http://cougar.flyfoxy.com/features.php PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
Milopapa Posted December 6, 2015 Author Posted December 6, 2015 Thrustmaster replacement hats The Thrustmaster replacement hats arrived right on time (I just didn't have time to come back and write a proper report about them). In short: they are AMAZING and well worth the money! Really nice action (their shaft are a lot longer than the originals), the touch of metal buttons is a welcome change after all the plastic - and they were really easy to replace (same pinout as the FLCS). Also, they have a very distinctive feel compared to the hats on my CH throttle: they feel a lot more serious (I don't know maybe even more military?). Instead of a plasticky click, they have this nice little bouncy action - very smooth, with longer throw that prevents accidental clicks. I'm posting a few photos below to illustrate my point. Here is the original setup (Thurstmaster F-16 FLCS with original buttons - note the small gap/short throw): Here are the replacement Cougar parts: A thumb hat: A TMS hat side-by side (top is Cougar, bottom is FLCS): Replacement procedure (same pin layout): Final results (note the throw): Let me know if you have any questions. 1 PC HW: i5 3770k@4.6GHz | Asus 1080Ti | 16GB DDR3 | Samsung 850 EVO | MSI MPower Z77 Input: MS FFB2 w/ F-16 FLCS grip | CH Pro Throttle | MFG Crosswind | HTC Vive DCS modules: F-14, FW-190, P-51, Bf109, UH1, Mi-8, FC3, CE2
BrassEm Posted December 16, 2015 Posted December 16, 2015 Many thanks Milopapa for taking the time to take some photos and post up a great little review. Time to damage the Credit Card again... www.brass-em.com
Sporg Posted December 16, 2015 Posted December 16, 2015 Thank you! All told, it must have been around 20-30 hours of actual work, not counting the research. Every hour worth it! Flying with this setup (plus the Crosswind rudders) feels amazingly real. The only thing that could make it more complete is a VR headset :) Hopefully next year. Hehe, you should try the Gametrix seat and SimShaker SW as well. FFB effects in your whole seat. ;) http://forums.eagle.ru/showpost.php?p=2430581&postcount=182 http://dreamsimteam.blogspot.ru/p/simshaker.html System specs: Gigabyte Aorus Master, i7 9700K@std, GTX 1080TI OC, 32 GB 3000 MHz RAM, NVMe M.2 SSD, Oculus Quest VR (2x1600x1440) Warthog HOTAS w/150mm extension, Slaw pedals, Gametrix Jetseat, TrackIR for monitor use
agrasyuk Posted December 20, 2015 Posted December 20, 2015 Milopap very cool stuff. will be modifying my MSFFB2 as well. i do however plan on using the TMWH grip, counter-weighted. BrassEm, would i be able to use LM393 instead of LMC6482 IC? or are any modifications I will need to make to your circuit? Thanks in advance @ With the addition of an OP Amp circuit you can modify the pot characteristics no problem. With this example I got full linear pot range from 280° down to 90°. (R3/6 adjusts FSD and R2/5 adjusts Zero. Excess angle is just rail voltages, just need to put mechanical stops in then.) Anton. My pit build thread . Simple and cheap UFC project
rogonaut Posted December 17, 2018 Posted December 17, 2018 is there a way to set the centering force? i couldnt find the settings anymore, i think there was some file in dcs?
Walshtimothy Posted September 10, 2020 Posted September 10, 2020 reverse axis in dcs , took me a while to realise :) walshtimothyWW2 virtual flier - currently playing on 4ya ww2 - youtube channel here https://www.ww2adinfinitum.blog - https://projectoverlord.co.uk/
ackattacker Posted October 16, 2020 Posted October 16, 2020 Signed up just to comment on this thread... Thank you to the OP you showed me the way! I did a variant of this mod and thanks to the excellent write up only took me about 4 hours. I did a few things differently. Started with MSFFB2 and Thrustmaster F-16 same as you (Sidewinder $50 from FB marketplace, Thrustmaster from ebay) I have not extended the stick, so no carbon tube. I don't mind playing with the joystick in my lap. So also no resistor mod. I used a Teensy 3.2 instead of a 2.0. This required a few small changes but overall was basically the same. Reason I went with the 3.2 was for the higher precision on the ADC in case I want to add the joystick axis to the Teensy in the future. Also uses micro USB instead of mini USB and I no longer have any mini USB cables lying around. I elected not to put the Teensy in the handle, I placed it in the base instead and ran the 5 wire ribbon cable down into the base. I removed the existing Sidewinder handle, cable, and connector intact (easy enough to stuff the connector sideways through the tube), then I took the guts of the handle (switch board, Z axis pot, and IR hand sensor) and made a neat little bundle out of it with tape and put it back in a convenient spot in the base (with the ribbon cable reattached). This way no wires cut. Because the IR sensor is taped up it registers as a hand always being present, if I want to cut power I just pull the plug. Because the Z pot it still present I don't need to worry about spurious signals. Also it would be easy to reverse the install if I desired. The tube for the Sidewinder handle is slightly smaller in diameter than the tube for the Thrustmaster handle, so I made up the difference with a few wraps of duct tape and a washer under the screw same as the OP. Once the handle was tightened down, it is very secure. My only "permanent" modification was to cut a very small part of the base to accommodate the extra USB cable. I added a little extra code to slow the SPI polling down, not sure this was necessary but the Teensy 3.2 slowest CPU speed is 24MHZ so I wanted to give the shift registers a fighting chance. Wiring of the Teensy board is basically the same except: Select Device is pin 10 instead of 0 CLCK is pin 13 instead of 1 MISO is pin 12 instead of 3 I loaded as Flight Sim Controls + Joystick at 24MHZ. Code here /* USB FLCS Grip You must select Joystick from the "Tools > USB Type" menu */ // Buttons are muxed into shift registers, use the SPI protocol to read them #include <SPI.h> const int slaveSelectPin = 10; unsigned int buttonInputs1; // data read from SPI unsigned int buttonInputs2; unsigned int buttonInputs3; // Use some macros to clean things up #define S3 !(buttonInputs1 & 0x80) /* Pinky Switch */ #define TG1 !(buttonInputs1 & 0x40) /* Trigger 1 */ #define TG2 !(buttonInputs1 & 0x20) /* Trigger 2 */ #define S1 !(buttonInputs1 & 0x10) /* Nose Wheel Steering */ #define S4 !(buttonInputs1 & 0x08) /* Paddle Switch */ #define S2 !(buttonInputs1 & 0x04) /* Pickle */ #define H1D !(buttonInputs2 & 0x80) /* Trim */ #define H1R !(buttonInputs2 & 0x40) #define H1U !(buttonInputs2 & 0x20) #define H1L !(buttonInputs2 & 0x10) #define H4U !(buttonInputs2 & 0x08) /* CMS */ #define H4L !(buttonInputs2 & 0x04) #define H4D !(buttonInputs2 & 0x02) #define H4R !(buttonInputs2 & 0x01) #define H3D !(buttonInputs3 & 0x80) /* DMS */ #define H3R !(buttonInputs3 & 0x40) #define H3U !(buttonInputs3 & 0x20) #define H3L !(buttonInputs3 & 0x10) #define H2D !(buttonInputs3 & 0x08) /* TMS */ #define H2R !(buttonInputs3 & 0x04) #define H2U !(buttonInputs3 & 0x02) #define H2L !(buttonInputs3 & 0x01) #define SPI_CLOCK_DIV8 0x05 // setup() runs once on boot void setup() { // set the slaveSelectPin as an output: pinMode (slaveSelectPin, OUTPUT); // start the SPI library: SPI.begin(); // configure the joystick to manual send mode. This gives precise // control over when the computer receives updates, but it does // require you to manually call Joystick.send_now(). Joystick.useManualSend(true); // Set SPI to run at 1/8 CPU SPI.setClockDivider(SPI_CLOCK_DIV8); } // loop() runs for as long as power is applied void loop() { // take the SS pin low to select the chip digitalWrite(slaveSelectPin,LOW); // send a value of 0 to read the SPI bytes buttonInputs1 = SPI.transfer(0x00); buttonInputs2 = SPI.transfer(0x00); buttonInputs3 = SPI.transfer(0x00); // take the SS pin high to de-select the chip: digitalWrite(slaveSelectPin,HIGH); // Write to joystick buttons Joystick.button(1, TG1); Joystick.button(2, S2); Joystick.button(3, S3); Joystick.button(4, S4); Joystick.button(5, S1); Joystick.button(6, TG2); Joystick.button(7, H2U); Joystick.button(8, H2R); Joystick.button(9, H2D); Joystick.button(10, H2L); Joystick.button(11, H3U); Joystick.button(12, H3R); Joystick.button(13, H3D); Joystick.button(14, H3L); Joystick.button(15, H4U); Joystick.button(16, H4R); Joystick.button(17, H4D); Joystick.button(18, H4L); //Joystick.button(19, H1U); //Joystick.button(20, H1R); //Joystick.button(21, H1D); //Joystick.button(22, H1L); // Determine Joystick Hat Position int angle = -1; if (H1U) { if (H1R) { angle = 45; } else if (H1L) { angle = 315; } else { angle = 0; } } else if (H1D) { if (H1R) { angle = 135; } else if (H1L) { angle = 225; } else { angle = 180; } } else if (H1R) { angle = 90; } else if (H1L) { angle = 270; } Joystick.hat(angle); // Because setup configured the Joystick manual send, // the computer does not see any of the changes yet. // This send_now() transmits everything all at once. Joystick.send_now(); } Stick is working wonderfully in DCS and MSFS 2020 using XP-Force. 1 Ryzen 7800x3d, 64gb, MSI RTX4090 Suprim , Sidewinder FFB with F16 grip, TM Warthog Throttle, MFG crosswind pedals. Pimax Crystal
Recommended Posts