Inexpensive VR on your smartphone, that works!

For those of us who want to try flying in VR, but can not afford to buy a 1080ti + Oculus Rift right now, there’s a decent alternative! I’ve recently bought a 6″ Xiaomi Mi A2 smartphone (not just for VR, my previous phone have died), and of course, I decided to give it a try in my BoboVRZ4 headset.  This is a pretty average smartphone, quite an inexpensive one. Yet, the cool thing about it is, it has a nice and crisp 2160×1080 screen (which is good enough be able to read instruments in VR!).

Last time I’ve tried to use my phone as a VR headset, I used Nvidia Moonlight to stream my PC screen to it. This was rather painful because stuff like lens distortion correction needed to be done on the PC (usually with help of Reshade), and if the game didn’t support native split-screen VR mode, additional software was needed.

Now, there’s a far better option: iVRy software, that turns a phone into a Steam VR headset! It works, FPS is decent, everything is quite smooth. Lens distortion compensation is done on the phone automatically according to your headset profile. The cool thing is, this setup runs XPlane just fine on my humble  GTX970 (FXAA, High effects, Maximum objects, High textures) at around 30 FPS, which is rather comfortable.

Note, that screen scaling in iVRy should be off (important), and the headset should be calibrated physically (SUPER IMPORTANT!). To do it, close one eye and adjust the focus until another eye will see a perfectly crisp picture. Close this eye and open another one, it should also see perfectly crisp picture. If not, hold one focus knob in place, while turning the other (do not worry if you hear a cracking sound – that’s the slipping of a focus adjustment belt). Adjust focus until both eyes will see perfectly crisp picture. Again, this is really important!

I often see “Nah, a smartphone will make you nauseous” posts on the forums. Well, I’ve been flying with a flat screen and an ED tracker for quite a while and kinda got used to using my head as a joystick. If you will be using your head movements to provide a proper control input to turn your virtual head in the sim, rather than to notice and measure latency, there shouldn’t be any problems at all =)

3D mouse cursor works just fine in XPlane and can be shown/hidden with a joystick button.

Now, there are probably two most important things we need to fly:  maps/ charts, and xsquawkbox support in VR. For maps, the best plugin I have found so far is AviTab – it doesn’t cause noticeable FPS drop. You can assign a hotkey to show/hide it when needed. Sadly, Xsquawkbox does not support VR yet. There’s a Lua script for reading messages though. It seems a bit buggy to me and also requires FS economy (but you can comment out everything related to it so it will work without it).

Overall, its a very interesting experience. Flying in mountains with Ortho4XP in VR is really epic! The headset runs at decent FPS, and probably feels something like 70% as good as Rift, for a mere fraction of its price. It’s definitely worth trying!


Test flight of the latest upgrades in Dreamfoil 407

I have installed the same clutch pedal springs from LADA 2101 to pedals and made a short test flight of the upgraded hardware in X-Plane.


WOW, THAT NEW FORCE TRIM MODE IS AWESOME, SO ARE THE SPRINGS (like that, boldly, in caps)! Springs have actually added precision and made flying really comfortable. This short flight in a 407 probably felt like the best flight in it ever.

It really changes everything. I’ve been able to remove hands from the controls and pour myself some coke while flying the helicopter with pedals only.

I will need a couple of weeks to test mechanical strength of things, and if nothing breaks, will definitely recommend everyone to try a setup with springs!

A short video of landing:

Springs for a reinforced cyclic gimbal, new force trim mode!

I have finally been able to go to the local car parts shop and buy some springs for the gimbal. Here’s how it looks now:

Reinforced gimbal with springs!


I should start by saying it works just great. These springs are from some Lada’s clutch (i think they’re for the pedal), they are 55mm long when compressed and about 11mm wide. I am pretty sure any similar spring will work great, just pick one with light or moderate tension.

More (a lot more) below!

Continue reading “Springs for a reinforced cyclic gimbal, new force trim mode!”

Throttle quadrant released!

I have printed the quadrant, its parts seem to fit together quite well. I have also added firmware for it, for now, it supports 3 axes (3 more can be added easily).

Each slider has a reverse mode, programmed as a separate axis, so we can fly STOL aircraft =) This is the first version of the software, more features will follow. Let me know if you have ideas of useful functions for it!

Simchair MKIII universal throttle quadrant

Simchair MKIII universal throttle quadrant

I really like flying helicopters, but sometimes I just want to take that Cessna 172 for a ride. Sometimes, I like flying TF-51 in DCS.  Sometimes I fly STOL aircraft, and I know some of my friends love flying jets.

I have made a single prop GA control panel with three axes earlier, but that one only has 3 axes, and most of the times I am too lazy to go fetch it from the shelf and mount to the table. That’s why I decided to make something universal, that will fit the standard IKEA GUNDE chair frame, somewhere on top of the collective lever base. I want it to be connected and active simultaneously with other stuff at all times (I think we all can find a good use for some additional axes).

I also want it to be modular (stackable, from 1 to 6 axes, for now, tell me if you need more!), and I want full reverse support (there’s a problem with it usually). I don’t think it needs to resemble any particular aircraft, so it can stay universal =)

Here’s what I’ve come up with so far =)

Simchair MKIII universal throttle quadrant

It uses all of the standard potentiometer’s 300-degree travel range. Forty degrees of travel is reserved for reverse operation (various types of reverse will be supported in software), then there’s a small gap with a tactile detent, and the rest of its travel is used for main axes. I will start printing it soon and release it after I  check that parts fit together properly.

Stay tuned!

Strengthened gimbal first flight impressions

I have finally managed to build the gimbal, and even tried flying with it on Aerobatics Online Caucasus sever in DCS =)

I can say it’s great! For now, I’ve used rubber bands for stick centering, and they work pretty well. I noticed that I haven’t been using the software force trim function much during this flight. A lot of heli pilots were online, so I’ve had a great opportunity to put both the gimbal and pneumatic mod for the collective to a good test 😀

I am waiting for 50mm MAL16-50 pneumatic cylinders to arrive, hopefully with them installed the stick will feel perfect.  The collective pneumatic mod still holds together, I am beginning to think it’s really safe to use. A couple more weeks will show if I am wrong =) The new gimbal will be released tomorrow, if time permits, I will also be making a couple of videos about the new stuff soon.

Stay tuned!

Me leading a humble formation 😀
And following another ship, the gimbal has been performing great!
Feels fine when maneuvering in ground effect as well =)

Thoughts on MLX90333

After finally getting some long enough sleep I thought again on my failed attempts with a Melexis sensor. The sensor itself is quite precise and has some DSP onboard, so I tried it again with a spherical gimbal and noticed that depending on how close a magnet is to the sensor, it outputs not a circle, but a square, inclined to 45 degrees. I thought, “- what if I simply cut excess values and make it a square?”, and did just that. The idea behind it was that jitter of the point in a joystick tester sketch seemed minimal,  so the physical precision of the sensor looked like being enough to work well. As long as we have a 15 bit external ADC that powers our gimbal, we should still have something like 4096 points per axis even with this reduced range, which is plenty.

Now, if we use a disk magnet instead of a square one, unarrested twist axis is not an issue anymore, it doesn’t affect X and Y positions in a big way. So this design seems to be perfectly fine for vertical sticks, or sidesticks, and I think with a pneumatic mod it can be as good for everything else. Its beauty lies in its mechanical simplicity, only a few parts are needed, it can be quite small in size.

I think I will make, test and publish both versions so everyone will be able to choose something for himself =) There’s also a third version, the 608 and MLX based one, its fate will depend on a degree of success of the spherical bearing based one =)


Meanwhile, some progress on the 608 and SS495A based version:

Reinforced 608 and SS495A based gimbal
The gimbal itself is quite strong, it should be able to handle the load!)

Past-idle stop detent mark operation improvement for collective levers






I’ve made a few adjustments to collective levers building process recently, and after some testing, I think they are good enough to be used =)

When you attach throttle grips, turn resistors fully to the left and then just a bit to the right to avoid its physical deadzones (before it was “fully to the right”, so not much of an axis was left for past idle stop detent movement). In theory, this will allow for more precise throttle movements below idle-stop detent in DCS. In practice, it’s not that important right now, but may be useful for future updates.

I have adjusted master controller firmware for a larger axis range and added a new parameter to make it configurable:

#define COLL_HEAD_DCS_HUEY_COMPAT_MODE_BUTTON_HOLD 50 // how long to hold throttle up/down buttons, adjusted depending on idle stop axis range (smaller range- bigger hold time and vice versa)

I’ve also changed the default Huey head switch modes configuration so you will be able to assign DCS Huey switches in a scale way without reconfiguring them.

AB412 collective head switch configuration tutorial

I have fixed some switch operation related bugs today and decided to make a video to show how to configure a collective head to suit your needs. Different sims can require different switch setups, for example, DCS Huey uses 3 of 4 modes for its collective head.

There are 4 switch modes, to assign a switch or a button to one of them look its joystick button number in joy.cpl and add it to one of the following  arrays:

    • ab412_sw_mode_button_switches – push button mode – joystick button is pressed when you hold the switch, supports mode switch
    • ab412_sw_mode_toggle_switches – toggle switch mode – when the switch goes up, joystick button is pressed and released, when it goes back to the middle position – the button is pressed and released again (example : gear lever), ignores mode switch setting
    • ab412_sw_mode_selector_button_switches – maps a 3-way switch to 3 joystick buttons, one for “up” position, one for “down”, one for “middle”. Buttons are pressed when the switch is being held pressed. Example: landing light switch – up-hold-down.
    • ab412_sw_mode_selector_switches – same as the previous one, but joystick buttons are pressed and released. This is there in case someone needs it for something.

For first two types, you put buttons one by one to the array (one switch is 2 joystick buttons, so if the switch shows as buttons 3 and 4 in joy.cpl, you write both 3 and 4 to the corresponding array), for last two types you only write the lesser of two switch buttons (lets say a switch shows as buttons 14 and 15 in joy.cpl, then you only have to write 14). Do not forget to remove switch and button numbers from their previous mode array when you assign them to another mode.

If something needs more detailed explanation, or if you want some other interesting switch mode, please ask in comments!

Twin trottle collective improvements

While building the twin lever, I’ve decided to change the design of the throttle 1 frame p2 part to make throttle grips tension equal. The part now has a detent in it, that can also add some rigidness to the lever. If you’re building the twin lever, definitely use the new part! All updates are already on GitHub! I will be adding a similar part for the single throttle collective shortly.

Also made some fixes to AB412 head mods and software (added support for an extra mode switch)

Here’s how the latest version of the lever looks:

The new frame connector allows for backlash-free operation and easy mounting
This AB412 head version features two rotary side pots and a mode switch
Software idle stop positions are colored in black
The lever feels quite rigid, I like it!