[WIP] cheap DIY VR Control Box - 6 dual encoder / 8 button / 1 3-pos switch project

I’ve decided to design and make a simple and cheap DIY VR Control Box - 6 dual encoder / 8 button / 1 3-pos switch. The idea is simple: because we are still missing VR controllers and mouse control is especially excruciating with a rotary knobs of all kinds, we (or I, at the least) desperately need a convenient control that we can use without removing the HMD and breking the immersion, than can take care of most needed and frequently used rotary adjustments. Knobster looks good, but it’s more than $100 for a single controller. I can make one with 6 dual encoders, 8 buttons and a switch for about $25, and so can you!

I have built it with Arduino Mega 2650 Rev3 clone, that costs only $16, Chinese EC11 encoders ($4.64 for 10 encoders on Ali Express), and some 3D printing. Dual encoder mechanisms are based on edited FlightSimMaker models from Thingiverse. Knobs are inspired by G1000 so they are distinctly different by touch and you can feel what you are about to tweak. the box is very compact so you don’t have to feel around and is designed to fit next to the throttle quadrant so it’s easy to reach.

I’ve developed it on the wonderful MobiFlight software and so far it seems to work well. 3-position switch can be used as a “bank” switch. I can control almost anything I need for now. It’s limited only by my memory, so that I can remember the layouts and intuitively control everything what I need.


The project is completed, and VR Control Box is working fine! Just need some finishing programming touches, some more testing, and will publish the files soon.

Update 2:
See more detail and demo of operation of my box in my DIY motion platform video: DIY 2DOF Motion Platform for VR Flight Simulators - YouTube
More detail about the motion platform project here.

The trim wheel module that is attached to the throttle quadrant is also connected to the same box. It has rudder trim encoder at the bottom that activates only after pressing it in once. Until pressed, it acts as a magneto key rotator, so you can start the engine with it, and test magnetos. The box itself currently has 2 banks (with possibility of the third) activated by the 3-pos switch. Default bank has all the most-used functions in it. 2nd bank has rarely used NAV2/COM2/ADF radios and I run out of things to add there (or remember) for the third bank. There’s only so much you can remember and intuitively use in VR. 90% of the time I’ll be using the default bank.


Working Features:

  • COM/NAV radio tuning (central knob switches between COM/NAV, “swap” button next to the encoder under the thumb makes it active.
  • Transponder (default locked, click to advance positions 1 to 4 , rotate to adjust number)
  • Altimeter
  • Heading bug
  • VOR/OBS Course (both NAV1/NAV2)
  • Autopilot Heading, Course, Altitude, VS, with knob buttons doing sync etc. and thumb buttons triggering respective modes
  • G550/G1000/G3000 units are programmed separately, with seamless integration: nav, main, heading, altitude and map zoom rotary encoders work, including outer, inner, click and 5 thumb buttons Direct / FligghtPlan / Menu / Clr / Enter or PFD / MFD / NAV for TBM G3000.

Once I finish programming and testing everything I will publish all files on my website: Blender models, STL models for print, Software preset files and part list.

I finally got to see my CYOW airport in VR, and it is stunning! I hope MSFS VR is optimised much better soon, because I’m struggling with high-end 3080 / 3900X / 64Mb RAM/2Tb SSD system…


What a great project. Exactly what I’ve been looking for! Can’t you put it as a diy kit for sale on your website?

I don’t think it’s worth selling it as a kit. It takes hours and hours to print everything, and the whole effort to get the parts, assemble the kit and make sure all the printed parts are solid and with all the junk taken off, and everything fits together well - it takes a lot of time. To compensate for that time, the price would be significant, but what you’d be getting is still a DIY quality. The whole idea is a DIY cheap solution - and it won’t be cheap at all, defeating the purpose. Plus I use some else’s models (edited) for dual encoder assembly and MobiFlight as a software. But I will publish all the files. For anyone willing to deal with soldering and DIY stuff it will be easy. 3D print can be ordered somewhere if you don’t have a printer.

1 Like

Ok cool, I’ll keep an eye on the thread as it progresses. I got a printer and soldering skills so let me know when you have published stuff to try.

1 Like

I have a 3D printer, a passion for cheap solutions, and an AliExpress account…I’m following!!! This is just what I need👍


While I admire these sorts of DIY projects like crazy, this is why I usually stick with off-the-shelf stuff as much as possible. The amount of time that goes into making something that still doesn’t have tolerances nearly as tight as commercially produced gear makes the whole venture questionable. Now, if you DIY because you just like to DIY, that’s totally valid.

First, I love doing DIY projects, 3D printing, Arduino and Flightsim related stuff :slight_smile:
Second, I’m not aware of any commercially available alternatives for VR-oriented flight-sim controllers. Knobster is just one dual encoder, without any enclosure or mount. You still need to rig something for mounting it. And only having one defeats the purpose of controlling things without using a mouse to the extent that it’s possible. And it’s a whopping 100 Euro for a single knob. Even if you get several, you won’t be able to distinguish them by touch. Available flight panel rigs and systems are irrelevant for VR as you can’t see what you’re doing, so they are both expensive and unusable. Plus, I’m not prepared to spend hundreds of dollars on a small optional thingie I can make myself. New PC upgrade, VR etc. is expensive enough.

And again - I see no alternatives whatsoever, commercial or not. I want something compact and feature-rich, that can be easily operated by touch, without looking, while in VR, and control most or all knobs in the cockpit (and some related buttons). And that it would remain useful when VR controllers are implemented in MSFS. I don’t think something like that exists, so your point is moot. If it does - let me know, I’d be interested to know how others approached the same goal.

1 Like

I am so confused. I was just concurring with your response to the person asking if you’d be willing to sell it as a kit where you stated it wouldn’t be worth selling as a kit. In response to me agreeing with what you said, you said “my point is moot”. Okay.

To be clear, your DIY project is awesome, 10/10. It’s just that with the time involved, it works out to a little more than the few bucks here and there you spend on resin and arduinos.

Perhaps I wasn’t clear enough, or did I misunderstood your point? What I meant that doing this takes quite some time, so selling the kit for any reasonable price is not worth it for me or potential buyers. As a DIY project of course it’s worth it, because I’m making something that’s not available at all.

Now, your point, as I understood it, is that you “stick to off-the-shelf stuff”. But there is no “off-the-shelf stuff” that does what my little box does. That is why your point is moot, isn’t it?

It would be valid if my project was a knock-off of commercially available interface, though I’d still probably do it to save the cost. If a single dual encoder costs $100 Euro, 6 of them plus all the buttons would probably cost $400+ for sure, knowing what prices are for those panels… But even if you have money to burn, you can’t get one, can you? Maybe you can, and I just don’t know it? Again, I’d like you to tell me the “off-the-shelf stuff” that you can stick to that does similar thing :slight_smile: I don’t claim to know everything…

made 2 boxs, then messed with Joystick Gremlin, now I have more buttons and switches than I care to assign lol

1 Like

I feel like my reply is being analyzed a little more intensely than I would have anticipated. I guess all I was saying is that if I creatively make do with off-the-shelf stuff, then I can spend more time flying and less time soldering.

I should probably not bite on this one, but you just set me up too well :joy: You’ve basically made my point for me with this sentence. You and I just have different views of opportunity cost. You’re saying your DIY project would be “unreasonable” if the parts and labor were quantified. All I’m doing is agreeing with this. I think you’re operating under the mindset that your time is worth nothing if you do something for yourself. Which, to be honest, is fine too as long as you recognize that you’re doing something because you’re passionate about it. You just can’t say “look how much money I saved by doing this myself” and then in the next breath say “no, I can’t sell them because there’s no way I could do it for a reasonable price”.

Again, I’m not sure we actually disagree about much, if anything. 10/10 buttons and knobs, wish I had some next to my yoke. (Though I seem to get by with my Honeycomb Bravo + Logitech radio panel) :slight_smile:

Yes, it really seems that we actually don’t disagree on anything significant. True, I would only do this because I like soldering and a challenge, and making something that will bring me more joy while flying because I made it myself. I’d love to share it with the world for free, but it’s not worth the time to sell it. I can make money more efficiently in other ways.

The Logitech readio panel is nice, but it also illustrates my point: it’s built for pancake fluing, not for VR. Encoders are not dual, they are single, and rotary switches on the left are too far and not at all VR-friendly. My VR Control Box is both more realistic (as real-life dual encoders), tactile (different knobs are distinctly differnt by touch, so you’re know what youa re about to change - heading, course, altimeter or radios) and doesn’t cost $200. But yes, it takes many hours to build it, especially the first time as I’m doing by trial and error.

But I just had a short test flight in PA-28 in Italian alps and it was awesome! I could operate heading, autopilot, radios, GPS etc. effortlessly and without overthinking it, and without touching my mouse. And it will get better when I have all the encoders and won’t have to operate the bank switch much, if at all. The switch will be relegated to handling ADF radio, COM2/NAV2 and radio volumes - basically features that are rarely needed. Everything else would be accessible directly. Dual encoders are really cool.


Boy, that is a LOT of switches… Cool boxes though!

Do you have a link to 10 dual encoders for less that ten bucks please? A search didn’t reveal anything like that pricig.


  • Transponder (click to advance positions, rotate to adjust number)

What EVENT ID’S are you using for this?



I think you misread me, one of the cool things about this project that with 3D printed geared mechanism I can convert a pair of dirt-cheap single encoders into one dual encoder, and I will use 6 of these. I only had 6 single encoders lying around, so now I have 2 functional dual encoders and 2 single encoders in the box. I have ordered these: 10PCS Half / Plum axis rotary encoder, handle length 15mm / 20mm code switch/ EC11 / digital potentiometer with switch 5Pin|Integrated Circuits| - AliExpress - Less than $5 for 10 single encoders, and when I get those I will have 6 DIY dual encoders in my box. The feel is just a bit loose, as there have to be tolerances for 3D printed parts to rotate freely. So they are not as tight as factory dual encoders, I presume. But they have an unmistakably clickly feel and they work just fine. Depending on your printer, you can try to print with tighter tolerances.

I am using free FSUIPC address to store a variable (0 to 3), and this variable is changed via encoder click, and then used as a condition to fire one of the four standard events for the encoder rotation.

Ah I see,

Thanks for clarifying

Hi RomanDesign,
it looks very good. I am buildung a similiar design, also using Mobiflight.

Unfortenutely I couldn’t find the events for zooming the map, or are these offsets? Could you please give me a hint?
Thanks and regards

I’m sending 3 “inputs” in MSFS Events to cover different GPS units:

  1. Group G1000 MFD: AS1000_MFD_RANGE_DEC (and INC)
  2. Group GNS 530: AS530_RNG_Dezoom (and zoom)
  3. Group GTX 580 TBM: AS300_TSC_Horizontal_BottomKnob_Small_INC (and DEC) - that works only when it’s on MFD mode, I think when it should.
    I think together they cover most of the zooming on different planes.