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
airbus-sascha
Posts: 8
Schönen Samstag Abend zusammen.

Ich habe heute meine Radio Panel PCB´s erhalten, auf die ich gleich einen Max7219 Chip gesetzt habe, um mir unnötiges gekabels zu ersparen.

Nun habe ich aber das Problem, das die Reihenfolge der mir angezeigten Zahlen umgekehrt ist, also statt 123.456 bekomme ich 654.321 angezeigt :thumbdown: .
Ich habe jetzt in einem anderen Beitrag gesehen, das Mobiflight die Digits wohl anders herum nutzt.

Gibt es hier Abhilfe? Wäre sehr ärgerlich, nochmal neue PCB´s anfertigen lassen zu müssen :cry:

Ich hoffe auf eure Hilfe und natürlich auf die Möglichkeit, die Reihenfolge irgendwie inventieren zu können.


Vielen Dank schon einmal im voraus!

Gruß Sascha
2019-03-09 22:51
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 2950
Supporter
Ohh
Das klingt übel !

Ich habe bisher noch nicht mit Max Chips in der Rohform gearbeitet.... Nur mit den Tubes. Dort ist die Logik aber bereits umgekehrt.
Sprich Linker Block Diggit 1 ist effektiv dig7 auf dem Max.... Rechter Block Diggit 1 ist dann Dig3 auf dem Max.

Wie du sagst arbeitet das Max wie eine Binärzahl.... Also Sie geht von Rechts nach Links.

So gesehen ist es nicht ein Fehler von Mobiflight.... Sondern ein Fehler in der PCB Logik.
( Wobei ich den gleichen Fehler gemacht hätte.... Ohne jetzt den Schlaumeier zu machen, muss ich sagen ich hätte es vorher mit nen Breadboard noch geprüft bevor ich den Auftrag gebe aber grundsätzlich hätt ich es auch verkehrt rum gemacht so wie du)

Lösung:

1. Über die MF Oberfläche:
Theoretisch geht es mit einer Config für jedes Diggit. Sprich du hast nicht eine Config für das COM1 Active sondern 6 Configs.... Du musst dann mit Modulo und Round befehlen jedes diggit einzeln berechen..... ABER .... Ich denke das macht es enorm kompliziert und ist nur die absolute Notlösung

2. Umbau deines PCB
Die Max Chips auslöten und die Pins neu anordnen.... Sprich den Chip auf ner Lochrasterplatte anlöten und mit kabeln an die Lötstellen des PCB führen ( So das die DIG0 bis DIG7 passen) und das ganze sozusagen darüberbauen mit einen stück holz und Kleber)

3. Neues PCB ( Wie du sagst perfekt aber teuer)

4. Umbau der MF Logik.
Ich denke es sollte gehen das MF das regelt... Sprich dem Max die umgekehrte Zahl zu senden. Das müsstest du aber selbst im MF Quellcode umändern. Da bin ich leider raus. Du kannst dir den Script auf der Github Seite laden und checken. Wenn du programmieren kannst müsste das gehen.
Good Luck !
2019-03-10 15:14
Avatar
airbus-sascha
Posts: 8
EDIT//

Ich habe eben auf meinen Zeichnungen, vom durchmessen des Max Tube, die ich extra gemacht hatte gesehen, das ich diese richtig gekennzeichnet habe, also beim 4er Digit unten rechts D0 und oben links D3 also alles so wie es soll..

Ich frage mich grade, was mich dazu geritten hat, dass Pinout auf meiner PCB zu vertauschen.. :|

_______________________

Danke piman82.

Ich finde nicht das du ein Schlaumeier bist, ich finde es sehr nett, das du mir direkt Lösungen präsentieren kannst ;)
Ich habe den aufbau auf einem Steckboard gemacht, da hatte ich aber durch die vielen Jumper Kabel zu viele Störungen rein bekommen, da ich nur ein billiges Steckboard habe.

Leider haben alle Lösungsansätze ihre Vor.- und Nachteile.

Die Variante es über die Config umzuprogrammieren geht für mich leider nicht, da ich nicht programmieren kann, daher fällt das weg.

Das Anschließen außerhalb der PCB kommt für mich nicht in frage, da sonst die PCB sinnlos wäre, denn dann habe ich wieder einen Rießen Kabelsalat.

Das Programmieren jeder einzelnen Ziffer wäre theoretisch eine Option, da ich allerdings meine PCBs an Kollegen vertreiben möchte, will ich ihnen zumuten, die eventuell funktionierende Config zu überlassen.

Also ich fasse jetzt nochmal zusammen nicht das ich nochmal einen Fehler beim zeichnen mache...

Der Max Chip ist also so aufgebaut, das er von rechts nach links die Digits ansteuert, habe ich das richtig verstanden?

Beispiel:

Aktuell habe ich auf meiner PCB 2x 6 Digits die in der Reihenfolge D0, D1, D2, D3, D4 und D5 verbunden sind.

Es müsste aber dann so sein, das die Digits D5, D4, D3, D2, D1 und D0 verbunden müssen?

Wenn das so ist wie beim letzten Beispiel also D5 nach D0, dann werde ich wohl nochmal die PCB umzeichnen und neu bestellen. das war jetzt meine erste PCB mit dem Max Chip und es sollen noch weitere folgen, von daher ist es wichtig das die Reihenfolge der Digits richtig ist ;)


Danke dir nochmal!

Sascha
[Last edited by airbus-sascha, 2019-03-10 17:00]
2019-03-10 16:24
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 2950
Supporter
iconairbus-sascha:


Also ich fasse jetzt nochmal zusammen nicht das ich nochmal einen Fehler beim zeichnen mache...



Zuerst.... Bitte nagle mich am Ende nicht fest. Ich kann dir auch nur sagen was ich auf Google rausbekommen habe da ich selber noch keinen MaxChip aufgesetzt habe.
Da du ja bereits nen Prototyp hast und den Fehler siehst sollte ein "umkehren" funktionieren.
Wenn du auf Nummer sicher gehen willst dann nimm ein Maxchip und "löte" mal ein Display sauber zusammen. ( Jumperkabel /Breadboard gehen hier meist nicht da zu wackelig)
In einen Satz: Bitte selber testen und nicht hernach sagen "Der Peter hats doch so empfohlen" B)

********************
iconairbus-sascha:


Der Max Chip ist also so aufgebaut, das er von rechts nach links die Digits ansteuert, habe ich das richtig verstanden?



Stimmt zwar aber du hast es falsch formuliert !

Der Max Chip selbst macht gar nichts.... Der hat keine Logik von Rechts nach Links oder umgekehrt. Der hat nur 8 Ausgänge ( Dig0-Dig7) die er ansteuert. Und er tut das in der Reihenfolge (von 0 zu 7) ABER das sagt nichts darüber aus was auf diesen Diggits angezeigt wird !
Der MaxChip selbst weis ja nicht ob du auf DIG0 jetzt das Rechte doer das Linek angeschlossen hast !

Auch Mobiflight selbst ist hier nicht der "Übeltäter".
Die Steuerung übernimmt eigentlich die Library. Sprich das PlugIn das Sebastian in seinen Code verwendet.
An dieses Schickt Mobiflight sozusagen die Rohdaten was wir wollen.... Also das der Wert 1234 auf den diggits A B C D angezeigt werden soll. ("Optisch" Von Links nach Rechts)
Diese Library berechnet dann den Datensatz der an das MAX gesendet wird ( Je nach Modus im Max eine ewig lange Binärzahl)
Diese sagt dann dem Max z.b. "Schalte auf DIG0 die Segmenete ABCDG an so das eine "3" dargestellt wird" usw.
SOMIT bestimmt diese Library am Ende welche Stelle auf welchen Diggit Dargestellt wird.
Würde die Library hier schlicht sagen das die 1000er stelle auf Digit 0 ist und die 1er Stelle auf Diggit 3 dann würde dein Aktuelles PCB funktionieren. ( Ist aber wohl nicht so)
WARUM jetzt offenbar die ganzen Librarys das Digit 0 als das rechte ansehen und aufsteigend nach Links gehen weis ich nicht ! Ich denke aber weiterhin das dies auf das Binäre System zurückgeht (Auf dem jeder Computer seit den 30ger Jahren basiert) Manch Dinge sind wohl so wie sie sind :P

******

Abschließend noch meine Google Treffer von gestern. Such einfach mal nach "Max7219 7Segment Schematic"

Ein treffer z.b.


Es gibt zwar auch treffer die so funktionieren wie dein "falsches" PCB..... Aber die meisten arbeiten wie oben. Ich gehe also davon aus das dies der Standard ist und Sowohl Mobiflight, die Library die Sebastian verwendet als auch alle MaxTubes auf dem Markt "richtig" arbeiten.
(Die anderen Treffer verwenden vermutlich einen eigenen Code der warum auch immer umgekehrt arbeitet)

*****
Abschließend ... DANKE. War interessant das zu erkunden. Wieder was neues gelernt !
Good Luck !
2019-03-11 11:00
icon