OpenTX - Multiplex MLINK Konverter

Hi Gruni,

im Moment schwebt mir dieses Board vor.
Nachteil ist, dass es bei 16 MHz nicht mit 3,3 V betrieben werden kann.
Es gibt aber auch eine Variante mit 8 MHz Takt, die mit 3,3 V läuft, davon hätte ich sogar ein paar hier rumliegen.
Die Frage ist, ob ich mit 8 MHz Taktfrequenz den SW UART für die 115,2 kBd des M-Link Signals zum Laufen kriege.
Ich habe heute einige Messungen gemacht, die darauf hindeuten, dass es gehen könnte.
Die eigentliche Anpassung des Programms wäre simpel, vielleicht probiere ich es einfach demnächst mal aus.

Wenn es mit den 8 MHz klappt, wäre natürlich das Board auch nicht zu verachten.
Könnte man vermutlich direkt im M-Link Sendemodul unterbringen.
Ich bin jetzt bei ca. 1,3 kByte, das sollte sich eigentlich mit dem ATtiny 841er Board ausgehen.

Ich habe übrigens heute das Programm etwas "gestreamlined", und bei der Gelegenheit auch die zweite Spannung auf Adresse 2 hinzugefügt (wird als A2 zur Taranis übertragen).
Damit ist der "Remote Voltage und RSSI Frame" jetzt voll.
Ich muss dann als nächstes den User Data Frame für die Übertagung der anderen Parameter implementieren.
Aber das ist jetzt alles kein großes Problem mehr, da die zeitkritischen Sachen laufen.


Gruß
Reinhardt
 

gruni

User
Hallo Reinhardt,

welche Software verwendest Du dabei?
Das löten auf eine Adapterplatine sollte kein Problem sein, pinabstand sollte der gleiche sein. Inverter?

Grüsse Gruni
 
Hallo Reinhardt,

welche Software verwendest Du dabei?
Das löten auf eine Adapterplatine sollte kein Problem sein, pinabstand sollte der gleiche sein. Inverter?

Grüsse Gruni
Hallo Gruni,

ich weiss jetzt nicht genau, was Du mit "welche Software" meinst.
Als Entwicklungsumgebung benutzte ich das Atmel Studio 7 mit dem integrierten GCC C-Compiler.

Falls Du den Bootloader meinst, da weiss ich noch nicht, ob ich überhaupt einen benutze oder einfach über ISP die SW aufspiele.

Das mit dem Inverter geht mir auch im Kopf um.
Es wäre natürlich super, wenn man außer dem Board keinerlei weitere Bauteile mehr benötigt.
Wahrscheinlich werde ich daher die serielle Ausgabe einfach auch per SW machen, dann kann man die Invertierung gleich berücksichtigen.
Die 9,6 kBd sind ja ein Klacks, da hat man alle Zeit der Welt.


Gruß
Reinhardt
 

kalle123

User
Hallo Reinhardt.

Kannst du mal ein paar Fotos von deinem Aufbau posten (oder ist das geheim?) Und gibt es schon was auf der Taranis zu sehen?

Würde mich auch interessieren, welche hardware du da hast. MPX, FrSky, Analyser ....

Wir haben zwar ein voll funktionierendes System mit nem teensy LC, aber vielleicht kommst du ja noch mit nem Ansatz in Richtung GPS rüber.

cu KH
 
Hi Kalle,

natürlich ist der Aufbau nicht geheim.

Sender: Taranis X9D Plus mit HFMG3 Modul

Testboard: Arduino Uno (ATmega 328P, 16 MHz) mit Atmel ISP Programmer

Bus Analyser: Hameg HMO1022 (2-Kanal Oszi 100 MHz mit 8-Kanal Logikanalyser und SW-Option zur Analyse serieller Busse.)

Den Hameg habe ich mit mal gegönnt, als ich mit der MSB Programmiererei angefangen habe.
Das Teil ist für so was natürlich genial, hat aber eben auch seinen Preis.

Auf dem Taranis-Display sieht man mangels geeignetem Stecker für die serielle Schnittstelle noch nichts.
Aber mit dem Busanalyser kann man sehr komfortabel arbeiten, man sieht sofort, was Sache ist.
(auf dem Screenshot unten z.B. 5,0 V (32h) und 100% LQI (64h).

Was das Multiplex GPS angeht, dafür habe ich momentan keine Verwendung (und habe auch keins).
Das muss nicht heißen, dass das immer so bleibt, aber erst mal muss alles andere laufen. ;)
Hier ein paar Bilder und ein Screenshot.

IMG_0001 (800x600).jpg
IMG_0004 (800x600).jpg
IMG_0003.jpg
SCR01.PNG


Gruß

Reinhardt
 

kalle123

User
Reinhardt, schöner ordentlicher Arbeitsplatz ;)

Feine Sache, der Hameg. Hab "nur" nen Rigol hier und zur Analyse den Saleae Clone aus Fernost. Geht aber auch recht gut.

Die Frage mit dem GPS war mehr oder minder etwas provokativ, da MPX ja nicht LAT und LON überträgt, sondern was Eignes wie Richtung, Abstand ...

Bei der Sensorik kann ich nur oXs empfehlen. Vario, Spannung, Strom, Drehzahl, GPS etc.

Anything goes und wird aktiv weiter entwickelt. Basiert auch auf Atmel.

Gruß KH

PS. Hab gerade mal den Preis für den Hameg gegoogelt :eek: Naja, bei dir der Hameg, bei mir halt die Modelldrehbank.
 
Drehbank aus China, wo gibt's den sowas? Sind da die Versandkosten nicht teurer als die ganze Bank?
LG
Roland
 
Hallo zusammen,

die Software für den Konverter ist jetzt insoweit "fertig", als daß ich jetzt ohne Anbindung an die Taranis nicht mehr wirklich weiterkomme.
Will heißen, die von mir angestrebten Sensorwerte sind alle implementiert, wobei natürlich noch einige Fragen offen sind.

Ich sende momentan alle 40 ms ein Datenpaket, wobei zwischen RVLQ Frame und den User Frames für die anderen Parameter durchrotiert wird.
(Mal sehen, was der Sender später dazu sagt. :D)

Im RVLQ Frame werden LQI, Empfängerspannung und die Spannung mit der MSB Adresse 2 übertragen.

Für die User Data Frames habe ich folgende IDs verwendet:

Für die Spannung (MSB Adresse 5) habe ich im Internet eine ID von 0x39 gefunden.
Diese soll einen Spannungswert mit 0,1 V Auflösung repräsentieren, also genau wie bei M-Link.
Allerdings kann M-Link auch negative Spannungswerte ausgeben, diese werden bei mir einfach auf 0 gesetzt.

Die IDs für Strom und Höhe sind gemäß FrSky D-Protokoll, wobei für die Höhe nur die ID für den ganzzahligen Wert berücksichtigt wird,
da die Auflösung des Multiplex Varios 1 m beträgt.
Als ID für die Steigrate habe ich irgendwo 0x30 gefunden, ohne weitere Angaben zu Auflösung etc., mal sehen, was dabei auf dem Display erscheint.

Für die Ladung (Akkukapazität) habe ich gar keine ID gefunden, da diese ja normalerweise OpenTx selbst berechnet.
Mal sehen, ob man da irgendwas anderes missbrauchen kann, das werde ich eruieren, wenn ich den Sender mal anschließen kann.

Soweit, so gut, jetzt muss ich mir halt den passenden Stecker besorgen für die weiteren Tests mit der Taranis.
Insbesondere muss ich noch Features einbauen, um bei ungültigen (oder gar keinen) M-Link Daten entsprechend zu reagieren.

Ach ja, ich bin jetzt bei ca. 1,8 kB, das sollte sich also mit einem ATtiny 841 Board ausgehen. :)


Gruß
Reinhardt
 
Hallo zusammen,

nachdem ich jetzt einige Tage wegen Erkältung ziemlich geschwächelt habe, gibt es heute endlich mal wieder was zu berichten.
Ich habe mir mit einer 2 mm Buchsenleiste einen Adapter zum Anschluss an den seriellen Port gebaut und den Konverter daran angeschlossen.
Kaum war das geschehen, flüsterte mir der Sender "Telemetrie aktiv" zu. :)

Nach einer Sensorsuche wurden direkt RSSI, A1, A2, FVAS und Curr angezeigt.
A1 zeigte zunächst 2,7 V an, was mich etwas gewundert hat, bis mir eingefallen ist, dass der Messbereich defaultmäßig auf 13,2 V skaliert ist.
M-Link liefert aber in den unteren 8 Bit bis zu 25,5 V, und nach Änderung der Skalierung stimmte der Wert
aufs Zehntel Volt mit der Anzeige des Labornetzgerätes überein, das den M-Link Empfänger versorgt.

Dass Höhe, Vario und Ladung nicht angezeigt werden, liegt einfach daran, dass die entsprechenden Frames noch nicht richtig befüllt werden.
Für Vario und Ladung weiss ich noch nicht, welche ID ich verwenden soll.

Ich hätte ja nicht gedacht, dass da auf Anhieb was auf dem Display auftaucht, aber umso besser. :D
So schaut's im Moment aus (leider etwas unscharf).

IMG_0005.jpg

Ich melde mich wieder, wenn es was neues gibt.


Gruß
Reinhardt
 

eisi

Vereinsmitglied
Tach zusammen,

meine absolute Anerkennung und Bewunderung. Ich ziehe meinen Hut. Ich finde es toll, wenn jemand soetwas hin bekommt. Weiter so. Ich freue mich auf weitere Ergebnisse.


Gruß
Frank
 
Angesichts des Lobes hier mal die neuesten Erkenntnisse.

Alle von mir geplanten Parameter werden jetzt übertragen. :)

Für die Höhe hatte ich zunächst nur den ganzzahligen Anteil gesendet, da das MPX Vario eine Auflösung von 1 m hat.
Das reicht aber offensichtlich nicht, man muss auch den Nachkommaanteil übetragen, damit es OpenTx anzeigt, auch wenn dieser 0 ist.

Für die Steigrate (Vario) habe ich jetzt die ID 0x30 implementiert, und schon taucht der Wert auf dem Display auf.

Für die Kapazität nehme ich einfach eine unbenutzte ID und passe Namen und Einheit im Sender an.
Damit kann ich dann sogar die negativen Werte übertragen, die der MPX Stromsender ausgibt, wenn man keine Akkukapazität einstellt.

Wenn man sich die Auflösungen einiger Parameter ansieht, scheint es fast so, als ob man da einiges von M-Link übernommen hätte. :D
Spannung: 0,1 V, Strom: 0,1 A, Vario: 0,1 m/s, alles genau wie beim M-Link Format.

Ich habe jetzt angefangen, die Programmstruktur zu optimieren und so flexibel zu gestalten, dass man später leicht andere Parameter hinzufügen kann.
Z.B. liest das M-Link Interface jetzt alles ein, was da ankommt und legt es in einem Daten-Array ab, das alle möglichen MSB Adressen beinhaltet.
Da kann man dann später leicht zusätzliche Parameter rausholen und umwandeln.

Außerdem muss ich noch was einbauen, um ungültige Telemetriedaten am M-Link Eingang zu behandeln.

Ich werde weiter berichten, allerdings wird demnächst eine kleine Pause entstehen wegen eines kurzen Urlaubs.
Danach muss ich dann mein Ei legen, welches Board ich nehme, und wie ich es in der Taranis, oder evtl. direkt im M-Link Modul, verbaue.
Die kleinen Arduino-Klone passen problemlos ins Batteriefach, auch ohne anderen Deckel.
Die Kabel möchte ich, soweit irgend möglich, intern verlegen.


Gruß
Reinhardt
 
Hallo Reinhardt,
Welche mpx Module hast du getestet?
Beim Teensy Konverter mit Hfmg1 muß die Verbindung nach dem Senderstart 1x kurz getrennt werden, sonst "redet" das Modul nicht.
Beim Hfmg3 ist das nicht notwendig.
Laut Mpx verwenden beide Module die gleiche Software. In der X9e kann man das Problem mit einem Taster lösen. Auch wenn dies keine Schöne Lösung ist.
Vielleicht kann dein Konverter alle Module ohne Tricks zum sprechen bringen.

Lg Roland
 
Hallo Reinhardt,
Welche mpx Module hast du getestet?
Beim Teensy Konverter mit Hfmg1 muß die Verbindung nach dem Senderstart 1x kurz getrennt werden, sonst "redet" das Modul nicht.
Beim Hfmg3 ist das nicht notwendig.
Laut Mpx verwenden beide Module die gleiche Software. In der X9e kann man das Problem mit einem Taster lösen. Auch wenn dies keine Schöne Lösung ist.
Vielleicht kann dein Konverter alle Module ohne Tricks zum sprechen bringen.

Lg Roland
Hallo Roland,

ich habe das HFMG3 in der Taranis Plus getestet.

Ich hatte auch sporadisch den Fall, dass das Modul nach dem Einschalten nichts sendet.
Wenn der Telemetrie-Ausgang des Moduls beim Einschalten offen ist, und erst dann mit dem µC verbunden wird,
scheint es immer zu funktionieren.
Ich habe mir schon vorgemerkt, dieses Phänomen aufzuklären und irgendwie zu umgehen.

In den früheren Threads wurde mal gesagt, dass am Ausgang für eine bestimmte Zeit kein High Pegel anliegen darf.
Da das Modul ja selbst den Ausgang ansteuert, kann das nur heißen, dass kein Pull-Up Widerstand aktiv sein darf.
Wenn der Konverter ansonsten mal wie gewünscht läuft, werde ich diesem Problem auf den Grund gehen.
Vielleicht darf man den internen Pull-Up für den Eingangs-Pin erst eine gewisse Zeit nach dem Start aktivieren (oder gar nicht?).
Ziel ist auf jeden Fall, dass die Kiste immer einwandfrei hochläuft, alles andere wäre ein Witz.
Mit dem MPX Telemetrie-Display geht es ja schließlich auch immer, leider habe ich keins mehr, um mal zu vergleichen.


Gruß
Reinhardt
 
Hi,
Ich wäre beim Testen gerne behilflich! Ich habe die X9E und X9D und HFMG1 und HFMG3.
damit könnte ich zumindest auf Funktion testen.
Hast du dich schon für ein Board entschieden?
Ein Arduino nano Clone wäre natürlich sehr angenehm, da billig und mehrfach vorhanden!

LG
Roland
 

gruni

User
Hallo Kollegen,

Schön, mal wieder etwas über den Konverter von Euch zu lesen.
Bei unseren beiden Konvertern, einmal teensy 3.2 und einmal LC wird die Verbindung immer aktiv, ich hab den 3.2 in xbeliebigen Reihenfolgen, erst rx, dann TX und umgekehrt, mit und ohne unisense, unisense erst nach Verbindungsaufnahme, rx ab und an aus und einschalten, Sender aus und einschalten...IMMER wurde die Telemetrieanzeige sauber wieder in Betrieb genommen.
Vielleicht gibt es Unterschiede bei den MPX-Modulen...

Grüsse Gruni

PS: aus Zeitmangel komme ich mit dem Jetizeug nicht weiter. Gibts noch einen Quereinsteiger?:p
 
Hallo Gruni,
Die erwähnten Probleme treten nur beim Hfmg1 auf. Laut Mpx verwenden alle Module die gleiche Software.
"Mehr kann ich ihnen dazu nicht sagen" *) (Zitat Mpx)
Wen dem so ist, müsste in der Mpx Software etwas drinnen stehen, mit dem alle Module umgehen können.
Dies herauszufinden übersteigt mein Wissen und Können, wäre für alle Kombination aus Sendern und Modulen aber sehr von Vorteil.
HFMGx und Souffleur muss ich mit Teensy Konverter mal testen.
Jedenfalls hat Reinhardt vollkommen recht, das ein Konverter alle Kombinationen verkraften muss um massentauglich zu sein.
Wir Bastler haben vielleicht kein Problem damit uns auf Gegebenheiten einzustellen. Ein plug&play Konverter der mit jeder Hardware funktioniert wäre schon fein.
Damit könnte man MPX schon ein bissi den Marsch blasen!
Ich bin trotzdem noch ein Mpx Fan. Die machen wirklich gute Hardware. Teuer aber sehr gut und zuverlässig! Angefangen von kleinen Steckern bis zu ganzen Sendern funktioniert wirklich alles einwandfrei von mpx.
Abgesehen davon, sollte man auch aus wirtschaftlichen Gründen europäische Wertschöpfung bevorzugen.
Aber solang nur in Fernost Kundenwünsche berücksichtigt werden, werden heimische Marktanteile wohl berechtigter weise immer weiter sinken.
OpenTx ist einfach unschlagbar! Mir geht fast täglich einer ab, wenn ich wieder eine neue Option anpassen konnte. Unendliche Optionen! Yes! So soll es sein.
Wenn die Hardware auch noch besser wird, werden es heimische Unternehmen schwer haben!. Ist wie in der Politik, die alt eingesessenen verpassen die Wende..
Eine ProfiTX auf opentx umzubauen wäre möglich, aber Uff-uff. Dafür eine ProfiTX zu zerstören ist mir dann doch zu teuer. Die zwei boards(100€ zusammen) der X9e passen problemlos hinein . Der Rest wäre halb so wild
Aber egal, ich schweife ab.

Mein Ziel wäre auf 100% MPX Hardware OpenTx zu betreiben. Solche Konverter sind ein großer Schritt in diese Richtung.

Wenn sich JETI auch noch dazu gesellen würde, wäre der Konverter ein mächtiges Tool und das Ende jedes JR Moduls. Zumindest Mpx hat die Module schon eingestellt.


Lg Roland
 
Hallo zusammen,

nachdem ich in den letzten zwei Wochen ca. 570 km entlang des Neckars und durch die Südpfalz abgeradelt habe,
melde ich mich also wieder zu Wort, damit nicht jemand glaubt, das Thema Konverter wäre eingeschlafen.

Ich werde als nächstes testen, ob bei deaktiviertem Pull-Up das M-Link Modul zuverlässig immer Daten sendet.
Ich bin mir eigentlich ziemlich sicher, dass das so sein wird, aber warten wir es ab.
Das M-Link Modul hat (wie auch die M-Link Sensoren) m.W. einen Push/Pull Ausgang, so dass ein Pull-Up überflüssig ist.
Ich meine auch, mich zu erinnern, dass der High Pegel nicht auf den 5 V des Uno Moduls, sondern bei 3,3 V liegt.
(werde ich später nochmal explizit verifizieren)

Ich kann mir übrigens nicht vorstellen, dass sich HFMG1 und HFMG3 Module diesbezüglich unterschiedlich verhalten.


Gruß
Reinhardt
 
So, jetzt ist es amtlich.

Ich habe den Pull-Up am M-Link Eingang des µC deaktiviert, und schon läuft die Datenübertragung des M-Link Moduls jedes Mal problemlos an.
Bei aktiviertem Pull-Up bleibt der Pegel zwischen der Versorgungsspannung des Uno (5 V) und der des M-Link Moduls (3,3 V) hängen.

Wenn man den Ausgang des M-Link Moduls erst nach dem Einschalten mit dem Uno verbindet, läuft die Datenübertragung weiter.
Allerdings sieht man, dass in den Pausen zwischen zwei Datenpaketen der Pegel wieder zwischen 3,3 und 5 V liegt.
Sprich das M-Link Modul schaltet offensichtlich die Push/Pull Ausgangsstufe zwischen den Datenpaketen ab.

Fazit: Man darf keinen Pull-Up Widerstand am Datenausgang des M-Link Moduls verwenden. That's all.
(auch keinen gegen 3,3 V, habe ich ausprobiert)

Damit ist das für mich ausreichend geklärt, und ich kann jetzt mit dem eigentlichen Programm weitermachen.
Nach zwei Wochen muss ich mich da allerdings erst wieder etwas reindenken. ;)


Gruß
Reinhardt
 
Ansicht hell / dunkel umschalten
Oben Unten