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
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Hiho

Vorweg erstmal VIELEN DANK an den Macher von MF. Ich bin noch absoluter Neuling in der Materie und habe vor 2 Wochen nicht gewusst was ein Arduino ist. Habe sehr viel gegooglt und bin dadurch auf dieses Projekt gestoßen. Man hört wirklich nur gutes über euch und mein erster Eindruck ist sehr positiv.

Ich verwende im Moment die PMDG 737 und will zu Testzwecken erstmal einige Elemente von außen steuern.
Das Auslesen von z.b. LED funktioniert über MF Super und ist auch für Laien wie mich machbar. (Auch dank der OFFSET Liste von Pete Dowson.)

Was ich jedoch nicht wirklich hinkriege ist der Input !

Grundsätzlich habe ich das System mit den Offsets verstanden. Standard Offsets Funktionieren tadellos.
Auch das die PMDG keine Offsets sondern die Event ID´s verwendet ist soweit klar !
Dazu gab es einen Interessanten Post im Englischen Teil dieses Forums.... Speziell zu Offset 3110 und 3114.


Als Beispiel verwende ich mal die Taxi Turnoff Lights , Event ID ist Links : 69747 bzw Rechts 69748


Ich habe also Schalter 1 so gelegt : Offset 0x3110. Typ Float Byte 4 Val 69747 ( Wie beschriebe zur Ansteuerung des Events)
Dann den Schalter Dupliziert....
Diese Kopie hat nun ; Offset 0x3114 Typ Float Byte 4 Val 1 ( Und jetzt das setzen des Parameters)

DAS Funktioniert. Bei einmaligen drücken des Tasters wird die Aktion ausgeführt.

Also war der nächste Schritt diese Belegung so anzupassen das es auch eine Aktion beim Loslassen gibt. (In diesen fall müsste der Schalter wieder zurück auf VAL 0 )

Also habe ich bei beiden MF Belegungen jeweils den "On Release" Teil auch zusätzlich ausgefüllt.
Beim Orginaleintrag ist es also Offset 0x3110 Typ Float Byte 4 Val 69747 (Alles gleich wie bei On Push)
Bei der Kopie ist es dann Offset 0x3114 Typ Float Byte 4 Val 0 (Wie bei on Push aber Val nicht 1 für an sondern hier 0 für aus)

Auch DAS Funktioneirt . Wird die Taste gedrückt geht der Schalter auf An. Belibt an solange sie gehalten wird und beim Loslassen geht er wieder aus !!!
***
Ich habe jetzt das selbe Porzedere auch für Schalter 2 und der EventID 69748 Gemacht ( Der andere Turnoff Light Schalter)
Auch dieser Funktioneirt soweit perfekt.

Jetzt zum PROBLEM !

Halte ich also Schalter 1 Gedrückt und möchte dann Schalter 2 Drücken erkennt er diesen Nicht.


Vorweg muss ich sagen das mein Modelaufbau (Ein Arduino Starter Pack) nicht über Kippschalter verfügt sondern über mehrere Taster. Ohne jetzt das genau zu wissen dachte ich als Laie das ein Taster den Ich gedrückt halte das selbe ist wie ein Kippschalter der auf AN steht. Lasse ich den Taster los dann entspricht das den Ausschalten des Kippschalter. Hoffe das ist so richtig (oder womöglich ist das jetzt der Grund des Problems)


Es muss aber doch dafür eine Lösung geben da ja im HC am Ende Zig Kippschalter verbaut sind die ja effektiv Auf Dauer AN stehen und die gleiche Situation verursachen !

Im Englischen Topic hies es das es nicht möglich ist mehre Schalter gleichzeitig zu drücken ( z.b. die 4 Landing Lights mit einer Handbewegung ) weil natürlich dieser Offest Vorgang jeweils einzeln an FSUIPC geht . Das leuchtet mir ein. Es hies aber dort weiter, das ein Langsames nacheinander Anschalten durchaus möglich ist.
Bei mir offenbar nicht, Wie ich es sehe sendet mein Schalter den Befehl der beim Drücken gemacht wird nicht nur 1 Mal sondern Ständig. solange er gedrückt wird. Dies blockiert offenbar den Offset den ja Schalter 2 dann ebenfalls brauchen würde.



***
Hoffe ich konnte das mit meinen geringen Fachwissen erklären und würde euch bitten mir da weiter zu helfen !

Danke !
Good Luck !
2015-11-21 00:00
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
Hallo Pizman82,

mehrere Taster gleichzeitig geht natürlich. Nur könnte es bei den Event IDs ein Problem geben, wenn Du gleichzeitig versuchst mehrere EventIDs an den FSX zu senden. Dann überschreiben die sich ggf. insofern es innerhalb eines Übertragungszyklus passiert.

Wenn Du die Buttons nacheinander drückst, so wie von dir beschrieben, sollte es aber definitiv kein Problem sein.

Bitte prüfe daher auch nochmal deine Verkabelung und achte darauf, dass die GNDs nicht gemischt sind. Nicht das ausversehen der zweite Schalter durch den ersten elektrisch blockiert ist, wenn dieser gedrückt ist.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2015-11-21 10:31
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Hallo Doc.

Erstmal vielen Dank für die Schnelle Antwort.
Im Hinblick auf den englischen Foreneintrag habe ich bereits vermutet das es eigentlich gehen müsste. Ich werden meine schaltung mal von einen Elektroniker begutachten lassen. Leider ist mein wissen darüber ebenfalls noch sehr dürftig und im Internet findet sich darüber leider etwas wenig was die Basics angeht.
***
Grundsätzlich habe ich geplant wenn diese Inputs über MF möglich sind auf ein Input Board wie ein Leo Bodnar zu verzichten und eben nicht über Buttons in FSUIPC sondern rein über Offsets zu arbeiten. Ziel wäre es nicht ein MischMasch zu bauen sondern ALLES über eine Kartenart zu betreiben (in meinen Fall das Arduino Mega)

Dazu bitte noch 2 Kurze Fragen damit ich jetzt nich anfange die Materialien zu kaufen und am Ende sehe das es nicht klappt....

1.
Ist das Obige Vorgehen so Richtig ??
Also ich erstelle für einen Schalter ZWEI Einträge in MF. und kann wie beschrieben die "Beim Losslassen" Funktion ebenfalls mit diesen Beiden Einträgen Bearbeiten wie ich es erklärt habe (Erster Eintrag Push und Release identisch auf 3110 und 2. Eintrag jeweils auf 3114 mit den zwei Values die ich brauche für Drücken und Losalssen)
Passt das so, oder müsste ich hier sogar VIER Einträge machen (Zwei für Push und zwei für Release ) ??

2.
Gibt es ein Maximum an Entrys in dieser MF Input Liste ??
Wenn ich jeden Schalter der über kein Standard Offset verfügt mehrmals erstellen muss dann kommen ja (mit den richtigen Offset Schaltern) am Ende "hunderte" Schalter zusammen.
Will ich also ALLES über MF steuern reicht das Programm dann für diese zusätzlichen Plätze noch aus, oder muss ich zwingend einen Teil über Joystickbuttons in FSUIPC simulieren ??

mfg Pizi
Good Luck !
2015-11-21 23:07
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
Hi Pizi,

Pro Schalter konfigurierst du einen PIN. Du kannst pro Schalter immer die beiden Aktionen zuweisen. Eine Beschränkung der Anzahl gibt es in der MobiFlight Connector Software nicht. Aktuells sind es pro MobiFlight Board / Arduino jedoch Max. 40.

Alternativ kannst Du auch Tastatur Kommandos senden.

Der Vorteil von Karten wie die von Leo B. ist, dass Du die mit LINDA konfigurieren kannst. Der Nachteil ist aber auch, das Windows die Zahl der Gamespads auch beschränkt bzw. das irgendwann unübersichtlich werden kann. Probier es einfach mit MobiFlight aus und solltest Du was mit Offsets oder Tastatur nicht hinkriegen, dann gib Bescheid oder nimm als Fallback dafür dann ne andere Karte. Der Preis eines Mega Clones im Gegensatz zu den anderen Karten ist einfach unschlagbar günstig.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2015-11-22 07:20
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Hallo

Hatte grad einen Ellenlangen Beitrag geschrieben der aber beim Senden ins virtuelle Nirvana verschwand. Ich schreibs jetzt nochmal. Hoffe der Alte ist nicht doch irgendwie Online und jetzt doppelt :-)

Vorweg. Meine Schaltung sollte Passen. Habe das ganze mit eurer Sample Datei getestet. Bei Standard Offsets kann ich die 3 Schalter unabhängig verwenden (Nacheinander natürlich)



1. Ich denke ich habe das Problem bei der Offset 3110/3114 Methode von Oben gefunden.....

Der 3110er bezieht sich ja auf das Event und führt dieses Aus. Er verwendet dazu den Wert der auf 3114 als Value vermerkt ist.
Damit das funktioniert müsste aber der 3114 bereits bestehen bevor der 3110 ausgeführt wird.
MF sendet aber wenn mir das der LOG Monitor von FSUIPC richtig anzeigt die Werte Falsch herrum. Also erst 3110 dann 3114.

Folgerlich verwendet der Befehl nicht den Value den man ihm in MF mit dem 2. Eintrag sagt SONDERN den aktuell gesetzten. Durch die Button Belegung wie oben besprochen wird der von mir gewünschte Value erst danach gesendet bzw eingetragen.

Beim NÄCHSTEN verwenden eines Schalters mit dieser Methode wird dann der Value verwendet die beim letzten Vorgang gesendet wurde und der neue wird wieder danach übertragen und wieder gespeichert.
Bei EINEN Schalter fällt das gar nicht gross auf. Er Macht zwar eigentlich das Gegenteil von dem was man ihm sagt weil er immer den Value der vorherigen Bewegung nutzt... Aber ohne andere Imputs funktioniert er ewig. (Für das Spiegelverkehrte könnte man auch die Values einfach tauschen von 1/0 )

Nutzt man aber einen anderen Schalter ebenfalls mit der 3110/3114 Methode gibt es einen Konflikt.
Ist der Erste Schalter z.b. auf AN , Ist im 3114 ja AUS geschrieben für die nächste Nutzung. Bewege ich dann einen Deaktivierten anderen Schalter von Aus auf AN dann geht das nicht weil er dabei das "AUS" Value des vorherigen verwendet.
Somit entsteht immer ein Fehler wenn man einen Schalter bewegt der eine andere Stellung hat als der zuvor bewegte !

Hoffe ihr versteht das wie ich es erklärt habe. Die Lösung ist ganz einfach.... Ich müsste bestimmen können, welcher Offset zuerst ausgeführt wird. Sprich der 3114 VOR dem 3110. Dann sollte diese Methode soweit klappen. Habe bereits probiert die Einträge bei MF zu vertauschen aber er sendet offenbar IMMER den 3110 zuerst !.



2. Tip mit Key Funktion.
Da das mit den Offsets von Oben nicht richtig klappen will wollte ich auf "Keys" ausweichen aber leider funktiniert bei mir diese Funktion gar nicht.
Weis nicht genau ob ich was falsch mache oder obs an MF liegt. Würde euch da nochmal um Rat bitten.....

Wenn ich in MF einen Button auf einen Key zuweise (z.b. auf "g" dann wird dieser nicht im FSX erkannt.
Drücke ich dort auf der echten tastatur "g" dann fährt das Fahrwerk" Bei dem Button passiert nichts.
Habe auch versucht das ganze über FSUIPC zu belegen. Geht auch nicht. Tastatur "g" macht etwas Button nicht !
ABER: Wenn ich z.b. den Editor öffne und den Button drücke dann schreibt er ein "gg" (Wohlgemerkt er schreibt ZWEI "g"

Liegt es daran ?? Ich kann weder mit Funktionstasten-Kombis noch mit Einzeltasten irgendwas im FSX ansteuern über Mobiflight.



3. Arduino als Joystick erkennen.
Wie du schreibst sind die LeoB teuer und ich würde gerne auf Arduino aufbauen. Hab dafür einen Link gefunden.....
http://fredgolden.com/Recipe_for_a_cheap_joystick_encoder.pdf
Was haltet ihr davon. Kennt sich jemand damit aus ?
Ich habs nicht getestet weil ich nicht genau weis ob ich bei Fehlschalg das Board wieder in den Originalzustand bekomme und z.b. für Mobiflight verwenden kann oder ob es mit dem Bootloader Zeug dann sozusagen "kaputt" ist.


Danke für eure Hilfe !






.
Good Luck !
2015-11-23 16:50
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
Zu 1) ich bin gerade am Planen speziell für die FS Event IDs was bereitzustellen, damit das einfacher geht.

2) Starte den MobiFlight Connector mal mit Admin Rechten. Startest du den FSX mit Admin Rechten? Das doppelte g sollte nicht sein. Gib Bescheid falls das Problem weiterhin besteht.

3) keine Erfahrung, aber ich wollte mich auch nicht auf ein Bootloader Update einlassen, weil das kompliziert für einen Normalen User ist.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2015-11-23 19:57
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Hallo Doc.

Irgendwie ist diese Homecockpit Sache ein steiniger Weg :cry: Immer wenn man eine Sache geregelt hat kommt das nächste Problem zum Vorschein !

Vorweg. Ich habe meine Schaltung nochmal überdacht und einen Grundsätzlichen Fehler erkannt. Beim Bau verwendetet ich ein Turtorial für den Arduino in dem es hies die Schalter müssen IMMER per Pull Down Wiederstand verarbeitet werden das der Pin auf LOW ist im Ungeschaltenen Zustand und HIGH wenn der Button gedrückt wird.
Ich hoffe ich habe die Logik der MF Software jetzt richtig gedeutet das es hier anders rum ist.... Also die Pins sind Standard HIGH und der verbaute Schalter muss beim Anschalten den Pin auf LOW setzen. Habe meinen Aufbau jetzt so verändert und jetzt stimmen die Atribute auch wie ich sie in der Software konfiguriere.

Weiterhin danke ich für den Tip mir dem "Ausführen als ADMIN" Dies löste gleich Zwei Probleme.
Erstens funktioniert jetzt das erkennen der Tasten im FSX und zweitens löste sich auch das Problem mit den Offsets.
Mit der ADMIN Option sendet MF jetzt zuerst den Offset 3114 und danach den Offset 3110, so wie es sein soll !

***

Jetzt entstanden aber noch 2 Weitere Probleme. Wäre Dankbar wenn du bei Gelegenheit darüber noch ne Info hättest.

1. "Verschluckte" Tastenbefehle
Wenn ich einen Schalter belege über FSUIPC Offset dann Funktioniert das (Sowohl Preset als auch mit der 3110/3114 Methode). Allerdings habe ich immer wieder Situationen in denen ein PUSH Befehl oder ein Release Befehl nicht bei FSUIPC ankommen. Im Dortigen LOG Fenster sehe ich ja jeden Write Vorgang und gelegentlich fehlt einer.
Zum Verständniss.... Ich rede NICHT von Gleichzeitig oder schnellen drücken der Schalter...... Wenn ich einen Schalter z.b. AN - 3 Sec warten - AUS - 3 Sec warten -AN usw drücke und mache das 50 mal dann habe ich 5-10 "Fehler" dabei.
Sebjektiv habe ich den Eindruck das die Fehler um so häufiger vorkommen desto mehr das System ausgelastet ist. Also bei Minimaler Grafik und Ohne 3D Cockpit kommen WENIGER Fehler als bei vollen Details.
Im Gegenzug habe ich über FSUIPC einen Joystick Button mit einen Schalter belegt. Dieser verursachte bei gleichen Testlauf KEINEN Fehler.
Meine Vermutung ist also das die "Schnittstelle" von Mobiflight und FSX/FSUIPC irgendwo hängen kann und dadurch Befehle nicht ankommen..
Kannst du dazu irgendwas sagen ??



2. Key Release Komando.
Durch das ADMIN Ausführen werden die Keys jetzt im FSX erkannt. Trotzdem bekomme ich wenn ich z.b.den Editor öffne weiterhin "gg" (ZWEI BUCHSTABEN) angezeigt wenn ich "G" als Key gewählt habe. Weis nicht ob das das Problem bzw die Lösung für folgende Sache ist......

Ich habe versucht in FSUIPC einen Offset auf einen Key zu legen und diesen dann über MF auf einen Button zu belegen. Das klappte auch für die Push Funktion.... aber nicht für die Release Funktion (von FSUIPC).
Das Problem ist, das Mobiflight offensichtlich nur einen Tastendruck sendet. Aber kein "loslassen" der Taste simuliert.

Wenn ich den LOG Monitor von FSUIPC ansehe und drücke ein "G" auf der Tastatur dann bekomme ich ein "KEYDOWN " und auch ein "KEYUP" angezeigt.
Der über MF belegte Button sendet aber NUR einen "KEYDOWN".
Belege ich in Mobiflight auch eine Funktion beim Loslassen (z.b. die gleiche Taste oder eine andere) dann sendet er für diese Funktion erneut nur ein weiteren KEYDOWN.

Die in FSUIPC festgelegte Aktion beim Loslassen ( z.b. einen Schalter wieder auf Value 0 setzten) startet aber offenbar nur bei einen KEYUP Befehl.

Verstehe ich da wieder was falsch oder fehlt hier in Mobiflight womöglich eine Option in der ich festlegen kann ob der gewählte Key "gedrückt" oder "Losgelassen" werden soll.
Ich denke da an ein Häckchen bei der Input Seite unter der Tastenbelegung mit der Option "Taste Drücken, "Taste Loslassen" und "Taste Drücken UND Losalassen"



Vielen Dank nochmal für die Zeit die du für mich investierst !
Good Luck !
2015-11-26 18:56
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
iconpizman82:


Meine Vermutung ist also das die "Schnittstelle" von Mobiflight und FSX/FSUIPC irgendwo hängen kann und dadurch Befehle nicht ankommen..
Kannst du dazu irgendwas sagen ??


In den Einstellungen kannst Du das FSUIPC Polling Intervall veringern. Vielleicht wird es dadurch besser.

Was die Tasten angeht, ja sendet MobiFlight immer KeyDown und KeyUp... so als würde man es kurz auf der Tastatur runterdrücken und wieder loslassen. Du müsstest demnach zwei verschiedene Tasten belegen. Z.B. "G" bei OnPress, "F" bei OnRelease.
Dennoch dürfte nur ein "G" gesendet werden... ich werde das nochmal prüfen, evtl. hat sich ein Fehler eingeschlichen.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2015-11-26 22:55
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Hallo Sebastian!!!

An dieser Stelle will ich mal den "virtuellen" Hut ziehen.....

Das neue Release ist der Hammer. Ich konnte zwar mangels Hardware nur 4 Schalter testen, aber jetzt dieht die Welt schon viel besser aus !

Ich weis zwar nicht WIE du es gemacht hast aber jetzt funktioniert meine Schnittstelle.....

Offenbar werden auch jetzt weiterhin die EventID´s über die bekannten zwei Offsets abgearbeitet... ABER Mit dem heutigen Patch sind die Delays verschwunden!
Habe zig Schaltungen gamacht. Keinerlei Fehler jetzt.
Rein Interessehalber.....
Weist du woran diese Delays lagen ?? Hattest du diese auch auf deinen Testsystem, oder waren die NUR bei mir ?
Meine Vermutung war ja das es an den Duplizierten Einträgen in MF lag oder am Falschen Datentyp (INT bzw STRING)

Aber EGAL !
Nochmals vielen vielen Dank ! Das ist jetzt die Lösung, Wollte eigentlch diese Woche bereits meine Hardware für das erste Projekt bestellen und hätte Notgedrungen bei den Inputs auf ein Leo Boadnar ausweichen müssen.... Das hit sich jetzt erledigt sofern ich auch die Encoder noch über MF zum laufen bringe !

Ich habe Leider kein Paypal und bin auch kein Freund von E-Banking... Aber ich verspreche dir wenn ich es Schaffe mein MCP zu bauen und das über MF funktioniert dann fahr ich persönlich ins Schwabenland und lade dich zum Essen ein ! ;)
Good Luck !
2015-12-02 06:56
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
Freut mich, dass es jetzt funktioniert!

Viel Spaß und komm vorbei, dann gehen wir ne Runde fliegen und was Essen.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2015-12-02 08:19
icon