Latenz, Output-Period und sonstige Missverständnisse bei Jeti-Empfängern

Hallo zusammen,

Da ich mich die letzten Tage etwas intensiver mit dem Thema beschäftigt habe möchte ich hier mal meine Erkenntnisse zusammenfassen. Grund für die Untersuchungen war eine Diskussion über die Empfänger-Einstellung „Output Period“. Diese Einstellung kann von 5ms – 30ms in Schritten von 1ms verändert werden. Zusätzlich gibt es eine besondere Option die sich „ByTransmitter“ nennt. Dieser Wert kommt wenn man von 5ms noch einen Wert kleiner einstellt. Nach dem Sender-Update auf Version 1.03 wurde von manchen ein Servo-Ruckeln festgestellt wenn die Einstellung auf „ByTransmitter“ eingestellt war.

Also was macht die Einstellung „Output Period“ ?

Eigentlich genau das was der Name verspricht, damit wird eingestellt wie oft der Servo-Impuls an einem Ausgang des Empfängers ausgegeben wird. Der Standard-Wert ist 20ms.
Wenn man den Wert nach unten setzt reagieren Analoge-Servos etwas schneller, genehmigen sich dafür aber auch mehr Strom. Zu niedrige Werte können zum Schwingen führen.
Da haben wir nun schon das erste Problem wenn man den Wert nämlich kleiner als 20ms einstellt ändert sich nämlich erst mal Garnichts! Der Empfänger gibt die Impulse immer noch stur mit 20ms an den Servo-Ausgängen aus. Aber warum ?

Um das zu erklären müssen wir zuerst noch eine andere Einstellung kennen, und zwar „Output Group“. Diese Einstellung erscheint nur wenn die Einstellung „Menu Display“ auf Full steht.
Dabei ist diese Einstellung enorm wichtig, zumindest in Verbindung mit der Einstellung „Output Period“, und die erscheint auch wenn „Menu Display“ auf Reduced steht.

Also was macht die Einstellung „Output Group“ ?

Diese Einstellung gibt es pro Servo-Ausgang unter dem Menü „Out Pin Set“, und man kann damit den Servo-Ausgang einer von 8 Gruppen (A – H) zuordnen. Für alle Ausgänge in einer Gruppe wir der Servo-Impuls zur zeitgleich ausgegeben. Bei einem R9 Empfänger sind die ersten 8 Kanäle auf die Gruppen A –H verteilt und der Kanal 9 ist wieder auf Gruppe A. Bei anderen Empfängen ist da ggf. anders, speziell bei großen Empfängern wie z.B. dem R18.

OK. Aber was hat das mit der „Output Period“ zu tun ?

Die Gruppen werden in einem festen Takt ausgegeben, alle 2,5ms eine Gruppe. Macht bei 8 Gruppen exakt 20ms. D.h. solange alle 8 Gruppen verwendet werden kann die „Output Period“ nicht kleiner als 20ms werden. Wenn man beim R9 nun Kanal 7 und 8 z.B. auf die Gruppen A und B legt, habe die Gruppen G und H keinen Kanal mehr zu geordnet, und werden dann auch nicht ausgegeben. D.h. wir sparen 5ms und können die „Output Period“ auf 15ms stellen und die Impulse werden dann auch so ausgegeben.
Ich habe mir dann die Mühe gemacht alle 9 Kanäle auf die Gruppen A und B zu verteilen, und schon hat man eine mögliche „Output Period“ von 5ms erreicht. ACHTUNG: Das ist nicht sehr sinnvoll(!)
Ein Punkt sollte man noch wissen. Wenn 8 Kanäle auf die Gruppen A und B verteilt werden und der 9 auf die Gruppe H, dann sind wir wieder bei 20ms obwohl eigentlich nur 3 Gruppen verwendet werden. Aber es wird immer bis zur höchsten verwendeten Gruppe getaktet.

Ist doch Super. Mit Jeti kann also eine Latenz von 5ms erreicht werden. Wieso geben die Jungs von Jeti den Empfängern dann so dumme Standart-Einstellungen?

(Nur zur Sicherheit das war Ironisch gemeint ;))

Zuerst das Thema Latenz, gerne auch Verzögerungszeit genannt. Das ist in keinem Fall die „Output Period“. Unter Latenz versteht man (oder zumindest Ich) die Zeit zwischen einer Änderung am Geber (z.B. Steuer-Knüppel) und dem tatsächlichen Bewegungsbeginn des Servos. Ich würde sogar sagen bis das Servo die gewünschte Position erreicht hat, aber die Betrachtung wäre jetzt eher hinderlich, deshalb später mehr dazu.
Betrachten wir erst mal den Bewegungsbeginn, wann beginnt sich also das Servo zu bewegen? Bei Digital-Servos immer dann wenn es einen Impuls bekommt der eine andere Position bedeutet als der vorhergehende Impuls. Bei Analog-Servos immer dann wenn es einen Impuls bekommt der eine Position bedeutet die von der aktuellen Position abweicht. Das ist ein kleiner aber feiner Unterschied. Ein Analog-Servo stellt die Posistion nur nach wenn es neue Impulse bekommt, ein Digital-Servo hält die Position selbstständig auch wenn keine neuen Impulse kommen. Deshalb ist eine niedrige „Output Period“ für Analog-Servos auch etwas wichtiger als für Digital-Servos. Damit ist im Übrigen auch der höhere Stromverbrauch bei niedriger „Output Period“ erklärt, da das Servo die Position häufiger nachstellt.
Für die Latenz ist jedenfalls wichtig wann sich der Impuls ändert und nicht wie oft er wiederholt wird!
Um das zu messen habe ich meinen Empfänger auf eine „Output Period“ von 5ms eingestellt. Dann habe ich die Impulse von Kanal 1 aufgezeichnet und den Knüppel schlagartig von ganz oben nach ganz unten bewegt.
Dabei geht der Impuls von 2ms auf 1ms, wie erwartet. Aber es werden immer 4 Impulse mit demselben Wert ausgegeben. D.h. eine Zustandsänderung erfolgt nur alle 20 ms(!) Und das wäre schon eher die Latenz.

OK schade doch nur eine Latenz von 20ms. Dann ist die Einstellung von den Jeti-Jungs ja doch nicht so dumm. Aber eine Latenz von 20ms ist doch total langsam, oder?

Nun ja, kommen wir nochmal zu meiner Betrachtung von Latenz zurück. Eigentlich ist Latenz nicht wenn der Empfänger signalisiert das ich den Knüppel bewegt habe, sondern wenn das Ruder welches ich steuern möchte auch die Position eingenommen hat. Im oben geschilderten Fall bedeutet dass, das Servo muss sich von einem Ende zum anderen Bewegen. Und die meisten Servos benötigen dafür etwa 100-120ms manche sind etwas schneller (70ms) viele eher langsamer. Bei diesem Wert fällt die Latenz zwischen Sender und Empfänger kaum noch ins Gewicht obwohl es sich natürlich addiert.
Jetzt kann man natürlich sagen dass mein Beispiel etwas ungewöhnlich ist, wer bewegt schon so die Knüppel beim Fliegen (3D-Piloten tun das und da dürfte wohl auch die Latenz am kritischsten sein). Bei kleinen Bewegungen braucht das Servo natürlich wesentlich weniger Zeit. Dennoch allgemein gilt wohl folgender vereinfachter Regelkreis:
  1. Fluglage erkennen
  2. Nachdenken
  3. Knüppel bewegen
  4. Position an Empfänger übertragen ( 20ms )
  5. Servo positionieren
Und dann geht es wieder bei 1. los. Wer nun meint die 20ms in dieser Kette sind zu viel, der sollte unbedingt genau messen bevor er den Sender seiner Wahl kauft.

Nur mal um ein Gefühl dafür zu bekommen, ein Wimpernschlag dauert etwa 100 ms (so wird auch die Menschliche Reaktionszeit angegeben)
Weitere Beispiele für Millisekunden gibt es hier.


Am Ende wollte ich noch auf die Option „ByTransmitter“ eingehen, aber dazu habe ich jetzt keine Lust mehr ;-)
Deshalb nur so viel: Mit der DC-16 macht diese Einstellung keinen Sinn und man sollte Sie vermeiden. Bei den Jeti-Umrüstmodulen für andere Sender kann Sie sinnvoll sein.

Fazit: Die Standard-Einstellungen von Jeti sind wohlüberlegt! Und die Ausgangs-Verteilung auf die 8 Gruppen ist kein Zufall damit wird nämlich die Stromaufnahme der Servos verteilt.
D.h. man sollte schon einen guten Grund haben um die Einstellungen zu ändern.


So. Jetzt dürft Ihr mir Eure Meinung sagen ;)

Gruß
Alex
 

Sass

User
Vielen Dank!

Vielen Dank!

Klasse Beitrag ! Das hätte einen Platz im Wiki verdient.

Die Option "By Transmitter" würde ich dennoch gerne verstehen. Auch wenn ich eine DC-16 habe.

Viele Grüße
Sass
 
Die Einstellung by Transmitter leitet die vom Sender kommenden Datenpakete direkt an die Ausgänge weiter, ohne diese in ein festes Zeitraster zu pressen.

Die Ausführungen über das Thema Latenzzeit ist eigendlich etwa zu vereinfachend.
Man muß sich zu Verständnis eigentlich den Datenfluß vor Augen führen, um das Thema zu verstehen.
Die entstehende Latenzzeit muß in die Entstehungsorte aufgeteilt werden:

1. Erfassungszeit des Gebers im Sender.
2. Zusammenstellen der Datenpakete im Sender-uC.
3. Übertragung über die HF-Strecke.
4. Dekodierung im Empfänger-uC
5. Ausgabe an der Impulse.

Genau genommen ist die Latenzzeit bei der Empfängereinstellung by Transmitter zusammen mit Digitalservos am kürzesten, wenn dann noch bei den großen Empfängern alle Impulse auf die ersten Zeitraster gelegt werden, weil es bei der Ausgabe keine zusätzliche Wartezeit vom Signaleingang zum nächsten Ausgaberaster ( zwischen 4. und 5.) gibt, wie bei der festen Zeiteinstellung der output-Period der Fall ist.

Ferner gibt es bei ein festen Zeiteinstellung noch einen Jitter (Schwankung) der Latenzzeit:
A: Kürzeste Zeit: Das Datenpaket trifft unmittelbar vor dem Ausgaberaster ein : direkte Ausgabe
B: Längste Zeit: Datenpaket trifft kurz nach Beginn der Ausgabe ein. Folge: normale Latenzzeit wie A + Wartezeit bis zum nächsten Ausgabezeitfenster.

Gruß Klaus
 
Die Einstellung by Transmitter leitet die vom Sender kommenden Datenpakete direkt an die Ausgänge weiter, ohne diese in ein festes Zeitraster zu pressen.

Das Stimmt aber eben nur für die Umrüstmodule die mit einem PPM-Summensignal gefütter werden, genau dafür wurde die Option vermutlich auch "erfunden".
Für die DC-16 mit aktueller Firmware ist das eine sehr schlechte Einstellung, weil dann die Impulse mit einem festen Takt vom 40ms ausgegeben werden.

Genau genommen ist die Latenzzeit bei der Empfängereinstellung by Transmitter zusammen mit Digitalservos am kürzesten.
Hier gilt das gleiche. Bei den Umrüstmodulen ist das richtig. Aber in Verbindung mit der DC-16 ist es falsch.

In Verbindung mit Analog-Servos kann es kann im übrigen auch bei den Umrüstmodulen besser sein ein ein festes Impulsraster vorzugeben. Und zwar dann wenn die Haltekraft wichtiger ist als die Latenz.
Aber das sind Dinge die sehr speziell sind, und mit zunehmendem Einsatz von Digital-Servos eher uninteressant werden.

Ansonsten stimme ich allen deinen Ausführungen zu.

Evtl. kann man das so ganz gut zusammen fassen:

Beim Einsatz von Umrüstmodulen die mit PPM versorgt werden ist die Einstellung "ByTranssmitter" in den meisten Fällen die beste.
Bei der DC-16 sollte man Einstellung "ByTranssmitter" nicht mehr verwenden! Der Standard-Wert von 20ms ist sinnvoll und eine gute Wahl.



Gruß
Alex
 
Hallo,
ich habe eine Messung, bei der die Pulse im Zusammenhang mit der DC16 in der Stellung "by transmitter" alle 20ms anstanden.

Oder gibt es in der DC16 irgendwo einen versteckten Menuepunkt bei dem man zwischen PPM und PPM-V2 Modus umschalten kann.

Gruß Klaus
 
Ich habe eine Messung, bei der die Pulse im Zusammenhang mit der DC16 in der Stellung "by transmitter" alle 20ms anstanden. Oder gibt es in der DC16 irgendwo einen versteckten Menuepunkt bei dem man zwischen PPM und PPM-V2 Modus umschalten kann.

Ja. Genau das hatte ich auch mit Firmware (1.01) und mit Firmware (1.03) waren es plötzlich 40ms. genau deshalb kam das ganze Thema ja auf.
Weil Leute nachdem Sender-Update plötzlich Servo-Ruckeln hatten wenn Sie "ByTransmitter" eingestellt hatten.

In der DC-16 gibt es nirgends einen Punkt zum Thema PPM, weil es m.E. intern gar kein PPM mehr gibt. Wozu sollte das auch gut sein.
Das einzige was es bei der DC-16 noch zum Thema PPM gibt ist ein PPM-Ausgang im Sender den man verwenden kann um z.B. eine vorhandene L/S Hardware oder ggf. ein Simulator-Kabel weiter zu verwenden.
Da man aber beides mit Bordmitteln der DC-16 besser lösen kann hat der Anschluß nur noch wenig Bedeutung. Das die HF-Teile bei der DC-16 noch per PPM-Signal versorgt werden, würde ich stark bezweifeln.
Zumal die DC-16 zwei HF-Teile hat die sehr unterschiedlich verwendet werden können.

Gruß
Alex
 
Das deutet aber sehr darauf hin, daß Jeti mit dem Update die Übertragungshäuftigkeit mit dem Update von 20ms auf 40ms zurückgenommen hat, denn die Stellung by transmitter entschlüsselt das ankommende gnadenlos, egal welcher Sender.
Dieses wäre allerdings alles andere als positiv.
Sprich, die Latenzzeit würde dann auf jeden Fall >40ms sein.

Gruß Klaus
 

ralfio

User
Beim Einsatz von Umrüstmodulen die mit PPM versorgt werden ist die Einstellung "ByTranssmitter" in den meisten Fällen die beste.
Bei der DC-16 sollte man Einstellung "ByTranssmitter" nicht mehr verwenden! Der Standard-Wert von 20ms ist sinnvoll und eine gute Wahl.



Gruß
Alex

Nur bedingt, eigentlich sollte man bei den Empfängern immer die Standardeinstellung 20ms benutzen, das funktioniert mit allen mir bekannten Umbauten. Lediglich bei Sendern mit Multiswitchmodulen ist die Einstellung "by Transmitter" obligat (neben ein paar anderen Anpassungen), ansonsten lassen sich die Multiswitchdekoder nicht richtig ansprechen.

Gruß
Ralf
 
Das deutet aber sehr darauf hin, daß Jeti mit dem Update die Übertragungshäuftigkeit mit dem Update von 20ms auf 40ms zurückgenommen hat, denn die Stellung by transmitter entschlüsselt das ankommende gnadenlos, egal welcher Sender. Dieses wäre allerdings alles andere als positiv. Sprich, die Latenzzeit würde dann auf jeden Fall >40ms sein.

Nein! Das ist definitiv nicht so. Habe ich auch oben auch bereits geschrieben. Wenn ich die "Output Period" auf 5 ms stelle bekomme ich spätestens nach 20ms eine Zustandsänderung der Impulse.
Solange Du weiter davon ausgehst das ein 2,4GHz Sender ein PPM-Signal genauso sequenziell überträgt wie ein 35 MHz Sender werden wir wohl nicht einig werden.

Bei 2,4 GHz besteht eine echte Datenverbindung zwischen Sender und Empfänger.
Beim Jeti Rückkanal sind das ca. 9600 Baud (Das ist bekannt). Gehen wir also mal davon aus das Jeti den Steuersignalen ähnlich viel Bandbreite spendiert wie der Telemetrie.
Ein Steuerknüppel wird mit 4096 Schritten aufgelöst, das sind 12Bit. Gehen wir nun davon aus das Jeti alle 16 Kanäle in der hohen Auflösung von 12Bit überträgt, sind das 192Bit.
Bei 9600 Baud schaffen wir also genau 50 * 192 Bit pro Sekunde.

=> Das sind exakt 20ms für die Übertragung aller 16 Kanäle bei 12Bit Auflösung und 9600 Baud.

Zufall ?

Kann sein, da ich die Übertragung nicht wirklich kenne sind das sehr viele Annahmen meinerseits, allerdings sind die durchaus realistisch.

Die Stellung "ByTransmitter" entschlüsselt bzw. decodiert m.E. gar nichts.
Die Umrüstmodule bekommen vom Sender ein PPM-Signal, das wird gesampled (vermultich sogar auch mit 12 Bit), dann digital als ein Paket an den Empfänger übertragen und dort wieder auf den Empfängerausgängen ausgegeben. Auch hier kann ich mir die Impulse alle 5 ms ausgeben lassen. Dann kommen sie aber eben nicht mehr synchron wie sie der Sender erzeugt.
Das braucht auch niemand wirklich, außer die Multiswitch-Module. Weil diese, wie Du mir ja plausibel erklärt hast, nur funktionieren wenn Sie die Signale alle synchron bekommen. D.h. es darf kein Impuls doppelt kommen oder fehlen. Und nur dafür gibt es die Einstellung "ByTransmitter".

Nach meinen bisherigen Erkenntissen behaupte ich das Jeti alle 20ms die 16 Kanäle in 12Bit Auflösung überträgt. Einzelne Kanal-Impulse wie bei 35MHz gibt es nicht mehr.
Ich glaube auch nicht das andere Sender sich im Timing hier wesentlich unterscheiden.
Denn um das schneller zu machen brauche ich entweder mehr Bandbreite, das geht aber zu lasten der Reichweite! Oder man geht mit der Auflösung runter, das wäre genau so schlecht.

Wie gesagt ich kenne nicht die tatsächlichen Datenraten mit denen gearbeitet wird. Aber keiner der Hersteller hat die 2,4 GHz Datenübertragung neu erfunden. Die Kochen alle nur mit Wasser.
Wenn jemand hier genauere Zahlen kennt, oder sogar Details zur Datenübertragung würde mich das sehr interessieren. Fakten sind immer besser als Annahmen.

Gruß
Alex
 
Nur bedingt, eigentlich sollte man bei den Empfängern immer die Standardeinstellung 20ms benutzen, das funktioniert mit allen mir bekannten Umbauten. Lediglich bei Sendern mit Multiswitchmodulen ist die Einstellung "by Transmitter" obligat (neben ein paar anderen Anpassungen), ansonsten lassen sich die Multiswitchdekoder nicht richtig ansprechen.

Ralf, ich bin 100% deiner Meinung. Mit der Einstellung 20ms fährt man in jedem Fall gut, solange man nicht wie Klaus die Multiswitch-Module verwendet.
Warum wohl hat Jeti die 20ms als Standard-Einstellung vorgegeben, wenn bei "ByTransmitter" die beste Wahl wäre ?!

Mit der DC-16 funktionieren die Multiswitch-Module sowieso nicht, daher ist hier "ByTransmitter" auch gar kein Thema.

Gruß
Alex
 

Andi G

User
Hast du bei der Einstellung by Transmitter mal den Empfänger auf Gruppen Ausgabe umgestellt? Sinds dann immer noch 40ms?

20ms ist wohl default weil manche Sender 14ms haben und nicht alle Analogservos damit gehen. 20ms geht immer... macht für den Hersteller Sinn, weniger Support Aufwand.
 
Hast du bei der Einstellung by Transmitter mal den Empfänger auf Gruppen Ausgabe umgestellt? Sinds dann immer noch 40ms?

Bisher nicht. Aber ein Versuch war es wert. Ich habe alle Kanäle auf Gruppe A eingestellt, hier das Ergebnis:

Bei Einstellung "5ms"
5ms.jpg

Bei Einstellung "ByTransmitter"
ByTransmitter.jpg

Ich denke man sieht den Unterschied.
Dargestellt sind die Kanäle 1 - 7 und als letztes Kanal 9, das ist aber nebensächlich.



20ms ist wohl default weil manche Sender 14ms haben und nicht alle Analogservos damit gehen. 20ms geht immer... macht für den Hersteller Sinn, weniger Support Aufwand.

Was meinst Du mit "manche Sender haben 14ms" ?

Gruß
Alex
 
Nachtrag:

Ich habe das gleich nochmal mit einer MC24 und TU-Modul als Sender gemacht.

Bei der Einstellung 5ms ist da Bild wie erwartet unverändert.
Bei der Einstellung "ByTramsmitter" ergibt sich mit eine Periode von ca. 22ms. Auch das ist keine Überraschung.

Gruß
Alex
 

Maistaucher

Vereinsmitglied, Offizieller 1. Avatarbeauftragter
Kann es sein, daß bei der 40ms-Messung ein Ein-/Ausgang (SAT-Schnittstelle) auf PPM-Out geschaltet ist, dieses wäre auch ein Grund für 40ms statt 20ms.

Gruß Klaus
 
@Klaus: Guter Gedanke, aber das kann ich ausschließen. Das Verhalten ist bei einem R8 und bei einem alten R6 (nicht EX) genauso. Die haben beide keinen SAT-Anschluß.

Gruß
Alex
 
Zuerst das wichtigste:

Mit Version 1.03.2 ist die Output-Rate mit der Einstellung "ByTransmitter" wieder ca. 20ms (schwankt etwa zwischen 19,4ms und 20,7ms), damit ist Sie wieder änlich wie bei der Standard-Einstellung "20ms".

Nach dem ich deshalb mal wieder beim messen war habe ich gleich noch einen etwas aufwendigeren Test gemacht, um der "echten" Latenz etwas näher zukommen.
Dazu habe ich das Umschalten eines Knüppelschalters und den entsprechenden Kanal am Empfänger zeitgleich aufgezeichnet.
Der Knüppelschalter schaltet Kanal 1 von -100% auf +100%, und somite den Impuls von 1ms auf 2ms, dadurch ist es gut sichtbar.
Den Empfänger habe ich so Eingestellt das er alle 5ms den Servo-Impuls ausgibt. Nach ein paar Aufzeichnungen hatte ich 17,75ms als schnellste Latenz zwischen Umschalten am Sender und Ausgabe der Impulses.

Oben der Schalter-Zustand direkt darunter die Kanal-Impulse
Latenz 17ms.jpg
Im Prinzip könnte man das so stehen lassen. Allerdings will ich nicht verschweigen das es natürlich auch deutlich höhere Werte gab.
Bei einem "normal" eingestellten Empfänger kann man sagen das die Latenz zwischen 20ms und 40ms liegt. Das ist eigentlich nicht verwunderlich, da der Zustand eben mit dem nächsten oder mit dem übernächsten Impuls ausgegeben wird. Das war genau genommen noch nie anders ;)
Und es wird auch bei anderen Herstellern nicht anders sein.

Wenn man die Impulse alle 10ms ausgibt, kann man evtl. minimal Zeit gewinnen. Ich denke allerdings nicht das es spürbar ist, und man sollte die Servos und deren Stromverbrauch bzw. Reaktion gut testen bevor man das tut. Für 5ms weniger Latenz lohnt sich das m.E. nicht.

Gruß
Alex
 
Ich wollte übrigens noch das PPM-Signal dazu aufzeichnen, dabei ist mir aufgefallen das an meinem PPM-Stecker gar kein Signal ausgegeben wird !?
Hat da schon mal jemand was erfolgreich angeschlossen ? Muss man den Ausgang ggf. noch irgendwo aktivieren ?

Gruß
Alex
 
Ansicht hell / dunkel umschalten
Oben Unten