DIY cockpits - which interfaces and boards work for MS2020?

Hi, your cockpit is really wonderful! I like it very much.
Boys, with 10 Arduino Mega you can do a LOT of things… it seems a good number even for full cockpits.
What do you use for your displays? Air Manager ?
I haven’t started testing it, but I must do that soon.

Thanks for this info. Today I changed the degree for the flaps and its much better. I also trialed a button to turn on Autopilot and was so excited when it worked. Actually I have been very lucky its working with UNo as Sebastian says in his Mobiflight videos. When I make something better I will post it!!! Thanks.

Hi, glad it worked, the comparison and interpolation functions in Mobiflight are extremely well done and powerful, so if you adjust them and fine-tune the values, you can obtain a really perfect result.
The autopilot seems to have some issues, It suddendly looses the control of the plane (I noticed this on different planes, for sure on Citation Longitude and on others) and on Longitude I could not make the Approach mode to work… but I hope that sooner or later there will be at least one of the planes fully working… maybe with patch 14…!
But never give up, keep on extending your cockpit controls!

Thanks! The displays are small touchscreen monitors which i drag the pfd/mfd windows onto.

I use Leo Bodnar cards for the interface between the cockpit and the sim. These are really easy to use and msfs recognises them straight away as joystick interfaces. So all i had to do was allocate the switches . FSUIPC7 has helped to find sim events that I couldn’t find in the joystick assignment screens of msfs.

Do you mean that you drag the gauges on a secondary monitor connected to the main PC ?
I have read that the gauges are not interactive when you drag them out of the VC, is tis wrong ?
I would really like to know how you set up your monitor configuration to obtain MSFS on one screen and the gauges on so many other screens, sorry but I can’t figure it out…
Do you use Nvidia GPU ?
Thanks for your help…

1 Like

I have used the Nvidia surround option in the Nvidia control panel to setup my two main screens. Then under “displays” i have positioned my two smaller touchscreen monitors under the main display .The touchscreens work well, i can operate the pfd/mfd soft buttons (in FSX) by touching the screens. For the bezels of the pfd/mfd i have my own custom switches and knobs built into my cockpit. There are no soft buttons in the Cessna Longitude but i have mapped all i need to fly with the exeption of the bus tie switch and the mfd map range.

To drag the pfd/mfd screens onto separate monitors use the “alt gr” key on the keyboard whilst clicking your mouse on the screen. It will detach so you can then drag it across.

1 Like

Thanks!
So all your monitors are connected to the main PC GPU I understand.
Are all displaying the simulator I think, so you can drag the displays on the secondary screens, but this requires probably a very high vertical resolution.
I have a 2080 RTX super, I’ll try to set multiple monitors and see if the GPU still can run MSFS smoothly as it is doing now…!

Amazing home cockpit, congratulations. Do you have a video with MSFS 2020?

Not yet. I have it working reasonably well with MSFS. I will get round to a video soon. Thanks for your comments.

1 Like

Slowly learning how Arduino works. Just made my mini cockpit with three rotary encoders and two push buttons. The left controls AP-IAS , the middle Altitude and the right VS. I successfully flew A320 and TBM several times. MSFS felt so different with just these. The only concern is, Arduino Pins are limited and have no knowledge how to put more stuff.

2 Likes

Hi, what interface do you use for making arduino to talk to MSFS ?
You don’t mention this, but is very important in order to give you some hints on how to expand your hardware. I am currently using Mobiflight (free) and with it you can connect multiple Arduino (or clone) boards, but they must be preferably MEGA (someone had also UNO working, not me unfortunately).
I use 3 Elegoo Mega, and I have plenty of pins for all possible functions!
Mobiflight is surely worth a test, because is so easy to configure and works very well.
You can also use directly the arduino ide and write your own code, using the serial port to communicate to MSFS using lua or python on the PC side, I also tested this option but it requires a lot of programming and with the increasing amount of items to control it gets more complicated; on the other hand you have more freedom to configure everything as you like.
Sending an identifier inside the messages on the serial port, you can use multiple boards, on the other side the code has to read and parse the messages according to this identification code.
And I agree : the more controls you have “outside of the screen” the more realistic and pleasurable is to fly, even if the virtual cockpits are so well done in MSFS 2020!

1 Like

Mobiflight transform function: GREAT!
I just discovered the powerful capabilities of the “transform” function available on Mobiflight.
Using up to 6 other variables, you can combine a really powerful function to set the output to different values according to multiple “if” conditions, or multiplying values, adding, etc, all inside the configuration window for each variable you select.
With this function I made all my annunciators to turn off when the battery power is off (or no voltage on main bus) and then - turning on battery again - all annunciators get back to their previous state.
You have to use $ as the current variable, and other characters for up to 6 variables, eg.
if I select “battery_on” as reference value assigned to the symbol “#”, I can simply write on the transform row: $ * # so when the variable ($) is 1 it lights up the annunciator only if also the battery_on (#) is 1.
Very easy and works even if you use the status of a lever or a switch to control the annunciator (not all the variables are influenced directly by the battery status!)

1 Like

Thanks for this detailed information.

It was me, a few forum posts before, who used Arduino UNO with Mobiflight and successfully made the flaps and a button to work. But suddenly Mobiflight failed to recognize my UNO and kept on going through the cycle of “Uploading Firmware”–>“Firmware Loaded Successfully”–>But in the Settings there was no device and everything was greyed out. Then I thought, probably its the UNO (like Sebastion says it can be unpredictable although it has a firmware) so I ordered Mega and is still on its way. I went to Mobiflight forum and found out that other Mega users are having the same issue with the current Mobiflight 7.10 version (older versions are fine). Which version are you using?

Because of these issues, I have temporarily changed to HID-Project Library for Arduino IDE to help it. I use Arduino Leonardo (UNO is not supported by HID-Project). It makes, I am sure you already know, the device as a gamepad which window recognises and is the interface between Arduino and MSFS2020. Its easy but as you said :

and I have found this to be true. It does get irritating.
I will not expand my cockpit anymore till I get the MEGA and try Mobiflight again. As I am very new to it I may ask you for help if I get stuck.
Thanks again and will keep posting updates.

1 Like

With the transform function I also added the lights test function.
Assigning letter B to “battery_on” reference configuration and letter T to “ann_test_on” reference I simply combined these values to each annunciator variable (identified with $).
here is the transform function:
if ( T = 1, 1, $ * B)
so if Test on then the output is 1, else it is $ (whaterver it has to be 1 or 0) * Battery_on
so if battery_on is 0 then the output will be 0.
To be more accurate also if T=1 should be not 1 but 1*B (if the power is off the test won’t light up annunciators!)

Hey, this is exactly how i started some time ago. But then i overdid it by being a bit too ambitious with the displays. Now my main activity is not FS anymore, it is writting arduino code :smiley: One advice i can give you: Even when the MEGA arrives, make sure you do not put too much load on the processor. The rotary encoders require a lot of attention otherwise the get imprecise. But as long as you are not running displays together with them like me, you should be fine.

1 Like

Encoders and those devices that needs real time monitoring should be handled in interrupts. In that way the other software tasks won’t affect them.
This is another reason why I would like to be free to chose the correct microcontroller for each application and not be stuck on a generic Arduino platform… but I won’t start again :smiley:

Which is a good one? I made it work with the interrupts on the Mega which is quite a pain when you run out of the regular ones.

I use Microchip, I don’t like Atmel at all. Sorry, can’t help here. I had my rant already on why the communication protocol is not described anywhere so people can develop the hardware part on the platform they prefer, but it was not a shared idea, so I won’t annoy everyone again by restarting the discussion :slight_smile:

Hi, fortunately all my encoders are inside the MCP that is based on Opencockpit hardware and SIOC, and on the radios, also OC, and I have to say that they work very well.
Currently I have only one arduino Mega for all the annunciators, switches and stepper gauges of my overhead, the Mega is completely saturated, but still seems to work fine.
Nevertheless I am planning to add a second Mega in order to subdivide the controls of the overhead, so I can have, eg. separated switches for fuel pump 1a and 1b, 2a - 2b and relative low pressure annunciators (currently both pumps are controlled by a single switch, so I have only 3 switches and 3 annunciators independent, and the others are coupled)
I was pretty suprised when I discovered that the stepper were still working smoothly and fast, I was expecting problems for the overload of the board, but all works well.

As long as they are interrupt driven, they should be fast unless things get really ugly.