MobiFlight Community Support

Welcome to the forum for MobiFlight! Feel free to reach out to the community in case you have questions, issues or just want to share great ideas or details about your latest home cockpit project.

You like MobiFlight? Donate via PayPal and support the MobiFlight development. Thanks! 

icon
Avatar
jletrasi
Posts: 4
Dear MobiFlight team,

First of all, congratulations for this project. Looks very interesting.

I am preparing to build a FS at home and I am looking for projects equivalent to yours.
My main specification problems/questions so far using MobiFlight are:

1 - Small number of digital IOs available using Arduino Mega. Is there a way (or foreseen) to have multiplexed IOs or IO matrix?

2 - I have these LCD displays: 4x5digit + 3x3digit + 1x4digit and I was planning to use 74HC595 but your documentation imposes the usage of MAX7219 (ideal for 8 digit display). Could MobiFlight support 74HC595 or do you propose any other solution for 3, 4 and 5 digit (static) solution?

3 - I have a rotary selector switch with 6 positions (OFF, COM1, COM2, NAV1, NAV2, ADF) and two 7-segment displays (5 digits) for ACTIVE and STANDBY.
The goal is to activate a given COM/NAV with the selector and then, using a single encoder, operate the corresponding frequencies.
The encoder has an integrated switch I would like to use for swapping between MHz and KHz and there is another push button to be used to swap between ACTIVE and STANDBY.
Is MobiFlight capable of such functionality?

thank you very much for your help.

best regards
Joao
2018-05-24 09:06
Avatar
StephanHo
From: EDDG, Germany
Posts: 1785
Supporter
Hi Joao

First of all, welcome to MobiFlight!

To your questions:

1. No. As far as I know, it is not planned (at the moment) to support multiplexed IOs or an IO matrix.

2. You write about LCD displays. Surely you mean LED displays. Again, there is currently no way (or planned) to integrate the 74HC595 can.
It is true that MF only supports the MAX7219. The MAX7219 supports up to 8 digits per board for one LED display. How these digits are split up, the user determines. The 8 digits do not necessarily have to be assigned to a logical display unit. So you can easily represent any digit sequence. Another advantage is that you can integrate up to 8 MAX7219 boards in a DaisyChain. That would be 64 individual digits. Up to four of these DaisyChains can be connected per MEGA, so that a maximum of 256 digits per MEGA are possible. These four chains would occupy only 12 I / O pins.
If you want to buy MAX7219 boards, please note that you take boards where the digits are pluggable. This has the advantage that the digits can be installed remotely from the board. You also have the option to use completely different display tubes (color, size, etc.) and thus have greater flexibility.

3. Without having any experience in this regard, I would nevertheless like to claim that MF is capable of realizing such constellations as described by you. That may not be easy, but it should work. I think, in this regard, Pizman will comment on this, which is much deeper in the matter than me.

I hope to have helped you with this information a little bit first.
Grüße,
Stephan (Time: UTC+1)
2018-05-24 11:55
Avatar
jletrasi
Posts: 4
Hi Stephan,

Thank you for your clear and detailed answer.
Sorry about the typo: You are right, I mean LED and not LCD :)

I will wait then for Pizman's answer and I will look to MAX7219 boards allowing deported LED display wiring. So far, the ones I found had the displays integrated...I'll continue my research.

Best regards
Joao
2018-05-25 10:45
Avatar
StephanHo
From: EDDG, Germany
Posts: 1785
Supporter
Hi Joao,

I do not know where you live, but try ebay.com and search for MAX7219 8DIGIT and looki for the green PCBs. That are mostly the ones with the pluggable Tubes. Costs ~2€/each.
Grüße,
Stephan (Time: UTC+1)
2018-05-25 12:18
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 4989
Supporter
Hi

About your reqests....
As Stephan said..
Multiplex Matrix is not planed as i know cause there is no limit of used Mega Boards.... If You need 2000 Buttons then simply use 40 Mega Boards ! ( Cheap chinese boards maby)

Also a support of other Displaydrivers is not primary on target..... Again as Stephan said.... With Max7219 there is no problem if you use self designed Displays instead of the Red 8 Diggit Blocks..... Then all optics and combinations are possible.
Additional we think a cockpit project will include finaly 10, 20 or much more Arduinos..... You can set 32 Max Chips on ONE Arduino. So Splitting is finaly not needed. I Personaly plan to use simply ONE MaxChip for ONE Display ( Whatever it only have 3 diggits .... then i simply not use the other 5 possible slots..... So i will need some more MaxChips.... But save a lot of time with wireing and difficult configuration in Software ! )

****

About the Max Tubes with plugged Displays..... Look here ( German Link but just for information)
This are Fixed ones.... https://www.amazon.de/Ecloud-Shop%C2%AE-MAX7219-8-Bit-Digital-Display-Unterst%C3%BCtzung-IO-Port-Steuermodul/dp/B017CWSO2E/ref=pd_lpo_vtph_lp_img_3?_encoding=UTF8&psc=1&refRID=68MQ2Q5AZ21E0J7TK2ZT
-----------------
and This are Plugged .... https://www.amazon.de/8-Digit-Display-MAX7219-Digital-Control/dp/B00P9277BE

****
About Last question ....

YES.
In current Version this is all possible.... BUT it is a bit difficult cause it is not possible at the moment to "see" a Position of a Real switch all the time. Mobiflight see only a changing of status.
That means....
1: At Systemstart your rotary switch must be in a Basic Position (Startup State) OR you must use the "Sync Tool" from Mobiflight to set the Sim to same function like your switch at beginning. Otherwise the switch "can" have wrong position at startup .... BUT after one detent turning it is working perect too.
So think about what you want.... Startup State or Sync function or Turning one time ..... Your choice !

2. It is also not possible at the moment to say something like " IF Switch is at COM1 THEN Do something ( like encoder should controll Com1 or Display should show it)
Again we can not read the switch position ..... BUT: We can use a Offset ( Custom range) and we Write it with a value that represent the switch position.
Simply Explaned... We say your rotary switch should write the Offset to 1 if Com1 is sellected... to 2 if Com 2 is selected and so on.....
THEN we can use THIS Offset as indicator .... For Example IF Offset =1 then show COM1 Data on Display..... Or If Offset =1 then Encoder should change Com1.

Summary:
In a future Version this should be much more comfortable.... I already send a concept to Sebastian . But i don´t know if he will build it or when it will be finished.
So You can do what you request already today....... Whatever it is a bit advanced at the moment !

Have Fun !
Good Luck !
2018-05-29 07:04
Avatar
jletrasi
Posts: 4
Hi,

First, thank you all for your answers.
Second, I apologize for my recent post about the same subject...didn't see all your answers before posting it.

I have some knowledge about programming and I was wondering if your project would allow me to write my own code for the arduino, keeping the 'automatic acquisition' of codes from the simulator (FSX for instance). Is this feasible? Do you have some examples you could share?

thank you in advance
regards
2018-08-30 17:52
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 4989
Supporter
:-)

Bad Luck ..... I Open this topic AFTER the other.... So i write again the same stuff like some months before.

Whatever. I Think your main problem is solved. Simply try out. If you have problems in the logic request for more help !
Good Luck !
2018-08-31 16:23
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 4989
Supporter
Additional Note:

iconjletrasi:


I have some knowledge about programming and I was wondering if your project would allow me to write my own code for the arduino, keeping the 'automatic acquisition' of codes from the simulator (FSX for instance). Is this feasible? Do you have some examples you could share?



If you have programming skills you can make this much more easy !

As i told.... the Problem is you like to Display and controll 5 different things with the same Hardware..... ( So 1 Button, One Encoder and 2 Displays )

Mobiflight can use the "Custom Offset" that select the active Mode ( Com1 for example) and then "tell" all the devices they should work with Com1 at the moment.
That why i told you you need for every mode a own set of Configs.... Cause if Com1 is active we must tell for example the Display it should read now the Com1 Data.

If you can programm yourself own code you can make it more easy.... Use the LUA Scripting in FSUIPC !

Here you can for example make a script that Read COM1 COM2 NAV1 NAV2 and DME AND also read the Custom Offset we write with Mobiflight,
NOW Say the Script should Support the needed Data (Whatever the Value of our Custom Offset is at the moment) and should WRITE it to another FREE Offset.
((If Custom Offset is for example "1" it will write COM1 Data to Offset xyz ..... If Value is "2" it write COM2 Data to Offset xyz and so on.... ))

Result; NOW We need in Mobiflight not 5 different Configs for each Display.... Cause now we just show the Value of "Offset xyz" ... And YOUR Programm will internal write the correct data to this offset instead of Mobiflight !

Same will work also for Swap Button or for the Encoders....

Summary.... It will work with Mobiflight.... But you can make it much faster and easyer if you can write your own script for example in LUA .
Good Luck !
2018-08-31 21:04
icon