OpenTX - Multiplex MLINK Konverter

@Reinhardt.

Das mit der Skalierung von A1 war klar.

Drehzahl nehme ich am SIMPLY nicht.

Schau bitte mal hier drüber. Das ist der Telemetriescreen vom Teensy Konverter.

Bildschirmfoto10.jpg

Und das hier vom "Reinhardt" Konverter.

Bildschirmfoto11.jpg

Eventuell bau ich nochmal meinen Teststand mit Unisens-E auf.

Schönen Abend noch - KH
 
Hallo Kalle,

Drehzahl ist ja, wie Du gesagt hast, gar nicht vorhanden, ID 07 kann also auch nicht auftauchen.

Kapazität ist als Telemetriewert ebenfalls nicht vorhanden, er wird aus dem Strom berechnet.
Damit ist auch das Fehlen von ID 29 geklärt.

Nicht klar ist, warum die Höhe fehlt.
Die einzige Erklärung, die mir spontan einfällt, ist, dass diese auf dem MSB erst auftaucht, nachdem die Adressen gescannt wurden.
Welche Adresse hast Du denn für die Höhe vergeben?

Noch ein Hinweis:

Der Teensy Konverter verwendet offensichtlich für die Spannung die nicht vordefinierte ID 2A.
OpenTx sieht eigentlich schon länger die ID 39 für die Übertragung der Spannung vor.
Die Auflösung ist, wenn ich es aus dem Kopf richtig weiss, 0,1 V (schau ich heute Abend nochmal nach).
Hast Du das auf 2 Nachkommastellen abgeändert?

Und musst Du mit dem Teensy Konverter die Einheit für die Spannung (LiPo) selbst konfigurieren?
Früher war mal 3A und 3B (vor und nach dem Dezimalpunkt) zugeordnet, aber diese IDs werden nicht mehr verwendet.
2A in Deinem Screenshot scheint wie gesagt eine freie ID zu sein.
Vielleicht gab es damals die 39 noch nicht, und der Entwickler des Konverters wollte nicht mit zwei IDs rummachen.
 
Hi Reinhardt.

Ja, die Lipo Spannung musste ich beim Teensy Konverter in der FrSky Telemetrie justieren. Bei deinem Ansatz wird das nicht notwendig.

Seltsam ist nur die fehlende Höhe (bei Teensy auf 0021).

Hier mal die MPX Telemetriewerte Tabelle aus der von mir verwendeten aktuellen oXs Version 7.0

//list of all telemetry units supported by Multiplex protocol
#define MU_ALT 0x08 // 1m (-500 2000)
#define MU_VSPD 0x03 // 0,1 m/s (-500 500)
#define MU_CURR 0x02 // 0,1 A (-1000 1000)
#define MU_VOLT 0x01 // 0,1 V (-600 600)
#define MU_TEMP 0x06 // 0,1 C (-250 7000)
#define MU_RPM 0x05 // 100t/m?? ou 10t/min
#define MU_MAH 0x0B // 1mAh (-16000 16000)
#define MU_ASPD 0x04 // 0,1km/h (0-6000)
#define MU_LEVEL 0x09 // 1% (0-100)
#define MU_DIR 0x07 // 0,1 degrés (0 3600)
#define MU_LIQUID 0x0C // 1ml (0-16000)
#define MU_DIST 0x0D // 0,1 km (0-16000)
// End of list of all telemetry units supported by Multiplex protocol


Ich könnte jetzt noch den Unisens-E Versuch mit der Standardeinstellung MPX machen. Weiss nur nicht, ob ich heute dazu komme.

UniSens_E.png

Grüße KH
 
Yep, das sind die in der MSB Spezifikation definierten Werteklassen, das passt alles.

Welche MSB Adresse hast Du denn für die Höhe konfiguriert?
 
Reinhardt, was meinst du jetzt??

So "#define MU_ALT 0x08 // 1m (-500 2000)" ist das in openXsensor für das MPX Protokoll definiert. Und ich verwende im SIMPLY openXsensor.

cu KH
Hi Kalle,

0x08 ist die Werteklasse, die die Einheit definiert.

Jeder Sensor am MSB hat eine Adresse zwischen 0 und 15, das hat nichts mit der Werteklasse zu tun.
Auf Deinem Bild vom Unisense Tool siehst Du diese Adressen, für die Höhe ist Adresse 7 zugeordnet.
Zur Abfrage von Sensordaten sendet der Busmaster (normalerweise der M-Link Empfänger) zyklisch alle 15 Adressen.
Und nur der Sensor mit der abgefragten Adresse antwortet, daher darf jede Adresse auch nur einmal vergeben werden.

Die Werteklasse ist Teil der Sensorantwort und bestimmt, um was für einen Parameter es sich handelt.
Die verwendeten Werte sind in der MSB Spezifikation für alle unterstützten Parameter fest vorgegeben.

Es hindert Dich nichts (außer dem Geldbeutel :D) daran, z.B. zehn Varios am MSB anzuschließen.
Solange jedes eine andere Adresse hat, funktioniert das, wobei aber alle die Werteklasse 8 zurücksenden (und natürlich den Sensorwert).

Die Adressen 0 und 1 werden normalerweise für Empfängerspannung und LQI benutzt, auch mein Konverter erwartet das so.
Wenn Du jetzt eine dieser beiden Adressen für Höhe vergeben hast, wird die Höhe ignoriert, da diese beiden Adressen eben anderweitig reserviert sind.
Nur die Adressen 2 bis 15 werden in die automatische Adressenermittlung mit einbezogen.
 
Reinhardt, jetzt bin ich wieder in der Spur :D

Zu lange nicht mehr damit beschäftigt .... Und du redest hier mit nem ex Maschinenbauer!

Ich glaube, das isses ...

In der config Datei von oXs

/ ***** 9.3 - Multiplex data *****
#define SETUP_MULTIPLEX_DATA_TO_SEND \
6 , REL_ALTIMETER , 1 , 1 , 0 , -16384 , 16383 , \
7 , VERTICAL_SPEED , 1 , 1 , 0 , -16384 , 16383 , \
8 , CURRENTMA , 1 , 1 , 0 , -16384 , 16383 , \
9 , VOLT_1 , 1 , 1 , 0 , -16384 , 16383


also auf 6 und der Teensy schluckt das so. Hauptsache im Bereich von 2 ... 15




Gruß KH
 
Hi Kalle,

ich habe mal den Unisense-E umkonfiguriert, gemäß Deiner Adressbelegung.
Wie erwartet funktioniert alles immer noch einwandfrei, alle Sensorwerte werden sofort gefunden, auch die Höhe.

Wie schon gesagt, die einzige Erklärung, die ich habe, ist, dass der OpenX Sensor die Höhe zu spät ausgibt.
Wenn Du den Test mit dem Unisense-E gemacht hast, kann ich Dir ja evtl. per PM eine gepatchte Version schicken
mit deutlich verlängerter Zeit zum Scannen der MSB Adressen, um der Sache auf die Spur zu kommen.
 
Hi Kalle,

klar, es wäre sehr interessant zu wissen, wie sich der MSB nach dem Einschalten aufbaut.

Ich habe gerade nochmal im Code nachgeschaut.

Zunächst werden 32 M-Link Datenpakete komplett ignoriert.
Den Wert habe ich durch Probieren so ermittelt, dass er einerseits möglichst kurz ist, und andererseits
der Konverter erst auf die M-Link Pakete reagiert, wenn der Einschaltvorgang des Sendemoduls sicher abgeschlossen ist.

Zur Adressenermittlung werden danach 24 Datenpakete ausgewertet (ohne Daten zur Taranis zu senden).
Die Überlegung war einfach, dass pro Paket zwei Telemetriewerte übertragen werden,
und somit bei 24 Paketen jeder der maximal 16 Parameter mindestens drei Chancen hat, entdeckt zu werden.
Andererseits sind das aber nur ca. 2 Sekunden, wenn also ein Parameter aus irgendwelchen Gründen hinterherhinkt... :eek:
Vielleicht sollte ich tatsächlich diese Zeit einfach größer machen, sprich mehr Datenpakete auswerten.

Die ersten 32 ignorierten Pakete zählen ja vom Einschalten des M-Link Moduls an.
Bis man den Empfänger eingeschaltet hat, sind die ja schon mal durch.
Und ob es danach 2 oder 5 Sekunden bis zur Aktivierung der Telemetrie dauert, ist ja jetzt eigentlich auch egal.

Naja, heute mache ich auch nichts mehr.
 
Mit dem Saleae komm ich momentan nicht klar :rolleyes:

Wenn ich den zwischen klemme, bindet der MPX Empfänger nicht. Weiss nicht mehr, wie ich damals da vorgegangen bin.

So, hab meinen Unisens-E auch umkonfiguriert.

Bildschirmfoto17.jpeg

und siehe da, mit Version "Reinhardt" einwandfrei. Höhe ist da.
Bildschirmfoto18.jpeg

RX aus, TX aus, Unisens-E raus, oXs rein, TX ein, RX ein, Sensoren löschen, neu suchen. Bild wie bisher Höhe fehlt. Aber Vario ist doch da ....

Reinhardt, bei mir tun sich momentan mehr Fragen als Antworten auf........

Grüße KH

PS. Wo sind eigentlich die anderen Tester?

PSS. Eine Idee hätte ich da noch. Werde mal Michel, beim Entwickler von oXs nachfragen. Der MS5611 Sensor liefert doch Daten (Vario), warum kommt die Höhe nicht?
 
PSS. Eine Idee hätte ich da noch. Werde mal Michel, beim Entwickler von oXs nachfragen. Der MS5611 Sensor liefert doch Daten (Vario), warum kommt die Höhe nicht?
Hi Kalle,

na also, geht doch (mit dem Unisense-E zumindest). :)

Gute Idee, den oXs Entwickler zu fragen.
Zeig ihm meinen Post von oben und frage ihn, ob es sein könnte, dass die Höhe zeitlich mit deutlicher Verspätung
gegenüber den anderen Parametern auf dem MSB übertragen wird.
Das wäre zwar seltsam, aber im Moment ist es für mich die einzige Erklärung, warum ausgerechnet die Höhe fehlt.
 
Hi Reinhardt.

PM an Michel ist raus. Er hat den Link hier hin und kann in Deutsch mitlesen. Mal schauen.

Einen hab ich aber noch. ;)

Hab hier noch ein oXs Vario in der Version 5.0 mit BMP180 liegen. Den werde in mal probieren ....

LG KH
 
Hallo,
ich habe mir ein paar Minuten Zeit genommen und den neuen Konverter getestet.
(Upload per ISP Programmer und Atmel Studio7). Sensor: OpenXsensor Vario mit Stromsensor
Empfänger neu gebunden, Sender und Empfänger neu gestartet, Empfänger mit Sensor eingeschaltet und am Sender X9E erschienen nach 2-5 Sekunden alle Werte.

Config.h Datei ist sogar-glaube ich -von dir Kalle. Anbei die config.h für den openxsensor.


2016-09-23 17.04.04.jpg

RSSI, Strom, Spannung, Höhe und Vario werden erkannt und angezeigt. Ausführliche Funktionstests konnte ich noch nicht durchführen.

Alternativ habe ich einen MPX GPS Sensor angehängt. Von diesem werden keine Daten erkannt. War aber auch nicht vorgesehen, oder?

Lg
Roland
 

Anhänge

  • oXs_config.h.txt
    12,2 KB · Aufrufe: 206
Roland, jetzt wird es richtig rätselhaft. Langsam versteh ich nix mehr. :eek:

Dat gibbet doch gar nicht!

Ja, die config.h ist von mir. Sind meine Anpassungen drin.

Dank dir fürs Testen. Grüße KH

GPS ist klar, da ist MPX proprietär mit dem Protokoll ...
 
So, HFMG3 und RX-7 M-Link getauscht. Wieder nix mit Höhe.

Jetzt ist mir beim Wechsel auch noch die + Ader von der Buchse am 2mm Stecker in der Taranis Batteriebucht abgebrochen. :mad:

Schnauze voll! Jetzt mach ich nix mehr.

NEVER CHANGE A RUNNING SYSTEM alter Ingenieur Spruch!
 
Ansicht hell / dunkel umschalten
Oben Unten