Home-built Motion VR Cockpit - a whole new immersion level for MSFS, on a budget - VIDEO

Some of you may know me from the 4 Canadian airports I made, but now I want to share a latest iteration of my Motion VR Cockpit simulator project. I became interested adding some motion to VR, but I quickly learned that commercially available motion rigs are very expensive, and there is no motion compensation solution for WMR OpenXR (Reverb G2) yet, rendering some solutions like Yaw VR 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. The budget is only about $430. It’s literally about 10% of what you would pay for an off-the-shelf comparable system, and I don’t believe there even is one that can be customized quite this way.

Update: all design files, Blender design files, 3D-print STL files, build photos and part lists for my Motion VR Cockpit and all controllers are now available for FREE DOWNLOAD (optional donation) on my website. If you are looking into building a similar rig - feel free to use my desings as a starting point.

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 expectations. 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. In recent months I have followed up upgrading, adding features, and building new devices to my motion rig, making it a full-blown Motion VR Cockpit. I added all the controls that was feasible to train my muscle memory for using while wearing the HMD.

Here is a video of the final improved and upgraded version of my Motion VR Cockpit. I engineered, 3D-printed, built and programmed a bunch of castom-designed devices: large-throw Pendular Yoke that converts to a large-throw Joystick / Cyclic controller, 6 Dual Encoder and 8-button VR Control Box, Switch Box with Gear lever, 8-axis Throttle Quadrant with thrust reversers and trim wheel, HOTAS Throttle that converts to a heli Collective along with another switchbox, DIY vibration transducer system (buttkickers).

This is a 1-minute teaser video:

Update: here is a full video! It’s 1 hour long, but you have chapters so you can skip to what you find interesting. It has a detailed control overview, short test flights in different configurations - Yoke + Throttles, Joystick + HOTAS Throttle, Cyclic + Collective (helicopter), encoder and switch boxes walkthrough and implementation, and even an experimental hand tracking demo.

  • 2x 12V motors: 180 WATTS (.24 HP), 50:1 gear ratio, 60NM torque
  • Arduino Uno R3 with customized SMC3 firmware
  • IBT2 motor drivers
  • FlyPT Mover
  • DIY vibration transducers (buttkickers) connected to SimShaker for Aviators + Sound Module
  • HP 750W power supply,
  • Custom-built hall sensor pendular Yoke, convertible to a 3D-printed joystick
  • Custom 3D-printed VR dual encoder control box
  • Custom 3D-printed VR Switch and Gear box
  • Custom 3D-printed 6-axis Boeing style Throttle Quadrant with Thrust Reversers, TO/GA and A/T disconnect buttons and Trim Wheel.
  • Reverb G2 WMR HMD
  • Microsoft Flight Simulator.
  • OpenXR Toolkit
  • Construction is mostly wood, with DIY universal joint made of 4 pillow block bearings; repurposed office chair.

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.
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. And I’m still grinning each time I have a hard landing, do a high-G maneuver, or break too fast.

UPDATE: I just calculated my precise budget. I wasn’t far off the mark:

My budget:

  • Motors: PGSAW 12V 75-80RPM 50:1 x 2 = $243
  • Motor Driver: IBT-2 x 2 = $11
  • Power Supply: HP Server 12V 750W = ~$20
  • I got it free from a friend but you can get them for $20
  • Hall effect frictionless position sensors (10-pack) = ~$3
  • Magnets = ~$7
  • Arduino R3 clone = $10
  • Arduino Pro Micro clones x2 = $14.5
  • UCP202 Pillow Block Bearing x 4 (for U-joint) = $20
  • Rod Ends M12 x 4 = $15
  • Rods M12 x 25cm x 2 = $17
  • Bolts and nuts = ~$30 but I had them lying around so free for me
  • Lumber = ~$30 but I had some 2x4 and other scraps lying around as most people have.
  • Fighter-style swithch covers = $5
  • Large switches = ~$15
  • End switches = ~$4
  • Arduino Leonardo x2 = $16
  • Assorted Switches = ~$8
  • Assorted Buttons = ~$9
  • Potentiometers = ~$4
  • Power switches = ~$5
  • Bearings = $3
  • Encoders = $9

TOTAL: ~$430 in my case, but if you add PSU and lumber and bolts with nuts and washers it gets to $510. No taxes paid on any of that, in my case but pillowbox bearings, as most of the rest is Ali Express and motors are from Ebay (new).
I’m not counting old pedals which I already had, but I could just as easily make my own. Actually I am considering doing that and making pendular pedals would would feel much more realistic. Cost is really $10 (3 pots and Arduino Leonardo/Micro) plus some scrap wood and bungees, it’s just the design and making that’s a lot of work and I’m OK with Saitek for now
 Also not counting 3D printer plastic, but it’s so cheap it would amount to maybe $10 at the most, and if you have a 3D printer like I do, it’s probably just sitting there and would just spoil in a couple of years unless you print something


Roughly equivalent off-the-shelf rig budget (USD):

  • DOFReality H2 2DOF 2-motor motion platform (with shipping) = ~1730
  • Racing seat (basic) = ~$100
  • Thrustmaster pendular yoke (smaller travel and less rotation than mine) = $358
  • Honeycomb Bravo Throttle Quadrant = $250
    Thrust Reversers on it act as buttons! Also only one button on the lever. Mine are full range axes, and has both TO/GA and T/A disconnect buttons. I also have a better gear lever.
  • Logitech pedals = $170*
  • Thrustmaster HOTAS + Joystick with extension = $610
  • HOTAS Mounts = ~$180
  • Logitech G Pro Flight Switch Panel = $85
    I have more and better switches and better gear lever.
  • Logitech G Pro Flight Radio Panel = $150
    it has displays but in VR they aren’t usable
  • Logitech G Pro Flight Multi Panel (AP) = $130
    It has displays but in VR they aren’t usable, and finding buttons in VR would be virtually impossible. Mine are logically placed for easy tactile feedback.
  • Virpil Helicopter Collective controller = ~$450
    Mine isn’t as realistic, but has all same functionality. This is the cheapest collective controller I could find for comparison.

TOTAL: ~$4213 USD (not including taxes).

Now that unintentionally (honest!) came to almost precisely an order of magnitude larger than my budget! So for 10 times the money you can have a nicer-looking, more polished and possibly more reliable rig, on a more rigid metal frame (that can be a disadvantage from what I hear, as movements are too jarring) that’s more difficult to convert for each task, and in some ways has worse controllers, definitely less suited for using in VR blindly. Otherwise functionality is the same.

And how it looks is not important, as you can’t see it while flying in VR anyway! BTW I may be biased, but my rig doesn’t look half-bad, in a geeky-wire-exposed-rough-cut-visible-circuitry way. And while I haven’t tried the new Thrustmaster yoke, I doubt it feels as smooth and fluid and my yoke has longer travel - 24cm vs 21cm in theirs, and a larger rotation range: 180 degrees vs 150 degrees, and much larger pivot so it’s closer to the real one as it doesn’t rotate as much as it travels back and forth. And Thrustmaster has a kind of a soft center detent, mine doesn’t, which is much more realistic. You can’t feel the center with mine.

If you like to design and build your stuff and can enjoy building such a rig, it’s a no-brainer! Do it!

Note: this topic was automatically locked after some inactive period - click here for the current topic.

26 Likes

Looks great fun – do you take Dramamine ?

Brings back childhood memories !!!

LOL, yes I remember those
 Actually my rig can work with many games, thanks to FlyPT Mover software. I programmed a profile for Epic Rollercoasters, and that one is realy something. I can stomach 4 rides at best, then I feel sick. Most friends who tried can only handle one. The illusion of movement from motion cues in VR is so powerful, than despite knowing it’s a game, and mediocre graphics, you actually feel the sudden emptiness in your chest (whatever you call it, you know what I’m talking about), right when you start a huge drop on a rollercoaster, just like on a real thing. It surprised me how much real it feels in a physioloigical level. You know it’s not real, but your brain and your body think it is!

Frontier Elite, which was so much fun for a while, until the game got boring
 I added a thumbstick to HOTAS for controlling vertical and side trhrusters.

Hello Roman, thanks for the video! I have been collecting the hardware (motors, motor controllers, Arduino Uno R3 , potentiometers ) needed to assemble a 2dof similar to yours. I have followed your progress for quite some time and marvel at your ability to improvise, engineer and adapt your hardware to make it do just what you want it to do. I also plan to use FlyPT Mover and have to ask if you would ever consider sharing your configuration file. That part seems, to me, to be the most daunting aspect of making all of the parts come together in a usable form. Great job and looking forward to more video. Cheers

1 Like

That looks amazing! Can’t believe you only spent 400, thats so cool and really cheap!

1 Like

Thanks! The other thread with the first version was locked automatiacally for inactivity
 I’ll be happy to share my config file, however it only make sense for my exact geometry. It may be useful to see how I programmed stuff, but don’t try to connect it directly to your rig, or you may brake things
 If you are building the exact same geometry, measure and change your values. Let me know how to send you the file.

Cheap parts, wooden frame, 3D-printed everything I could. Lots of work though, but an extremely interesting project, and very satisfying result.

Simply amazing! I’m also building an 2dof motion platform. I can’t wait to try it. Keep up the good work :wink:

Btw, do you know if it’s too much complicated to use simtools? Thnx

Looks amazing. I wish I had the space for it.
I’ve spent many hours in full motion simulators and it sure adds immersion.
Great job!

From what I’ve seen it’s fairly simple. FlyPT is more complicated but much more powerful. Once you understand how it works, it’s not that complicated. And you can do all kinds of processing to inputs and outputs to mix and dial anything you like. I’m not sure you can mix processed inputs just the same way in the Simtools, and that lets me use surge and sway in my roll and pitch to a limited degree, and it adds a lot.

RIG GEOMETRY AND AXIS MAPPING EXPLANATION

VR doesn’t need 1:1 position mapping like non-VR motion rigs are trying to achieve. All you need is enough motion cues to trick your brain into feeling a proper movement.

So the main motion uses angular acceleration data instead of position data for roll and pitch. So you feel the acceleration into roll and pitch, which is sharper in the beginning of rolling and pitching, then fades as you are into roll and pitch, then very slowly (below your perception) rolls back to 0 position. That gives a very realistic sensation without using a lot of actual movement.

While this is the theory, I feel that it alone doesn’t give you a complete feeling of pitch and roll, so I mix in position data to - so if I bank while turning, the rig doesn’t return to 0, but it stays banked - so the more aggressive acceleration roll kick in first, but then as it fades, it returns to a modest slightly rolled position. That give me the best feeling of roll and turn.

Because COG and rotation point of the whole system (me + chair and rig) is not in the same point MY COG is, this imperfect geometry plays to my advantage when mixing in other DOFs to my 2DOF rig:

Let me illustrate with a 3D sketch I made to visualize my rig before building it:

  • Surge (baking/acceleration): my head and body doesn’t just rotate forward when pitching, it kind of moves up - forward - down, while rotating around the rig COG. So if you mix in surge and map/limit it to stop just before it starts to feel like pitching down, it then feels just like braking in the car, which is exactly what’s happening as you brake: your head rotates around your ■■■, which is strapped to a seat. So braking feels just like braking, despite not having a surge axis: your head and upper body snaps forward, then the backlash comes. Same with acceleration: you lean back than return. Really feels great, I don’t feel I need anything more for surge.

  • Heave (up/down): your backside is behind the rig COG, so if you mix in heave to pitch, it initially goes up or down, before it srarts to feel more like pitching, so I map/limit it to a very limited pitch range and this gives me motion cues for heave. Yes, a dedicated heave would feel better, but it’s quite complicated to do: it would mean I need much heavier motors/actuators as they would have to support and move all the weight of me+rig instead of just swiveling it around a u-joint, which holds by far most of the weight of the whole system. This skyrockets the cost. Just the motors would cost at least tree times more than my whole budget. These motion cues add some up/down feeling, that feel real enough to trick the brain so you don’t notice that you are not really moving that way.

  • Same with sway (sideways or yaw motion): a start of a roll feels more like sideways motion, because your head moves sideways a lot more than it swivels, at least in the beginning, if you don’t let it develop into a more pronounced roll. So it’s enough of a motion cue to get feedback on the yaw axis. As I use rudders I do feel being thrown around left and right. When I built my system, I planned to eventually add a third motor for sway, or rather “traction loss” as sim racers call it, as it pivots the back instead of moving the whole rig left/right. That’s what 3DOF systems have. That is still doable for my rig, but using just this mapping feels realistic enough that I just don’t feel that adding another $120 motor and a lot of work is actually worth it. The rig just feels so great that it’s way above my expectations already.

1 Like

This type of design is called a “compact design” - just look at Xsimulator what not compact designs look like :slight_smile: This barely takes more space than an office chair with you sitting in it. Well, a bit more, but not much at all. I have it ina tiny office room at my house, along with my main office chair (taken out for the video shoot). It stands at an angle behind it and the room is very small.

And here is the full video!

It’s 1 hour long, but you have chapters so you can skip to what you find interesting. It has a detailed control overview, short test flights in different configurations - Yoke + Throttles, Joystick + HOTAS Throttle, Cyclic + Collective (helicopter), and even an experimental hand tracking demo.

3 Likes

I updated the post with detailed budget calculation and a comparison to an equivalent 2DOF off-the-shelf setup.

Very interesting! Three questions:

How do you compensate chair motion (so you don‘t see it in the HMD)?
What program do you use to control the actuators?
How does it interface with the sim? Via SimConnect?

Superb ! I wish I could make or buy something like that.

I bet that would be great in racing sims as well
 Try Automobilista 2, it is excellent in VR.

1 Like

I don’t (yet). Because of limited range of motion you need for VR, Motion Compensation is not really needed. You can see some “head-bobbing” in VR but it feels kind of natural, as your head would go that way from the acting G-forces anyway. The motion is still more then enough, believe me, I had to tone it down from the max. But there is a new tool called OpenXR Motion Compensation, and it promises to finally get the MC to OpenXR. I’m testing the alpha. The last version had some jitter but hopefully once it’s corrected and smoothed out, it will work. MC already works, jitter just makes it unusable for now. FlyPT Motion software that controls the rig, can send out “virtual tracker” information for MC, you don’t even need a controller mounted on the rig. OpenXR MC read the data and compensates for movement. MC is not required, as I said, but it going to be a “nice to have” feature.

FlyPT Mover. Great piece of free software. It gets data from MSFS via SimConnect and you cna create all kinds of formulas and mix-ins you want. I use roll and pitch acceleration data + position data + create some “road noise” and “air noise” - subtle random movemends when on the ground or in the air, so it feels like you’re rolling o flying.
SMC3 Tools is used to calibrate the motors and generat custom Arduino firmware for interpreting signals from PC (FlyPT Mover) and translating it for motor driver control with rotational feedback from Hall sensors.

Yes. FlyPT Mover has a built-in module that connects fo MSFS and gets all kinds of relevant data for input. You can see how much data you get to use.
image
image
image

1 Like

Yes, actually most people on XSimulator forums build similar rigs for car racing. Haven’t tried it yet. But I programmed it for Epic Rollecoasters and it’s so much fun. Most people can only stomach one ride. I can do four, but then I get queasy too.

I didn’t invent any of this. But, I saw people building a lot of car racing sims (and a rare flight sim or two) on XSimulator forums (mostly Germans and Fins) with open-source software etc. They were very helpful with figuring out the geometry and configuration. And then I optimized the hell out of engineering, construction and added what I needed. To keep it low-budget I thought that I could do many things in a simpler and cheaper way, build frame from wood, ose my old IKEA chair, and build the controllers I really want the way I want them.

I wanted a yoke that converts to joystick. I saw the new Thrustmaster TCA and thought - pendular yoke is not just better than linear, but it’s much easier to make for pennies! Literally $15 worth of parts. You don’t need precise machining, linear bearings, expensive metalwork. Just a wooden plank, cheap rollerskate bearings, a couple of bolts, hall sensors, and some bungie cords. And some creative 3D printing. And it feels better than anything I ever had or saw. Larger travel than TCA yoke, better turn radius, larger pendulum, no central detent, and $15 instead of $350 USD. And converts to a (weird-looking) large-throw joystick! So now I already had a joystick. It calls for a HOTAS. And if I was designing and making my own HOTAS throttle, why not make it convertible to collective? The same potentiometer sends data for 2 separate axes. A metal pin restricts movement of the lever to upper range for throttle or lower range for collective, and lever can be grabbed on top as a throttle or on the shaft as a collective. Then each axis is calibrated separately for its range, and that’s it. There’s no twist handle, but there is a pot knob under my thumb (another axis) for very convenient RPM control if I ever need one. For the cost of parts of $10 USD I got a perfectly functional collective, while the cheapest one you could buy is $450 USD. Thanks to Arduino Leonardo and Pro Micro clones that are $7-$8 each I could program any peripherals I wanted. And MobiFlighht can do all the switches, encoders, buttons and pots I could ever want.

For those who want to build something similar: here’s my XSimulator thread with build process and all the advice from the gurus.

1 Like

thanks a lot! Very useful info.
You got me tempted


1 Like

It was scary to take it on this project, I don’t usua1lly build things on this scale. But it was the best decision I could have made with MSFS.