M-Link goes Android: Betatester gesucht

ubit

User
Hi,

bin schon wieder zurück vom fliegen. Böen ohne Ende. Hat keinen Spaß gemacht. Logging hat gut funktioniert ;-) Einmal hatte ich zwischendrin plötzlich keine Sprachausgabe mehr. Vario ging noch. Vario schalten auch. Komisch :-(

Zum Log-Zeitraster: Das hängt von vielen Faktoren ab. Das HF-Modul liefert die Daten ziemlich regelmäßig. Wann das Bluetooth-Modul das dann überträgt ist schon weniger regelmäßig. Wann Android das empfängt auch. Vor Allem aber ist Android halt kein Echtzeit-Betriebssystem. Sobald ich die Sensordaten habe, schreibe ich sie ins Logfile. Je nachdem was gerade sonst noch so anliegt (Vario, Sprachausgabe, Hintergrund-Prozesse) kann das zeitlich durchaus variieren. Daten gehen aber grundsätzlich nicht verloren. Der aufgezeichnete Zeitpunkt ist aktuell die Zeit zu der die Daten ins Log geschrieben werden. Ich denke aber, dass das völlig genügt an Genauigkeit. Wer wirklich genau und mit hoher zeitlicher Auflösung loggen möchte, muss das ohnehin im Modell machen. Am Boden kommt ja teilweise weniger als ein Wert pro Sekunde für einen konkreten Sensor an - je nachdem wieviele Sensoren man nutzt und ob man einen Sensor priorisiert hat oder nicht (Vario priorisieren ist eigentlich Pflicht). Je schneller das Android-Gerät und je mehr Prozessorkerne, und je weniger noch parallel läuft, desto besser sollte die Konstanz der zeitlichen Auflösung sein.

Ich bin eben mit GPS-Logger und UniSens-E an einem V-Kabel geflogen. Dabei hatte ich 12 Sensoren programmiert:

Empfängerspannung, LQI aus dem Empfänger
Speed, Speed max, Entfernung und Strecke aus dem GPS Logger
Spannung, Strom, Drehzahl, Kapazität, Vario, Höhe, Höhengewinn aus dem UniSens-E

Sehr sinnvoll dabei sind "sprechende" Sensornamen die so auch ins Log geschrieben werden, denn bei dieser Konfiguration hat man z.B. zweimal "Volt" und sogar 3 mal "Meter" (Höhe, Höhengewinn und Entfernung). Irgendwie hat die Messung der Flugstrecke leider nicht funktioniert. Entweder hab' ich beim GPS Logger etwas falsch eingestellt oder die aktuelle Firmware hat da ein Problem :-(

Ansonsten hat das alles sehr gut funktioniert (umbenannt von .csv in .dat zum hochladen):

Anhang anzeigen 2013-05-09_04-18-35-Vitesse - Kopie.dat

Kann man z.B. in Excel öffnen. Gibt da noch ein Problem mit dem Zeichensatz - Umlaute in Sensornamen kommen falsch in Excel an. Daher besser über "Daten" -> "Externe Daten aus Text" einlesen, da kann man dann UTF-8 als Zeichensatz einstellen und dann passt das auch mit "Höhe" und "Empfangsqualität".

Geloggt werden übrigens die "aufbereiteten" Sensordaten. Also beim Lipo z.B. die Prozentangabe, wenn man eine entsprechende Einheit eingestellt hat. In Excel sieht man auch die Sensornamen. Logview ignoriert das leider. Irgendwie scheint die Souffleuse im Moment noch gelegentlich "unmotiviert" Setup-Datensätze zu erzeugen. Muss ich mir nochmal anschauen. Im Zweifel kann man die "überflüssigen" aber einfach manuell aus der Datei entfernen.

Ciao, Udo
 

Anhänge

  • 2013-05-09_05-13-15-Vitesse - Kopie.dat
    274,7 KB · Aufrufe: 49

ubit

User
Noch eine Idee von mir: Wie sieht es mit Pre- und Posttriggern aus. Ich denke dabei daran, Daten nur bei seltsamen Zuständen aufzuzeichnen. Auf einen Trigger hin sollten dann Daten von vor dem Trigger und nach dem Trigger abgespeichert werden.

Schwierig. Besonders das "Daten vor dem Trigger abspeichern". Dazu müsste ich die Daten intern immer loggen und sie dann gesammelt in das Logfile schreiben. Das dürfte dauern und das Timing insgesamt deutlich durcheinander bringen. Und was stellst Du Dir als Trigger vor?
Im Ernst: Die Logdateien sind doch nicht soooo groß. Ein MByte dürfte so für 20-30 Minuten Flugzeit reichen. Und Speicher wird auch bei Android-Geräten in Gigabytes gezählt.

Wenn ich ein sinnvolles Logformat finde, würde ich lieber noch mehr ins Log schreiben:

* Status der Schaltkanäle (dann kann man sich quasi "Markierungen" ins Log "schalten")
* Downlink-Status

Aber das passt ins FlightRecorder-Format leider nicht rein.

Ciao, Udo
 

ubit

User
Hi,

ich hab' nochmal eine neue Version gemacht:

Anhang anzeigen Souffleuse.dat

Die unnötigen Zeilen mit "SETUP..." sollten nun verschwunden sein.

Jetzt entspricht der Zeitstempel dem ersten empfangenen Byte von einem Telemetrie-Paket. So richtig gleichmäßig kommen die Daten allerdings trotzdem nicht. Außerdem gibt es gelegentliche "Ausreißer" im Datenstrom. Dann kommen Sensordaten "unerwartet". Das habe ich früher auch schon mal beobachtet. Vermutlich passiert das, wenn auf der Strecke Empfänger->Sender Daten verloren gehen. Im Durchschnitt kommen aber ziemlich genau 10 Datenpakete mit jeweils 2 Sensorwerten pro Sekunde bei der Souffleuse an.

Wenn man also 9 Sensoren + priorisierten Variokanal verwendet wird jeder Wert ca. 1 mal pro Sekunde übertragen (außer Vario, was dann ca. 10 mal pro Sekunde ankommt). Verwendet man alle 16 Sensoradresse, so dauert ein kompletter Zyklus ohne Priorisierung ca. 0,8 Sekunden und mit Priorisierung ca. 1,5 Sekunden. Man erhält also im schlimmsten Fall trotz idealer Übertragungsbedingungen nur alle 1,5 Sekunden einen kompletten Satz Telemetriewerte.

Generelle Frage noch an Euch:

Ist es ok, die angezeigten Sensorwerte zu übertragen (also ggf. mit Offset + Factor) oder sollte man lieber die "nackten" M-Link Daten protokollieren?

Ciao, Udo
 
Hi Udo,

prinzipiell stört mich nicht die Dateigröße der Daten. Besonders nicht bei so kleinen Datenmengen. Für mich wäre entscheidend, welche Methode die wenigsten Kapazitäten benötigt! Hängt natürlich von der Speichermethode ab. Wenn ich einen Ringspeicher für die Daten benutze, kann man den eventuell schneller bedienen als wenn man die Daten direkt in ein Datenfile schreibe. Speicher ich die Daten erst am Ende in ein File ab (Zwischenspeiche im RAM?) muß man eventuell große Speicherressourcen dafür reservieren. Wahrscheinlich hast Du Recht, daß es bei kleiner Kanalzahl mit geringen Abtastraten keine Rolle spielt, welche Speichermethode man verwendet.

Bezüglich der Zeitdaten vestehe ich es so, daß M-Link-Daten keinen Zeitstempel enthalten, sonder einfach so rein plätschern?

Als Trigger hättel ich mir eine manuelle Eingabe über Ereigniskanal vorgestellt.

Ob man Rohdaten oder berechnetet Werte speichert, hängt meiner Meinung nach davon ab, wie man die Berechnungsmethoden nachhält. Meines Erachtens sollte man die berechneten Werte speichern, da man nicht mehr um die Berechnungsfaktoren kümmen muß. Rohdaten nützen später nur, wenn man die Berechnungsparameter parat hat. Auch hier wäre für mich wichtig, welche Methode die geringeren Ressourcen benötigt!

Ich hoffe ich nerve nicht zu sehr mit meinen Ideen und Fragen! Sollte dies der Fall sein, bitte ich um Nachsicht.

Viele Grüße
maikatze
 
Hi,
geht bei mir nun ganz gut. Kann man die "Liste Sensoren" irgendwo bearbeiten => also dass nicht alle angesagt werden, sondern nur die die man möchte. Konnte noch nicht finden, wo man dies einstellen kann.
Weiter so ! => klasse APP
Grüße Matthias
 

ubit

User
Hi,

Sensoren priorisieren geht im Empfänger. Dazu braucht es die Multimate oder das USB-Kabel (steht glaube ich auch im RC-Networks Wiki wie man sowas selbst baut).

Sensoren auswählen für die Sprachausgabe geht noch nicht. Derzeit muss man sich behelfen und für jeden Sensor den man ansagen möchte eine Aktion einstellen. Wenn man also z.B. alle 60 Sekunden die Restkapazität, kleinste Zellenspannung und Gesamtspannung hören möchte, muss man dafür 3 Timer-Aktionen erstellen.

Das wird aber mit den Sensorlisten anders werden. Da kann man sich dann beliebige Sensornamen gruppieren und diese dann gesammelt als Sprachansage bei den Aktionen einstellen. Das wird das nächste "große" Feature der Souffleuse werden, nachdem der Logger ja jetzt zu funktionieren scheint.

Ciao, Udo
 

kreidler

User

Anhänge

  • ScreenShot002.jpg
    ScreenShot002.jpg
    62,6 KB · Aufrufe: 44

ubit

User
Hi,

etwas hochscrollen. Da steht als Anhang "Souffleuse.dat". Runterladen. Umbenennen in Souffleuse.apk. Irgendwie auf's Handy packen. Öffnen.

Ciao, Udo
 
Guten Morgen Udo,

habe mir mal die Daten bei Version 0.71 und priorisierten Kanal (Vario) angesehen. Die Headerdaten sehen bezüglich Anzahl der Zeilen seltsam aus.
Wenn ich mir die Zeiten ansehe, scheint der priorisierte Kanal ca. alle 100ms gesendet zu werden, danach wird immer ein normaler Kanal gesendet. Dies war ein RX-7-DX Empfänger. Dieses Format ist auch bei nicht priorisierten Kanal vorhanden.
Daten.PNG


Wenn ich mir die Daten von gestern ansehe ansehe, stelle ich fest, daß alle Daten gleichzeitig gesendet wurden. Allerdings war gestern kein Vario angeschlossen und der Empfänger war ein RX-16-DX pro

Daten2.PNG

Kann es sein, daß die Daten vom Empfänger abhängig in verschiedenen Formaten gesendet werden?
 

ubit

User
Hi,

jedes Telemetriepaket enthält 2 Sensordaten. Solche Pakete kommen ca. alle 0,1 Sekunden.

Wen man einen Sensor priorisiert, wird der mit jedem Paket übertragen. Der zweite Sensor in den Paketen wandert dann durch die Sensoren. So funktioniert das halt bei M-Link *g*

Wenn man nun nur einen Empfänger anschließt und keinen Kanal priorisiert, sieht das z.B. so aus:

Paket 1: Empfängerspannung + LQI
Paket 2: Empfängerspannung + LQI
Paket 3: Empfängerspannung + LQI
...

Soweit ganz einfach... Kommt z.B. ein einzelner Höhensensor dazu, dann ändert sich das zu:

Paket 1: Empfängerspannung + LQI
Paket 2: Höhe + Empfängerspannung
Paket 3: LQI + Höhe
Paket 4: Empfängerspannung LQI
...

Nun noch ein Vario:

Paket 1: Empfängerspannung + LQI
Paket 2: Höhe + Vario
Paket 3: Empfängerspannung + LQI
Paket 4: Höhe + Vario
...

Mit Prio ändert sich das zu:

Paket 1: Vario + Empfängerspannung
Paket 2: Vario + LQI
Paket 3: Vario + Höhe
Paket 4: Vario + Empfängerspannung
Paket 5: Vario + LQI
Paket 6: Vario + Höhe
...

Verständlich? Wenn man nur maximal zwei Sensoren hat, gibt es halt keinen Unterschied ob ein Kanal priorisiert ist oder nicht, weil beide Sensoren in jedem Paket übertragen werden. Erst ab 3 Sensoren "wirkt" die Priorisierung.

Ciao, Udo
 
Hallo UBIT (Hallo Udo ;-) )

habe noch ein Verständnisproblem:
ich verwende teilweise mehrere gleich Sensoren (also greife an 2 Motoren die Spannung V, Strom A und Temp C ab). Somit habe ich mehrfach die "Sensoreinheit V" bs. A / C. Wie kann ich diese nun auch korrekt auswählen. Du unterscheist ja nur nach Einheit, nicht aber nach dem Kanal auf dem die reinkommen.

Könnte man nicht pro Modell -> die Einheit je Sensoradresse (0-15) einstellen und den Wert dann zuordnen?
Modell A
Sensoradresse 0 Sensorname/Ansage=Motorspannung_eins Einheit=V
Sensoradresse 1 Sensorname/Ansage=Motorspannung_zwei Einheit=V
...

Grüße Matthias
 

ubit

User
Hi,

??? Versteh' ich nicht ;-) Wenn Du ohne irgendwelche Einstellungen die App zum ersten Mal startest bzw. mit einem neuen, leeren Modellspeicher verbindest, dann solltest Du zunächst mal alle Sensoren als "Sensor 0" bis "Sensor x" sehen.

Mit langem Druck auf "Sensor 0" bekommst Du alle aktuellen Sensornamen zur Auswahl die für die gerade übertragene Sensorklasse existieren. Wobei Du Dir ja in den Einstellungen beliebige Sensornamen selbst anlegen kannst. Fürdie Spannung sind normalerweise schon einige Sensornamen voreingestellt aus denen Du wählen kannst (Empfängerspannung, Gesamtspannung, Zellenspannung, kleinste Zellenspannung).

Diese freie Einstellbarkeit der Sensornamen für Display und Sprache fand ich von Anfang an wichtig, da es halt sehr oft vorkommt, dass eine Einheit mehrfach übertragen wird und man ein paar Tage nach der Konfiguration der Sensoren eh nicht mehr weiß, welche Sensoradresse welche Daten überträgt. So liefert z.B. die Kombination aus UniSens-E und GPS-Logger für "Meter" folgende Werte, wenn man möchte:

* Höhe
* Entfernung
* Maximalhöhe
* Höhengewinn in den letzten 10 Sekunden

Auf dem Royal Pro Display werden die alle einfach als "m" angezeigt... Souffleuse kann das eindeutig besser ;-) Und Souffleuse schreibt die "Namen" auch in die Logdatei. Nur das Logview die Zeile mit den Namen einfach ignoriert :-( Leider... Du kannst die Datei aber in einem Texteditor bearbeiten (da stehen dann Namen und Einheiten direkt untereinander). Ich bin schon am Überlegen, ob ich nicht selbst ein Programm schreiben muss um die Logs sinnvoll auswerten zu können. Irgendwie scheint es echt nix vernünftiges in dieser Richtung zu geben.

Ciao, Udo
 
... Ich bin schon am Überlegen, ob ich nicht selbst ein Programm schreiben muss um die Logs sinnvoll auswerten zu können. Irgendwie scheint es echt nix vernünftiges in dieser Richtung zu geben.

Ciao, Udo

Moin,

schau Dir doch mal den DataExplorer an. Die Quellen sind frei verfügbar falls das Programm nicht jetzt schon tut was Du erwartest. Und da es auch in Java geschrieben ist bist Du ja vom programmieren schon mal recht nah drann.

Gruß

gecko
 
Hallo Udo,

erstmal ganz großes Lob und vielen Dank für die Zeit und Mühe die du in das Projekt steckst!
Ich habe mir die App mal auf ein Tablet installiert und gestern direkt das Bluetooth Modul bestellt.

@alle:
Da ich von der Apfel-Fraktion bin schau ich mich gerade nach einem Android Telefon um, welches nur für die App und PDF-Anleitungen genutzt werden soll.
Kann jemand eine Empfehlung für ein Gerät aussprechen mit mittelgroßem und vorallem einem hellen Display? (bitte per PN, möchte ungern das der Thread hier zugemüllt wird)

Danke euch!

Gruß
Dome
 

ubit

User
Hallo Udo,

erstmal ganz großes Lob und vielen Dank für die Zeit und Mühe die du in das Projekt steckst!
Ich habe mir die App mal auf ein Tablet installiert und gestern direkt das Bluetooth Modul bestellt.
Wenn eine Mail so anfängt, kommt das dicke Ende nach...

@alle:
Da ich von der Apfel-Fraktion bin schau ich mich gerade nach einem Android Telefon um, welches nur für die App und PDF-Anleitungen genutzt werden soll.
Kann jemand eine Empfehlung für ein Gerät aussprechen mit mittelgroßem und vorallem einem hellen Display? (bitte per PN, möchte ungern das der Thread hier zugemüllt wird)

Doch nicht ;-)

Für die Äpfelchen verweise ich hier mal wieder auf http://imsb.ch/. Der Kollege macht das schon etwas länger als ich und hat eine optische hammergeile App auf die Beine gestellt. Dazu kommt die Steuerung über Spracheingabe. Kannst Dir ja mal anschauen. Ich hab's live noch nicht gesehen, weil: Kein Apfel in Reichweite. Leider blockt Apple die Bluetooth-Nutzung so dass der Kollege über WLAN gehen muss. Macht die Hardware etwas teurer. Nachteil von imsb aktuell: Steuerung über Kanalschalter gibt es dort noch nicht. Der Entwickler weiß aber Bescheid wie das funktioniert und wird das vermutlich in eine der nächsten Versionen einbauen.

Optimale Android-Geräte kommen in der Regel von Google. Nexus 4 ist da der aktuelle Stand bei den Handys. Gut funktionieren sollte auch das Nexus 7 Tablet (ja - irgendwann wird Souffleuse sicher auch mal Tablets sinnvoll ausnutzen). Davon soll im Juni/Juli eine neue Version kommen (auf die warte ich auch). Souffleuse funktioniert aber auch super auf meinem Huawei Billig-Smartphone. Sinnvoll ist halt eine möglichst hohe Bildschirmauflösung. IPS oder OLED Display sind auch gut. Ideal für Modellflieger wäre e-Ink als Display-Technik, aber da kenne ich kein brauchbares Gerät. Nur ein paar Prototypen.

Ciao, Udo
 

ubit

User
Moin,

schau Dir doch mal den DataExplorer an. Die Quellen sind frei verfügbar falls das Programm nicht jetzt schon tut was Du erwartest. Und da es auch in Java geschrieben ist bist Du ja vom programmieren schon mal recht nah drann.

Hi,

hab' ich mir schon mal angeschaut. Hat auch so seine Probleme...

Was halt an den M-Link Daten dafür sorgt, dass die meisten Programme damit nicht wirklich umgehen können:

1. Er gibt den speziellen Wert "kein Wert". Das sollte in der Grafik berücksicht werden und an diesen Stellen darf halt keine Kurve gezeichnet werden.
2. Es gibt Lücken in den Daten (weil nicht in jedem Datensatz alle Sensoren vorhanden sind). LogView kann das. DataExplorer füllt dies Lücken einfach, was schlicht nicht den Meßwerten entspricht und zu einer "stufigen Kurve" führt.

Die Benutzeroberfläche vom DataExplorer finde ich auch gräußlich. Immerhin sieht man in der Gerätetoolbox die Sensornamen der Souffleuse. Warum das Ding die aber nicht automatisch als Bezeichnung übernimmt, weiß ich nicht. Es gelingt mir irgendwie auch nicht die Daten wirklich Fehlerfrei einzulesen. Sensorkanal 15 scheint z.b. schlicht nicht zu funktionieren (da liegt mein Vario). Das Mausrad wird "irgendwie" unterstützt, funktioniert aber beim zoomen bei mir nicht wirklich. Insgesamt finde ich den DataExplorer ziemlich durchwachsen.

Ciao, Udo
 
Hey Udo,

hab die letzten 1 1/2 Std mit dem Vergleich zwischen dem Galaxy Tab 2 7.0 und dem Nexus 7 verbracht.

Aber danke für den Hinweis mit dem Nexus 7-2, ich denke darauf wird es hinaus laufen - das mit dem nativen Android gefällt mir ganz gut und dann ist es nen aktuelles Gerät.

Bekomm jetzt erstmal nen Xperia X10 geschenkt und werde damit und dem Asus TF300T, das ich gerade leihweise da habe, den Test starten :D


Mal schon eine Frage vor ab:
Hat jemand mal nen direkten Vergleich zwischen dem SM Unilog 2 Vario und dem MPX Vario gemacht?
Hab bisher nur das Unilog 2 Vario über den Sender ausgeben lassen - das reagiert sehr sehr träge auf Veränderungen.
Bringt hier die Priorisierung auf Vario etwas?


Danke Jungs!

Gruß
Dome

PS: ich hol mir jetzt erstmal nen Apfel :D
 

kreidler

User
Mal schon eine Frage vor ab:
Hat jemand mal nen direkten Vergleich zwischen dem SM Unilog 2 Vario und dem MPX Vario gemacht?
Hab bisher nur das Unilog 2 Vario über den Sender ausgeben lassen - das reagiert sehr sehr träge auf Veränderungen.
Bringt hier die Priorisierung auf Vario etwas?
Das Multiplex kann 'schneller' gemacht werden und Prio ist ein Muss. Ab http://www.rc-network.de/forum/show...iplex-M-Link?p=2785667&viewfull=1#post2785667 bis Post 2400 (nächste Seite unten) hab ich mal rumprobiert und Du kannst einiges nachlesen.

Wenn Du richtig Vario mit M-Link haben willst, kommst Du wohl nicht am Link-Vario von WSTech vorbei.

Gruß Matthias

P.S.: Nur noch Pizza heute;)
 
Ansicht hell / dunkel umschalten
Oben Unten