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
spokes2112
Posts: 6
Hi,
Wondering if it is possible to display certain characters in a 7 segment using the 7219.
Currently displaying a "‗" ( segments D & G) through a diode bridge triggered by the decimal point. (slightly dimmer 0.7 vdrop w/ normal D&G, a 1.4 vdrop when triggered by DP)
In the future would like to display other characters in a 7 segment because finding a proper 14/16 segment display "in stock" is nearly impossible.
Reference - 7219 data sheet, pages 7 & 8. "Decode-Mode Register" - https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf
A possibility for the future? On the display tab include 8 checkboxes for code B decode? That would be great!

Maybe I have it all wrong. Does this have anything to do with the BCD setting in base settings, FSUIPC tab?

One last thing - I am having problems with communications getting lost between MF software and the arduino. (FSUIPC polling all good)
Display becomes "10000000" - hmm i wonder?
This only happens when using 7219 driven displays, using basic leds / switches etc.. does not happen.
This can happen in a few seconds or minutes - not consistent.
Searched the forum and tried erasing the EEPROM & reloading etc.. No go.. I don't have an extra Arduino so a swap is not an option.
Resoldered all the L/R pin headers on the module too.. No change.
Even tried - <PowerSavingTime>60000</PowerSavingTime> in the *.mfmc file.
Maybe because the hardware is from a certain country? :-/
Any other clues?
Going to try a repeating FSUIPC offset change/update through a lua and have a MF config set up to listen for it. Fingers crossed.

Thank you so much for this software! Really enjoyable creating things, testing etc. using it.
Once the "plastic" recovers after these past holidays, a donation will be forthcoming.

Regards,
Roman
2020-01-15 10:21
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3527
Supporter
Hi

About the issue:
Not know a simmular bug report...... Mostly Displays who show "8888 8888" are indice for a wrong wire setup or broke solder points.
But "1000 0000" makes no sense to me.

Please Confirm bug is permanent if it happen..... OR does Display work again fine if you simply "change" the Value by one Step.
For Example..... Display should show "Com1 Frequency" 123,45 ..... Then it change by BUG to 100.00 ..... Does it work again if you change frequency so a new value is send ?
If YES then this is a software problem i think..... If Display is freeze completly i think the Max Chip and one of its interna Registers is broke. (I think this is the reason)

To solve.... You not need to swap Mega Board..... But maby you can test another Max7219..... If i´m right then problem is located only to a specific MaxTube that is simply broke.

*****

About Suggetion:
Basicly i Agree..... A way to choose between CodeB and "Bitwise Set" would be wonderfull.... Whatever i not figure out a good way to implement this in our GUI.
If you got a concept for a good and easy Grafic Interface..... Show us a example in BitBucket Page or via Email to Sebastian.

Additional Info.....
At the moment the important question for us is..... MUST this Diggit show only that Symbol (Special Sequence of Segments)... And in all other cases it is blanked . OR Should this Diggit show in other cases "normal" Numbers 0-9 or maby another Symbol ??

If a Display is only need to show ONE Thing like "A" and nothing else then we can today also use 14 Seg Displays e.g. Cause here we simply wire the needed Segments with a resistor to a regulary Pin and define a LED Output.
If "A" must be shown a Output Config (LED) is simply "1" .... If Blank it is "0" . Aslong "1" there is Power on the Pin and our Wires ( through resistor) power the needed segments.
Alternate you can use a Max7219 Chip too..... In that case you will show a "8" on the Display ( All Segments are powerd) but you just wire the needed Segments to the Display..... So for example only | | is light.

Note: This only work for SINGLE Diggits..... If you use a Block with more Diggits then that will not work cause here all Seg Lines are combined.
Good Luck !
2020-01-15 11:22
Avatar
spokes2112
Posts: 6
"Good Luck" - Thanks!
Figured it out, went the simple route.
When it was failing I think it was due to overly complicated pre-conditions.
I had a lua interfaced to the MaddogX and it was sending a combination of integers, strings to MF with 3 pre-conditions involved.
It is now all strings generated from the lua with only 1 precondition.. Works great!

As for Code B decode - yes i have 1 digit that would require 5 alternate letters/shapes..
Again the availability of "proper" 14/16 segment displays is the main drawback.
Here is my idea for a possible UI for Code B decode if it ever comes to fruition.

Thanks again!

2020-01-15 14:33
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3527
Supporter
Hmmm... Does it make sense if we can choose more then 1 Digit ?

The most easy methode would be a config that can be selected to only ONE Digit ( Not to multiple ones)
Then this Config must have a legetime Value between 0 and 128
Each Number is a possible situation....
Like here:


This would give us the poibility to light a Digit with 7 Segments completly free.

If we need a 14 Seg Display we can also Use this System with a MAX7219 just by the trick we wire two Cathodes ( maby with a diode on each line to prevent backwards signals) to ONE Display. The 7 Seg Lines must be shared EACH to 2 Segments....
In Mobiflight we now must create TWO Configs for that 1 Digit Display..... Config 1 controll technical the Cathode A and set Segments 1-7 and Config 2 controll Cathode 2 and set Segments 8-14

In case we again can show all possible 128 states of Segments we must just find out what we need..... For example a "B" must light 7 Segments.... Maby 3 from Config 1 and 4 from Config 2 ..... Then we must just set in Config 1 the number that occure in exactly the needed "3" Segments are ON .... Same in Config B

Finaly with this logic it would be also possible to show multiple Characters on same Display..... We would read the Offset that tell us for example Display should show N S E W
And Say ... If Raw value want South then show 88 elsif Value want North then 23 and so on.... Possible with a easy IF Formula.

I Hope you understand.

If i missunderstand you please tell me more detailed what you think !
Good Luck !
2020-01-15 18:24
Avatar
spokes2112
Posts: 6
That is exactly what I was getting at! :thumbup:
The ability to use all the features of the 7219. :)
And.. Your idea of driving a single 14 segment.. Genius!

Roman
2020-01-15 21:34
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3527
Supporter
So.... Lets wait for a comment of Sebastian ( Or his ideas when i talk to him personaly) .

We found a "GUI" solution..... Now question is if it possible technical.....

1.
I Not know if we can use "CodeB" and the "128 adresses" Mode SAME Time on a Display...... If not then the whole MAX Chip is set for ONE of the two systems..... Means for a 4 Digit Display with a special Character on first Position we can not use same Chip..... Here Digit 1 must controlled by a "Adressable Max" and Digit 2,3,4 is controlled by the "CodeB" Max...... So also no 1x4 Block is possible here and the special Diggit must be single.
But that would be no real trouble ..... Most people already work with single diggits overall.

2.
I not know if electrical the controlling of a 14 Seg Display via TWO Cathode Lines is possible.... I forgot that the segment lines that are "bridged" also light the other one (Whatever we only use 1 cathode.
Here we finaly must rethink it and i must maby order a 14 seg display and do some basic testings.
On short rethink it would be possible with two indipended Max Chips.... Maby NOT with only one.
Good Luck !
2020-01-15 22:32
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3527
Supporter
BAD NEWS :cry: :cry:

After some research i think the Idea with 14 SEG Display controlles by 2x Max7219 Digits (Whatever with one or two Max Chips) is electrical not possible.
It would work, if there exist a 14 Seg Display with two indipended Comon Cathodes ( Cathode A fo Seg a-g and Cathode B for Seg h-n) but i not find those Hardware.
Alternate would be a second arduino (like UNO) that got 8+2 Inputs from MAX and 14+1 Outputs to Display and a sketch that manage the data.... But thats not profitable.


Summary.

At the moment showing 1 Symbol on a 14 Seg is no Problem..... Showing maby 2,3,4,5 different Symbols one ONE Display is also possible but need each a single config, each a single Pin (LED Output) and a solder diode on every single segment line (maby 30-50 Diodes and single wires in a complex situation) . So its not realy practicable.

Result: The BitCode Option is still profitable and a cool idea for the future..... But to controll 14 Seg Displays in a comfortable way we must implement a another MAX Controller like Max6955 or. that is basicly designed for 14 SEG Displays.
[Last edited by pizman82, 2020-01-16 19:24]
Good Luck !
2020-01-16 18:44
Avatar
spokes2112
Posts: 6
Yes after further thought i realized the same thing.
Another possible (?) option for a 14 segment is a multiplexer & transistors to drive the segments.
2 cathode outputs from a 2 digit config would feed the multiplexer along with being the sink. 1 7219.

Kind of dropping the idea of a 14 segment anyway.. (a 16 would work too by tying the 2 upper anodes together and tying the 2 bottom anodes together)
Cannot find amber, red, or white in the proper size anywhere. Always out of stock.
Can get all the greens as one wants but turning a green into an amber color is nearly impossible.

Hence the use of raw decoding to make a 7 segment to "somewhat" look like the needed characters.

Roman
2020-01-16 21:10
icon