Arduino Multiswich auf Futaba F16 mit Jamera T8F Jump 2,4Ghz Steck Modul

    • Arduino Multiswich auf Futaba F16 mit Jamera T8F Jump 2,4Ghz Steck Modul

      Moin, an alle hier im Forum.
      Ich versuche gerade die oben genannte Kombi auf meiner Anlage zu im klassischen PPM Multiplexen eines Proportional Kanals zu realisieren. Ich hatte vor etlichen Jahren schon mal ein Decoder als IC Grab auf Basis div. TTL IC zusammengebastelt , welches auch einigermaßen stabil lief (glaube die Vorlage kam von ELV). Ich kenne mich also mit den üblichen Protokollen schon ein wenig aus.

      Da ich bei Dr. Goog.e auf meine Sender HF-Modul kombi gar keine Informationen über die F16 (Ja, es ist wirklich eine F16 :D ) mit 2,4 Ghz Modul und schon gar nicht mit zusätzlichen Encoder und Decoder gefunden habe. Habe ich mal ein wenig in der Bastelkiste gekramt und einen Arduino Nano und ein ATMega2560 zum Vorschein gebracht.
      Die suche nach ein paar Sketches (Programmen), die ich für meine zwecke Nutzen/Weiterentwickeln wollte blieb auch nicht von erfolg Gekrönt. Bis auf ein paar halbfertige Code-schnipsel war nichts wirklich brauchbares dabei. Der NANO soll in den Sender und Der MEGA in das Boot (Adolph Bermpohl) als Ersatz für einen weiteren NANO, der momentan eh nur als einfacher Schalter für 2 Prop. Kanäle fungiert.
      Meine Programmiererfahrungen sind zwar eher Mittelprächtig, aber wer nicht gewagt, der nicht gewinnt.

      Der Encoder ging erst recht flott von der Hand, Abtasten des Multi-Erweiterungsports via Interruppt. Mein gemessenes Signal dort ist übrigens 0,208ms High und 21,87ms Low.
      Währenddessen werden die einzelnen Schalter abgefragt und einem 4 Bit Wert zugeordnet (SYNC; LOW; MID; HIGH). Die dann mit jeder Fallenden Flanke des Sinc Signals beginnend mit dem Sync Signal für dem Decoder durchgeschaltet werden. Der Wert wird Parallel auf PORTB geschrieben (um evtl Fehlwerte durch Abragen des Senders während des Updates zu minimieren) und so ein R2R Netzwerk übergeben, welches anstatt eines Poti an Anschluss 8 der Funke hängt dieses soll später noch durch ein Digitalpotenziometer ersetzt werden, um auch Multi-Prop Kanäle zu ermöglichen.

      Wenn ich jetzt allerdings die Signale an der Empfängerseite versuche zu Empfangen kommen einige Signale 2-3 Fach durch und einige teilweise gar nicht. merkwürdig ist, das es nicht wirklich ein heilloses durcheinander ist sondern z.B. jeder 2. Schalter geht nicht, und Diejenigen, die Funktionieren geben ein zusätzliches gleichmäßiges Blicksignal auf den benachbarten Kanälen aus.

      Meine Fragen Jetzt ist dieses Phänomen irgendwie bekannt oder bin ich einfach nur zu blauäugig an die Sache ran gegangen. Für mich schaut es irgendwie so aus als wenn mein HF Modul nicht über den Sender Synchronisiert wird und mal etwas früher und mal etwas später das Summensignal vom Sender auswertet und Sendet. Habe aber auch schon probiert eine art Phasenverschiebung einzubauen, aber ohne irgendwelche nennenswerte Besserung. An bauen von Zwischenwerten um ein Servo-zittern zu reduzieren schaut das Signal nicht aus, da ich alle 4 Schaltzustände nahezu sauber erhalte.

      1. Kennt sich jemand mit den 2,4Ghz Modulen von Jamera aus und kann mir sagen, ob ich dort ein Sync Signal in irgend deiner Form abgreifen kann. Bringt das überhaupt was? müsste dann ja mit diesem Signal die F16 Syncroniesieren Warum müssen andere Module oft trotz Sync-Signal an die Sender angepasst werden. nur wegen der evtl unterschiedlich langen PWM Signal?
      2. Falls es das nicht gibt, gibt es eine Art Protokoll, das einfach und zuverlässig funktioniert, das ohne Sync Signal funktioniert und keine Probleme mit Doppelten/ 3 Fachen Signalen hat.
      3. Wann wird das Signal vom Poti genau Abgefragt und in das Summensignal verpackt Steigende /Fallende Flanke oder erst Just in Time.
      4. Warum existieren eigentlich keine Sketches für Encoder oder Decoder im Netz, wo sonnst jeder 2. alles mögliche Veröffentlicht oder zur Schau stellt. Ist ein Ardoino für so etwas so schlecht geeignet?
      5. Irgendwas anderes nützliches, was mir auf die schnelle nicht eingefallen ist. ;)

      LG Michael
    • Das Signal habe ich ja und das Protokoll auch. Nur das mir anscheinend das 2,4 Ghz modul einen strich durch die Rechnung macht.
      Auf den Seiten von Claus und Beier war ich auch schon. die arbeiten soweit ich gesehen habe auch mit doppeltem Multiplexen der Kanäle.
      Claus hat auch schon beschrieben wie er ohne Sync Signal auskommen könnte, wenn er etwas langsamer Überträgt als die sync Frequenz. bei mir scheint die aber jenseits von gut und böse zu liegen, da ich sehr oft doppelte und Signale bekomme.
      Das einzige Protokoll was mir jetz Spontan einfällt ist das ich nur Änderungen mit halber Syncfreuenz also doppelt übertrage. das Signal würde dann etwa so aussehen:
      Sync, Sync Kanal, Kanal, Wert Wert. ...
      Das ist Softwaretechnisch aber recht aufwenddig zu Entcoden . zu Decodieren und Prop Kanäle sind da auch recht störanfällig..
      werde aber Morgen Abend mal das ganze mit einem alten 40Mhz Sender durchprobieren. evtl stellt sich da ja auch ein Heureka Effekt Ein, und ich bemerke, das ich im Skech einen Fehler habe.
    • Neu

      Ich hatte auch die F16 (ohne C) und habe mir daran die Zähne ausgebissen, und das sogar ganz normal mit 40 MHz ohne 2,4 GHz Modul. Eine frühere Version des Multiswitch von Claus hat damit mal funktioniert, aber alle späteren Versuche sind zumindest mit meinem Sender gescheitert. Wenn ich mich recht entsinne, laufen die Sync-Signale etc. bei diesem Sender auch mit der vollen Akkuspannung und ich habe mich sehr gewundert, dass der PIC das damals überhaupt überlebt hat.

      Letztlich hat mich das dazu veranlasst, den hier im Forum vorgestellten Multiswitch zu basteln, der ganz unabhängig von Protokollen und Sync-Signalen mit jedem Sender funktionieren sollte. Der Baustein kann im Moment allerdings nur 5 Schaltkanäle pro Senderkanal übertragen und MultiProp funktioniert damit gar nicht.

      Ich habe allerdings vor, noch ein paar Experimente mit Arduino im Sender durchzuführen, ob da nicht doch mehr geht.
    • Neu

      Schon mal super, das ich damit nicht ganz alleine auf weiter flur stehe. Das Sun. Signal läuft bei mir auf 5V das sollte bis auf das extrem kurze Signal kein Problem darstellen.
      Die Digital-Poti schon eher, da liegen über 10 V an Spannung an. Ich Depp hab beim Bestellen der Digitalpotentiometer auch gleich die falschen mit nur 5,5V Max bestellt. Das heißt ich kann nur die halbe Austeuerung nutzen.

      Ein Encoder-Programm, welches ohne Sync auskommt habe ich auch schon zum Testen geschrieben. Konnte es aber noch nicht ausprobieren.
      Kanäle werden es, wenn die Impulslänge bei sinkender Akkuspannung nicht zu sehr driftet, so zwischen 8-16 werden.
      Das Protokoll schaut nach meiner Vorstellung am besten so aus.
      Ein eindeutiges Sync Signal dann ein festgelegtes proportionales Signal für den Kanal. Anschließend der Wert. Die prop Kanäle werden gemapt, so dass sie nicht in den Bereich des Sync Signals kommen. Das ganze läuft dann, mit etwas niedriger Frequenz als der Sender, für jeden Kanal hintereinander durch. Bei Schalteränderung oder Proportionaländerung wird über einen Interrupt der sich geänderte Kanal gepuscht und dazwischen geschoben. Bei einem Prop-Kanal verbleibt er bis zum nächsten Interrupt oder einem eingestellten Timeout auf dem Kanal um die Signale in nahezu Echtzeit zu übertragen.


      Für andere Ideen und Vorschläge bin ich aber auch dankbar.

      Es wird nach den testen auch einen Baubericht geben und der Programmcode wird für nicht kommerziellen Einsatz veröffentlicht, so dass es fast jeder nachbauen kann. Und auf den Decoder kommt noch ein Mp3 Modul für Sondausgabe.
    • Neu

      Alsoooooooo............
      Vor vielen Jahren gab es DSM-1/DSSS/... als Übertragungsprotokoll.
      Das waren die ersten 2.4GHz Umsetzungen, welche einfach vorhandene ca. 22ms Frames nutzende Sender-Hardware entsprechend übertrugen.
      Inzwischen sind die Sender und die Protokolle moderner und entsprechend sicherer, vielfältiger und auch schneller in der Datenübertragung.
      Die ursprünglich 10kHz Bandbreite sind 500khz gewichen, die Kanäle (theoretisch) entsprechend vermehrt und die Latenzzeit erheblich geschrumpft worden.

      Bei heutigen Empfängern hast Du kein Sync Signal mehr, die Daten kommen quasi parallel permanent an den Servoausgängen an. Darum haben heutige Systeme einen höheren Strombedarf, weil viel "häufiger" genauer (digital 1024 oder 2048 Bit) nachgeregelt wird.

      Du brauchst für Deine Anwendung wahrscheinlich auf dem "Kanal selbst" ein Sync oder Abfrage-Initial-Signal.
      "Suppenhuhn" ist in einem eigenen fred ebenfalls an sowas dran. Allerdings OpenTX spezifisch.

      Hier mal ein paar freds...

      Das Erwachen der Graupner Nautik-Module unter FrSky und OpenTX mit LUA

      Sender-Proportionalkänale mit Arduino steuern

      16 zusätzliche Proportionaleingänge via PPM mit Arduino

      Leo
    • Neu

      Ja genau, da ich ja auch Proportional übertragen möchte brauche ich das Signal auf dem Kanal selbst sonst könnten Proportional und Schaltkanal verwechselt werden. Das Sync Signal setzt den Decoder sozusagen zurück, so das er auf "Kanal Umschalten Signal" wartet. Wenn der Kanal umgeschaltet ist wird das Signal erstmal wie ein ganz normaler Kanal übertragen.

      Die F-16 ist ein Sender aus 1998 eigentlich nur für FM und AM gedacht. Eigentlich unverwüstlich, deswegen ich weiter auf die gute alte Technik baue.
      Hinten steckt ein Austauschbares Sendemodul, so das man damals schon zwischen 35Mhz und 40 MHz einfach wechseln konnte. Heutzutage gibt es dafür auch Module für 2,4 Ghz. Alles Plug & Play, obwohl es den Begriff damals bestimmt noch nicht gab.

      Meines was ich hier verwende von Jamara kann soweit ich weiß leider kein OpenTX. Sonnst hätte ich mich wahrscheinlich dort schon mit eingeklinkt.
      Und mit den Handelsüblichen Decodern Encodern auch nicht, da es sich anscheinend einen sch...ß um die Sync Signale des Senders kümmert.

      Das von mir verwendete "Protokoll" sollte eigentlich, mit ein Paar kleinen Konfigurationen, auf jeder Sender Empfänger Kombi laufen.

      Selbst bei denen deren Ausgänge gegen Servozittern geglättet/gefiltert werden.
      Dort lässt man die 3 Signale die für einen Umschaltvorgang nötig sind nicht je 25ms stehen, sondern z.B. je 100ms . So hat man spätestens nach 300ms eine Reaktion.
      Da danach der Proportional Kanal dann ohne Sync und Kanalvorgabe funktioniert, sogar in Echtzeit.
      Ein Nachteil ist aber, das ein 2. Prop Kanal wiederum 300ms bis zur ersten Reaktion braucht. So kann man dann Praktisch nur einen zur zeit nutzen, oder sich an das kurze stocken gewöhnen.

      Eine weitere Möglichkeit die ich überlegt hatte war auch ein WiFi Verbindung aufs Smartphone zu machen und die Zusatzfunktionen darüber zu steuern, evtl sogar ein Videosignal zurück, hab mich aber erstmal für die Old School Variante entschieden.
    • Neu

      Ich habe da auch schon drauf rumgekaut. Meine Idee war es, vom ganz normalen Servosignal auszugehen. Den entsprechenden Kanal wollte ich dann über ein DAC ansteuern.
      Für die Synchronisation von Encoder und Decoder war meine Idee, den niedrigsten Wert (1 ms) für die Synchronisation selbst zu reservieren. Damit meine ich, die eigentlichen Werte über ein Mapping auf 16 bis 255 umzurechnen (bei einer Auflösung von 256 Schritten). 0 bis 15 wäre dann das Syncsignal.

      Das sähe dann so aus, dass der Decoder auf ein Servosignal mit genau 1 ms wartet, und dann anschließend alle folgenden Servosignale sequentiell den Kanälen zuordnet - und wieder von 16-255 auf 0-255 umrechnet.

      Aber ich habe es noch nicht hinbekommen, dass die Abfolge dieser Servosignale genau richtig beim Empfänger ankommt. D.h. es kommt vor, dass einzelne Werte doppelt ankommen oder verschluckt werden. Ein möglicher Ansatz wäre es, jeden Wert dreifach zu senden und nur den mittleren Wert zu nutzen. Macht das Ganze aber auch nicht gerade schneller...
    • Neu

      Hört sich für mich so an das da der Zeitpunkt nicht stimmte, wo du die Neuen Signale aufs Poti geschickt hast oder das der Interrupt oder die I2C Übertragung zu viel Zeit gekostet hat.
      Ich hab bei meinem Versuch diese Ubertragungsart a la Graupner/Robbe & co zu machen nur das Summensignal kontrollieren können, welches in das HF-Modul geschickt wird, da hatt es Offensichtlich noch funktioniert. Am Empfänger nicht mehr.
      Das gute an dem, welches ich jetzt versuchen werde. Es ist fast egal wie oft es gesendet wird der Decoder kann es herausfiltern.
    • Neu

      Ja genau, das Timing macht mir da Ärger. Ich hatte gehofft, es würde genügen, jeden Wert für die übliche Signaldauer von 22 ms auf dem DAC stehen zu lassen, damit immer genau ein passender Servowert übertragen wird. Aber so genau haut das leider nicht hin.
      Ich hatte im ersten Ansatz versucht, über einen CTC-Timer ein genaues Timing zu erreichen. Leider war es mir aber nicht gelungen, innerhalb der entsprechenden Interrupt-Routine den DAC über I²C anzusteuern. Im zweiten Versuch habe ich es dann viel simpler mit einfachen delay-Commands versucht und das Ergebnis am Empfänger mit einem Logic Analyzer kontrolliert. Dabei kam es dann zu oben geschilderten Abweichungen.

      Berichte mal weiter von Deinen Versuchen, bin sehr neugierig auf Deine Ergebnisse.
    • Neu

      Eine Ursache ist der alte Sender :)
      Hier wird nur alle ca. 25ms der zustand des "Poties" abgefragt. Du kannst also ca. 40 Zustandsänderungen pro Sekunde übermitteln.
      Zudem brauchst Du irgend einen Sync auf der Empfängerseite.
      Ich würde 2 Ansätze prüfen:
      - Nutzung eines 2. Kanals für Sync
      - Alle x Frames den Kanal auf absolut Null setzen und damit Synchronisieren.

      Ah... da fällt mir noch ein Dritter ein...
      Schau mal nach einem "gebrauchten" Corona DSSS Modul. Das darfst Du in DE als Bestandsschutz, bei erster in Betriebnahme des Moduls vor der neuen 2.4GHz Norm, noch nutzen.
      Das übermittelt so wie die alten Sender mit den ca. 22ms Frames und lässt das auch so an die Servos raus...
      Sync geht also.
      YETI bietet das auch als Option an, kostet aber viel mehr.

      Leo
      P.S. ich hätte da doch in der Bastelkiste noch so'n Corona und einige Empfänger aus vergangenen Tagen...