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! 

05/03/2024 - This forum is read-only

The community support for MobiFlight has moved exclusively over to our Discord server. Register for free and enjoy more interactive functions like image and video upload, voice chat. More than 7,000 registered users around the world make it a great experience!

See you on our MobiFlight Community Discord server.

A HUGE Thank You to everyone who participated in the forum, especially obviously to Pizman and Stephan who did an outstanding job over so many years providing an incredible service to the MobiFlight community.

The forum is still providing a lot of good content, hence we keep this information accessible.

icon
Avatar
lonelyoutpost
Posts: 4
Hi

I'm fairly new to MobiFlight but have had quite a lot of success so far getting the encoders, buttons and displays working on my 737 comms panel. But now I have a problem which is confusing me.

I have six 5-digit displays attached to one Arduino using six MAX7219 chips (rather than MAX7219 modules). I can write a simple script in the Arduino IDE to control all six displays perfectly. But when I upload the MobiFlight firmware and try to configure the displays I can only get 4 of the 6 to work. The other 2 displays behave unpredicably, sometimes showing nothing, sometimes showing all 8s and sometimes showing nonsense.

I've been trying to make sense of this for 24 hours but my electronics knowledge is fairly basic. Can anyone point me in the right direction?

Thanks,

Matt
2020-04-09 12:44
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
How do you set the Displays ??

All 6 as a Chain ( One Device) or each as a single Device with 3 own data lines ?

Limit per arduino are 4 Max7219 Devices .... And each Device can be chained up to 8 Displays.


Normaly "8888888" or stupid non logical Segements are a indice for a electrical porlbem .... mostly on Input Side.
Maby your Own written code will Reset the Displaya when you startup your sketch..... In Mobiflight the Displays are initiallised at Power Up of Arduino for 1 time.... ( Indipendent whatever Mobilfight is running or not) If now something get wrong like touching a wire and there is a loss of connection for a millisecond then the Displays is Unsync and no longer work.
Instead of maby your sektch the only way to solve this with Mobiflight Boards is to unpower the Board.... After new Powerup the Display get initiallised again !

Normaly this is no Problem in your final cockpit cause here all Lines for Displays are solder..... then there can be no connection problem anymore. This happen mostly in testing and building process only.


Another fact is the Power Managment. Premade Max7219 tubes include a Diode that reduce Power level..... If you builod chains then All Displays behind position 3 in the chain won´t work. Here its recommend to remove the Diode or to wire each display directly to 5v.
Get sure in your Sytem there are 5v on each Input 5V Pin !
Good Luck !
2020-04-09 17:23
Avatar
lonelyoutpost
Posts: 4
Thanks for taking the time to share your knowledge. It's really helpful.

For simplicity I set up one Max7219 for each 5 digit display. I need 6 displays, so I was trying to use one Arduino with 6 chips using 3 data lines each

I understand now that the Arduino is only guaranteed to work with 4 Max7219 chips directly. It did work for all 6 when I tested the wiring using my own Arduino sketch but I was only selecting one chip at a time which may explain my success.

I do have some alternatives. There is another Arduino in the pedestal. I could use that but it will make the wiring messy. Or I could use the 3 spare digits from the 4 working Max7219s to give me 12 extra digits. But that would be a challenge to configure in MobiFlight!

So is it ok if I daisy-chain 6 chips instead? Rather than having their own data lines? When you say I can chain up to 8 displays do you mean 8 7-segment displays or 8 x 5-digit 7 segment displays?

Thanks,

Matt
2020-04-10 09:05
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Hi again

Daisy Chain means Chips! So you can wire up to 8 Max Chips in a Row. Each Chip can handle up zu 8 Segment Diggits.
4 Devices on Mega .... Each Device can include 1-8 Max Chips .... Each Chip can handle 1-8 Diggits ..... so 4*8 = 32 Chips per Board ... 32*8= 256 Digits per Board.


Here you just need to take care about the Power.... As written in my last posting..... Each Max Chip need 5v. If you use the premade Tubes you must resolder the diode OR you must bypass the 5v Line. The other 4 Lines ( CS,CLK,DIN,GRD) can be chained from Chip to Chip without problems!
If you setup the raw chips yourself (no tubes) then you can simply plan without that diode already.

Last Note:
Whatever it is possible to set all your 6 Displays in a Chain.... I personaly would recommend to split them . (conservative planing)
I would use 3 Chains with 2 Diplays each instead of 1 Chain with 6 Displays!
Alternate if you still need more Arduinos is to use 2 Displays on another MEGA.... Your Choice !
Good Luck !
2020-04-10 11:46
Avatar
lonelyoutpost
Posts: 4
Thank you very much. This is immensely helpful. I will start daisy chaining them instead.

Once again, thanks for taking the time to share your knowledge.

Best wishes,

Matt
2020-04-10 12:00
icon