My DIY 2DOF Motion Platform for MSFS - adding a whole new immersion level to VR, on a budget - VIDEO

Some of you may know me from the three Canadian airports I made, but now I want to share a motion simulator project I just completed. I recently became interested adding some motion to VR, but I quickly learned that commercially available rigs are very expensive, so entry cost is too high, and there is no motion compensation solution that works well with WMR OpenXR (Reverb G2), rendering some solutions unsuitable. So that was disappointing. Then I learned that people are building those rigs themselves. I read about that and I was hooked. Research followed, parts were ordered, and soon I started building.

When I finished the initial tuning and tried it in VR on my HP Reverb G2 for the first time, I was speechless. The result surpassed my expectation. Similar to switching to VR, this is another moment of

OH MY GOD!!! This is what VR is meant to be. I can never go back now.

This is what I wanted, the project is so worth a few days’ work invested in it and more. I can never go back from VR+motion for flight simulation now, that’s official! The level of realism and immersion is like going from pancake to VR again.

Now that this rig is completed (for now at least), here’s a detailed video with the flight demo, hardware and software walkthrough. Watch the beginning if you are interested in the concept, and all the details follow the demo, for those interested.

  • Two 12V motors: 180 WATTS (.24 HP), 50:1 gear ratio, 60NM torque
  • Arduino Uno R3 with customized SMC3 firmware
  • IBT2 motor drivers
  • FlyPT Mover software (free)
  • DIY vibration transducers connected to SimShaker for Aviators (free) + Sound Module (paid)
  • HP 750W power supply
  • Modded Saitek/Logitech yoke
  • Custom 3D-printed VR dual encoder control box with trim wheel
  • Reverb G2 WMR HMD
  • Construction is mostly wood, with DIY universal joint made of 4 pillow block bearings
  • Repurposed office chair - in addition to being free, it’s actually closer to real GA and commercial aircraft chairs than most gaming/racing chairs which are modeled after car racing seats.
  • Designed with a possibility to add another motor for yaw/traction loss in future development

Here’s a summary:

Pancake: you are looking at a plane that you are flying. Fully disconnected.
VR: you ARE INSIDE the plane that you are flying. (waiting for VR controller support to actually INTERACT with the plane you are flying in 3D, instead of clicking a 2D control representation with a mouse).
Motion rig + VR you ARE INSIDE and FEEL LIKE YOU’RE INSIDE the airplane.

It really affected the way I fly - much more like in real airplane I avoided sudden control movements, steep turns and hard landings (other than for testing) and tried to fly smooth, so I won’t be jerked around. It got my flying much closer to realistic instantly. The difference is between knowing you shouldn’t make sudden movements but not feeling anything when you do, and actually feeling everything you do with your controls. And a hard landing would really kick your butt hard!

It’s just 2DOF, but this is another level of immersion. This is amazing, I was grinning and laughing during my first test flight. When I stopped after a hard emergency landing, I just started laughing for a minute like an idiot, and couldn’t stop.

30 Likes

Here are some more details and build photos:

Initial 3D concept design:

Calculating forces and geometry with SimCalc:

Wood construction is not ideal, but it works. Metal is expensive and I don’t have welding skills and equipment. I need to take out some slack in metal motor arms attachment, but otherwise it works pretty well already.

I use SMC3 for Arduino firmware, 2 x IBT2 motor drivers and PGSaw motors. I used FlyPT Mover to program the rig motion, getting the data from MSFS.

This is a relatively simple motion platform, considering what some people are building (6DOF etc.) but it’s easy to build with some basic skills, and the cost is $350 to $400 USD (less than $350 for me as I got my PSU for free and had some other things). All software is free.

The chair pivots on a fulcrum. Most people use welded and modified universal joints from cars etc. but I couldn’t find one cheap, so I made one myself out of 4 pillow blocks bought on Amazon for $20 CAD total. They are really low quality in terms of bearing alignment, but they are massive and can bear the load. I cut some scrap threaded rod I had form my shed in two and used its nuts. Got a working u-joint. You can see my dirt-cheap-but-it-works approach.

Assembling wooden frame:

Attaching seat and DIY vibration transducers

Attaching controls:

Working on the motors:

It’s alive! Working on aesthetics and initial modifications:

Finished project:

8 Likes

You’ve hit the nail on the head right here!
The physical feedback will naturally curve your operator/controls discipline!
That’s the part that will complete my puzzle…PHYSICAL FEEDBACK!
Awesome write up!:beers:

Thanks. It really does change how I fly. Now there’s an actual REASON not to jerk around. You don’t just do that in order to try and fly more realistically, you actually do its because you don’t wan to be kicked around. And despite not having a heave/vertical motion that some (very expensive) 6DOF systems have, there is that soaring feeling when flying smoothly, even when there isn’t much movement. It’s just not the same as sitting in a stationary chair. You feel disconneced with the ground, whcih in a way you are.

I need this feeling!
I bet you feel more of a relationship with the different aircraft’s character with that setup?
It feels more like a machine you have to feel out, learn and respect.
That must be an amazing feeling and I bet the TBM 930 or King Air feel like absolute big brute power hotrods compared to the Cessna’s.
I’m definitely gonna build some rumble soon, as I don’t see any sort of Force Feedback specific hardware releasing anytime soon, as there is still supposed to be some sort of patent/trademark legal stuff blocking everyone from the manufacturing.

Absolutely epic project, well done. I can see myself going down this road very soon.

1 Like

woohoo great project, very welldone…but uhhh if you think its realistic you are very wrong,
there are no g-forces.

1 Like

I can’t even begin count the number of times I’ve accidentally started climbing or banking while noodling around trying to click buttons on the FMS with the mouse in VR, there’s just no feedback other than the g force indicator on the buttkicker, but this is a brilliant setup and just what I need! Great job!!!
I love how simple you kept it, just 2dof, thanks so much for sharing and for the inspiration!

2 Likes

Great project. ^^

You know, why I don’t take this step?
Try a loop. :wink:

But again, great project.

At the beginning of your post you mention the lack of motion compensation with commercial rigs for the G2. I’ve found this as well when researching motion platforms and considered it a non starter. If your cockpit viewpoint in the headset is changing with the motion of the platform, surely that is a problem.

How did you address that with your custom platform? Or have you found it’s not really a problem?

I thought so too. But I consulted a motion platform guru and he told me that in VR “less is more”, and unlike larger full motion 360 degree yaw rigs that require motion compensation, a compact design with limited range and motion based on acceleration forces (not a direct mapping of position) does not require motion compensation. I decided to take a risk and build it, and I expected to limit the range of motion as much as needed to not be bother by the lack of motion compensation. I added a scaling pot to my rig for that purpose. To my surprise, the limiting factor was my feeling that was going to fall out of my chair, and grabbing a yoke as a holding handle. Somehow I don’t feel any problem whatsoever - whatever small movements my head makes, feel natural, considering the momentum of the forces. It’s like head bobbing on turns, acceleration and braking in a car. It only feels more realistic that way, I suspect my head and body would make similar motions in a plane under those forces anyway, or something so close to that that it doesn’t feel unnatural. I considered this the 2nd biggest challenge in that project (1st being motors ending up not being powerful enough). I’m happy to report - this is not an issue. With a bigger range of motion it would be an issue. However in VR - all you need is motion cues, and I even mapped some positional feedback too.

So for example, the roll motion of a chair is sum of Roll Speed (acceleration force, slowly washed out back to center), Roll Position (adds a small angle to be slightly inclined during a turn), Sway (lateral acceleration, washed out), and Yaw (to feel a bit of side motion when using rudder pedals, without it feeling like a rotation). All that, processed by filters is fed into Roll axis.

Similarly, Pitch motion is a sum of Roll Speed (acceleration effect), Roll Position, and Surge (forward acceleration/breaking).

All data is taken from MSFS via SimConnect by FlyPT software, then processed by a custom profile I created, mixing all those forces and commanding a rig to move.

Oh, I did, and a barrel roll. There are two approaches to solve this: one is a Rollover filter, to process an otherwise drastic motion from side to side when over 180 degrees. If I’d be flying a lot of aerobatics, I’d be tuning that. What I did instead, I concentrated on regular maneuvers feeling right, and then just added Low Pass filter that smooths a parameter, to be reactive enough to pass normal motion, but smooth the 180 degrees rollover enough to be more gradual. When doing a barrel roll everything is very disorienting, so a side-to-side motion when upside down doesn’t feel too unnatural. Regardless, that’s not something I usually do. You don’t roll GA or airliners normally. BTW in my video - you see what happens when a plane is flipped over on landing - and it’s more drastic than a loop. Feels fun, actually.

Thanks. I planned the rig so I could add a 3DOF - the plank at the back is for the seat back rotating left or right. But I’m not even sure now I want it. Maybe when I’m bored with this setup. The lateral feedback in the roll axis feels quite good.

Err… There is no peripheral vision in VR, no VR controllers in the sim, no hand tracking, no trains, no thermals for gliders and the list is long… Does it mean the sim or VR are “not realistic?”. And actually, there are some G-forces, because the motion cues are based on acceleration, not position (which is mixed in a bit, but makes only about 30% of the motion). They are meain exactly to give you G-forces feedback to the degree that’s possible, not a direct positional translation that some motion sims do - which is wrong, because you don’t feel static in a real plane, i.e. when you start turning you feel rotating moment, but in a turn you feel almost no incline. So I do feel the acceleration of starting the turn, for example, which eases off, leaving a minimal incline, etc. It won’t look right, but in VR it feels right. All you need is to trick your brain. Then it feels very realistic, especially compared to no motion at all. People are also building G-seats, belt tensioners and other gimmicks to mimic G-forces. It definitely feels like I’m moving in VR. It’s realistic enough to feel great, and by comparison to no motion - oh yeah, it’s very realistic :slight_smile: It’s all relative…

Motion feedback is based on several values taken from the sim: roll and pitch accelerations, surge, sway, yaw, altitude, speed, acceleration, G-forces etc. So it’s supposed to translate accordingly for different aircraft. Roll and pitch position is mixed in just a bit , but not a major part of the movement. I tested in several aircraft, and it feels suitably different in A320 than in a small Cessna, because all those forces are different. I may tune it further, or even have different profiles for GA/aerobatics/airliners, if I need to, but most likely a single profile should work well. Surge doens’t feel very powerful on small aircraft - will need to test on a powerful planes. Breaking feels strong, so acceleration should also feel strong on a very powerful engine. Haven’t tested that yet, as this was added and tuned after I tried airliners.

3 Likes

Superb project.

A lot cheaper than the NLR v3 platform that I have and form your description, rather more sophisticated. Not an issue with the platform itself, but the archaic driver file is - as far as I can tell - driven by position and not acceleration. As you rightly say, this is exactly how not to drive motion simulation.

Digging a lot deeper into this is on my ‘to-do’ list … there’s a lot that can be done to improve it, although may need their SDK.

1 Like

If you already have the platform - look if there’s a way to feed it with FlyPT Mover software, there probably is. It’s very flexible, and I know people are using it to control off-the-shelf rigs. There’s a steep learning curve, but it’s doable. The software looks overly complicated on the first glance, but turns out to be very logical when you figure out how it works.

1 Like

Fantastic job! I’ve always thought you’d need a full 360 degree motion platform to work with flying but this looks to do the job superbly. I would certainly consider this, I only fly GA aircraft low and slow, so acrobatics, loops and spins aren’t things I’m doing. I just use the sim as an opportunity to explore our beautiful planet. This must be a fantastic immersion boost. Can’t believe you put it together for $400!

Not with VR. All you need is to trick your brain with motion cues. I’m sure 6DOF rig would feel even better, and people are building those, but just motors/actuators would cost thousands. This is so much better than no motion! 360 degrees platform needs a lot of space, beside the budget, and it’s not possible with Reverb G2 (arguably the best HMD for MSFS) because there’s no good motion compensation solution for it.

Also, I think using position instead of acceleration force cues is less realistic, not more. When you are turning steadily in a real plane, let’s say in a 30 degree turn, G-force vector is mostly pressing you down, replacing gravity, and gravity is only slightly pulling you sideways, so you feel almost upright. That what I tried to model. Just sitting at a 30 degrees angle would feel very wrong (you’d feel like your falling). Just scaling it down to a few degrees also would feel wrong, because then the beginning of turn would feel too weak. What my rig is doing (and I didn’t invent this approach of course) is getting me turning strongly in the beginning, directly proportional to Roll Speed (roll acceleration) - so I feel the G-forces of the turn, then when roll has stopped there can be an opposite force (inertia) of course, so I really feel the roll starting and stopping. Then it “washes out” - slowly and unnoticeably returns to zero so there’s room for the motors for more accelerations. And mixed with that, but to the lesser degree, is the direct scaled turn position, modeling the gravitational force in a turn, the diminished vector pointing down - or subjectively “sideways”. So as a result - not a huge range of physical motion, but it really feels “big” inside the sim. I had to limit the roll motion in software because it was too much. The brain is tricked to feel the connection between what you’re seeing and what you’re feeling and it just “clicks in.” when done right.

1 Like

Thanks a lot for this huuuuge post! I’ll definitely look into it. :pray:

Sure, you’re welcome. I hope some people find it informative and build similar rigs. It just adds so much, I want others to feel it :slight_smile:

I can imagine, I have a cheap racing cockpit with a Playseat Challenge chair (that’s I’ve literally used only one time since buying it almost a year ago thanks to getting into MSFS!) but even turning fast in that deck chair felt like I was being pulled left and right around corners, and a couple times I felt like I might fall out of my seat, and that was just my own brain with no motion at all.

Also, my flight cockpit utilised large, heave Thrusmaster pendular rudder pedals and I wouldn’t trust any platform to carry and shunt them around 360 degrees with cables everywhere, to say nothing of the headset itself.

Your platform actually looks perfect for most users who just want to fly GA craft and airliners under normal situations. Maybe aerobatics and fighter jets need more but I don’t fly those kind of planes anyway, for what I use MSFS for this rig looks perfect.

I have no technical skill at all so building this would be well beyond my capabilities but if I was to check out 2 DOF platforms online would they provide the same performance as yours?

Also, I currently use a Playseat Airforce flight chair, with the Honeycomb Alpha and Bravo throttle quadrant, and a Reverb G2, Do you think the weight of those accessories would work with a motion platform or would they be too heavy?

Yes, for normal flight this is great.
But if you roll inverted in a real plane, the feeling is… somewhat different. :smiley:

But even if you do a 3x360 simulator you will not get the g forces simulated. So everything is fine with your solution.

1 Like

Short of buying a fair ground ride and hooking it up to work with MSFS I’m not sure we’ll be getting to roll inverted anytime soon :upside_down_face:

This 2 degree solution I think would be fine for about 90 percent of ordinary flying situations.

I can’t even wire a plug so building this is well beyond me, but I might have a look at basic 2 degree commerical solutions. It’s basically a big step up from the butt kicker.