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
littlerocky
Posts: 4
Hallo!

nach vielen Versuchen und lesen bei euch und woanders bin ich ein wenig am Ende meines Lateins.
Folgendes Problem:

Ich habe mithilfe eines Megas Rev3 und Mobiflight ein FCU gebaut, welches super Funktioniert. Selbst die LED in den Tastern funktionieren. Nur eines will nicht so richtig gehen:
Die Encoder machen Probleme beim schnelleren drehen. Der Wert geht vor oder eben zurück, wie er es eben tun soll. Dreh ich schneller z.B. nach rechts, erhöht sich der Wert und irgendwann "verschluckt" er sich und der Wert setzt sich wieder ein paar Ziffern zurück. Das ist bei allen Encodern so am FCU - SPD, HDG, ALT, V/S. Es wirkt so, als würde er nicht hinterher kommen? Gibt es hier jemanden der etwa das gleiche Problem hat oder hatte und eine Lösung fand? Ich hab keine Ahnung was ich noch machen kann... Ist der Arduino Mega dafür allgemein zu schwach?

Ich habe in den Einstellungen selber nur Left und Right ohne die Fast Option belegt. Eingestellt ist die Jeehell DataPipe. Auch habe ich schon mit den FSUIPC Update-Intervallen gespielt... ob nun 100ms oder 500ms, beim schnellen drehen kommt er manchmal nicht hinterher, so scheint es und er springt ab und zu um etliche Ziffern zurück.

Alle anderen Eingaben gehen super - hm.

Danke für eure Zeit :-)

lg
2020-01-08 21:33
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3728
Supporter
Hi

EDIT (( Mit ner ganz geringen wahrscheinlichkeit könnte der Fehler auch in Mobiflight liegen aber das halte ich für fast unmöglich))

Ich nutze perönlich kein jeehell.... Somit kann ich das nicht testen.

Das Problem hier ist nicht der Mega.... Das Problem ist die "Art" des Inputs.
Encoder Inputs bei Jeehell laufen über eine "Data Pipe". Das ist keine Erfindung von Mobiflight.... Das ist ein System von Jeehell.

Um Offsets zu sparen verwendet Jeehell für alle Encoder Inputs immer den gleichen Offset.... Und zwar einen Zweigeteilten.
Im ersten Teil senden wir einen Wert als Kennung "welche" Funktion wir im Sim verstellen wollen. Und im Zweiten Teil senden wir den Wert der bei besagter Funktion neu gesetzt werden soll.
Jeehell wiederrum muss dann bei einen Input diee Daten lesen..... Anhand der kennung entscheiden wo er hingeht und dort den Write durchführen.
Hinzu kommt das dieser Offset von Natur aus Leer ist.... Also wir können nicht wie gewohnt sagen "nimm aktuellen Wert und erhöhe um 1" denn der Offset hat keinen Wert.
Hier muss Mobiflight den Output Wert lesen ( z.b. den Offset der FCU Speed anzeigt) und diesen in die Berechnung mit einbinden.

Also grob.... Du drehst deinen Encoder um eine Stelle....
Mobi liest den Output --> Berechnet den neunen Wert wie $+1 --> Öffnet die Pipe mit der Funktionskennung ---> Sendet den Wert an FSUIPC ---> Jeehell liest den Wert dort ---> Jeehell liest auch die Kennung ---> Jeehell sendet intern den neuen Wert an die benötigte Stelle ---> Jehell sendet den "neuen" aktuellen zustand an den Output Offset zurück.

Du siehst im gegensatz zu nen standard Input in FSX hat man zig mal so viele Wege und Daten.
Fällt nicht auf bei nen Button aber durchaus bei nen Encoder den man pro Sekunde 10 stellen dreht.

****************
Lösung:
Verwende mal anstatt per schnelle Drehen viele commands zu erstellen testweise die ON FAST Tabs .
Im Normalen sagst du "Wert +1" in den schnellen z.b. "Wert+10"

Wenn das nicht spürbar was bringt probiere mal "Key send" anstatt Offset writes und belege die Funktionen in Jeehell selbst mit Tasten.
Das würde auf jeden fall die Data Pipe Umgehen!
Good Luck !
2020-01-08 23:37
Avatar
littlerocky
Posts: 4
Danke pizman für deine Antwort.

Das mit dem fast und normal, hab ich schon probiert. Das bringt keinen besseren Zustand.
Die Idee mit dem key senden ist eine Klasse Sache, leider kann ich in jeehell keine Tastaturtasten zuweisen, nur joystick Tasten und das hilft mir hier nicht.
Wenn ich den key direkt in fsuipc einfange, muss ich ja trotzdem dort via Offset die datapipe abrufen, und das wäre ja leider wieder das gleiche.

Jeehell erlaubt mir bei dem Controller Config leider keine Tastaturzuweisung :-(

Lg
2020-01-09 21:57
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3728
Supporter
Das ist schlecht.

Wir können zwar über Mobiflight mit einen Encoder einen "Virtuelen" Joystick Button in FSUIPC simmulieren.... Das dürfte eber das gleiche Problem sein das dieser NUR in FSUIPC erkannt wird und nicht von Jeehell.

Weiterhin können wir mit Mobiflight VJOY verwenden und z.b. sagen immer wenn ein Button gedrückt wird dann simmuliere einen Joystick Button..... Dieser würde sogar von Jeehell erkannt werden .... ABER Diese Funktion geht aktuell nur mit Schaltern und Buttons aber NICHT mit Encodern ( Das jabe ich vor 2 Jahren schon bemängelt)

Lösung:

1. Warte mal ob andere Jeehell Nutzer dir hier was genaueres sagen können und ob dort das Problem im Grundsatz auch auftritt.

2. Falls du ein Paar Euros übrig hast kannst du ein Leo Bodnar Board kaufen. Dieses erlaubt JoyButton Inputs über Encoder.

3. Vielleicht geht es direkt über SIOC ..... So das Mobiflight einen Offset schreibt mit den Encoder und SIOC diesen in befehle umwandelt Ohne Datapipe zu nutzen.
DA hab ich aber keine Erfahrung und vermutlich wird auch hier der Delay massiv sein.
Good Luck !
2020-01-09 22:49
Avatar
littlerocky
Posts: 4
So wir haben es gelöst.
Das mit der Datapipe hab ich schnell gelassen, da gab es jetzt nach unzähligen Versuchen keine Lösung.
Ich habe mir neben dem Mobiflight nun noch für die Encoder SPD/ HDG/ ALT und VS ein Arduino DUE geholt, diesen so eingestellt und bespielt, dass die Drehknöpfe als Joystick-Button erkannt werden und somit in Jeehell direkt konfiguriert werden können. Das war die Lösung meines Problemes. Ich benötige somit keine Software, die ein Joystick etc. simuliert oder ähnliches.

Ja, das war jetzt mein Ansatz, vielen Dank für deine Inspiration!

lg
2020-01-26 20:13
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3728
Supporter
iconlittlerocky:


So wir haben es gelöst.
......
Ich habe mir neben dem Mobiflight nun noch für die Encoder SPD/ HDG/ ALT und VS ein Arduino DUE geholt
.....
Ich benötige somit keine Software, die ein Joystick etc. simuliert oder ähnliches.



Schön das es geklappt hat.

Nur zur Richtigstellung..... Das du einen Arduino ( Egal ob Due, Micro, Uno, Mega etc) als Joystick verwendest, setzt in dem Sinne eine Software ( Firmware auf Arduino bzw sketch) Vorraus.
Ich habe LeoBodnar empfohlen weil diese sozusagen Plug´n Play sind..... Aber natürlich geht auch jeder Arduino wenn du weist was zu tun ist, und du ein wenig selber programmieren kannst.
Good Luck !
2020-01-26 23:10
Avatar
Speed99
Posts: 2
Hallo zusammen

Kämpfe genau mit den gleichen Problemen. Kannst du deine Lösung etwas detaillierter beschreiben?
Den Teil mit dem Arduino DUE kann ich nachvollziehen. Was konfigurierst du aber in Mobiflight?

Vielen Dank und Gruss
Daniel
2020-03-04 14:41
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3728
Supporter
In Mobiflight macht er gar nichts.....

Der Sinn eine "Joystickcontrollers" ist es ja besagte Inputs DIREKT zu machen..... Also das du in der Software ( Jeehell Airbus ) eine Funktion ( wie Heading verringern) auf einen Joystickbutton legst.

Das Komplizierte an der Thematik ist der Encoder..... Einen Schalter (1/0) auf einen Controller als Joystick Button zu verwenden ist einfach und klappt mit nahezu jeder Firmware.
Das aber ein Encoder ausgelesen wird (Womöglich auch noch unterschiedliche Encoder mit 1:1 1:2 und 1:4 Belegung) das ist die Kunst.

Leo Bodnar Boards beinhalten das in der Firmware...... Sind aber extrem teuer.
Wenn du ein billiges Arduino mit einen Sketch aus dem Internet verwendest das das Board zu nen HID Joystick macht, dann musst du in dem Fall eine Firmware finden die auch Encoder unterstüzt..... Die meisten kostenlosen Github Codes sind nur für Schalter und Potentiometer.

Ich hoffe "littlerocky" liest das hier und sagt dir welchen sketch er verwendet bzw falls selbstgemacht seinen sketch mit dir teilt.
Good Luck !
2020-03-04 14:59
Avatar
Speed99
Posts: 2
Hallo Pizman

Wauw, was für eine Reaktionszeit ...

In der Arduine IDE unter "Sketch/Bibliothek einbinden/Bibliothek verwalten" nach rotary suchen. Hatte damit in anderen Projekte schon Encoder erfolgreich ausgewertet. Diesen Teil sollte ich hinkriegen.

Hatte da was falsch verstanden. Dachte er hätte die Joystick-Buttons in Mobiflight verarbeitet ...
Wusste nicht, dass man in Jehell auf Joystick-Buttons so viele Events konfigurieren kann.

Coole Lösung- Danke!!

lg
2020-03-04 18:57
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3728
Supporter
Das mit der Reaktionszeit ist Zufall..... Auch diesesmal da du offenbar erst vor 10 Minuten geschrieben hast :P

*******

Details kann ich hier nicht liefern.... Ich verwende Jeehell selbst nicht weil ich Airbus aus Prinzip nicht mag.... Weder im Sim noch will ich in nen echten sitzen wenn es sich vermeiden lässt. Ich Flieg ausschließlich Boeing.


Jeehell bietet meines Wissens 3 Wege um Inputs zu machen. .... "Events" gehören aber nicht dazu !

1. Über die FUIPC Offsets. Hier sind aber leider nicht alle Dinge abgedeckt.

2. Über SIOC .... Ansich OpenCockpit Cards.... Aber man kann diese auch über Umwege zu FSUIPC Offsets senden bzw über diese kontrollieren und dann per Mobiflight nutzen. Teilweise die einzige Möglichkeit bestimmte Outputs auszuselesen die nur über SIOC möglich sind und keine eigenen FUIPC Offsets besitzen.

3. Über besagte Joystikbelegung.
Soviel ich weis hat Jeehell ein eigenes "PlugIn" ( Keine ahnung ob das immer dabei ist oder ob man das bei der Installation speziel auswählen muss) . DORT kann man wohl sämtliche Input Schalter auf JoytickButtons definieren.
Good Luck !
2020-03-04 19:14
icon