Hallo und Herzlich Willkommen im RC-DROHNEN-FORUM.
Wir sind ein unabhängiges, rein privat geführtes Forum zum Thema Multicopter (Drohnen) speziell für Luftbild-Aufnahmen und Technik für den privaten- und gewerbliche Piloten.
Ein lockerer, freundlicher Umgang gepaart mit Know-How, Hilfsbereitschaft und ein respektvolles Miteinander erwarten Dich hier.
Melde Dich kostenlos an, um alle Funktionen nutzen zu können. Wir freuen uns auf Dich!
Viel Spaß wünscht Dir das RCDF-Team.

Offizieller Partner des BVCP - Bundesverband Copter Piloten

Wie kann man die GPS-Logs aus der Fimi X8 SE 2020 herausbekommen?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Wie kann man die GPS-Logs aus der Fimi X8 SE 2020 herausbekommen?

      Hallo,
      Nach ein paar Flügen kann man GPS-Logs in der FIMI-App auf einer Karte anzeigen lassen, so wie hier gezeigt:
      Fimi X8 SE - Flight & Flight Log Viewing

      Also müssen diese Daten irgendwo auf dem Smartphone gespeichert sein.

      Aber wo?
      Und in welchem Format?
      Wahrscheinlich in irgendeinem von Fimi selbstgestrickten Spezialformat.

      Wie kann man diese Daten als GPX-Datei (oder auch KMZ, KML oder so) runterladen?

      Man kann die Daten daneben auch in irgendeine Cloud hochladen.
      Kommt man da dann an die GPX-Daten?
      Wenn ja, wie?
    • Danke. Unter ..\FimiLogger\x8\flightPlayback- ... habe ich Files gefunden, die Log-Files sein könnten.
      Leider kann ich sie nicht lesen, das ist alles kein Klartext.

      Ich hänge mal einen Screenshot der ersten paar Zeichen eines solchen Playback-Files an. Vielleicht erkennt jemand, um was für ein Dateiformat es sich handelt und weiß, ob man es mit gewöhnlichen Programmen öffnen kann (Datenbank-Programme, Pack-Programme?):
      FimiPlaybackFile.jpg
    • h-elsner schrieb:

      Das sind MAV-Link Datensätze. Wahrscheinlich MAV-Link V1. Ich müsste die Daten bekommen, um das zu eruieren. Du kannst versuchen, die mit QGroundControl zu dekodieren.
      MAV-Link, Danke.
      Jetzt habe ich mir QGroundControl installiert, komme aber nicht weiter. Das Programm sieht so aus, als möchte es mit einem kompatiblen Kopter verbunden werden, um eingesetzt zu werden.

      Ich finde keine Stelle, wo man eine auf dem Rechner vorhandene Datei öffnen kann. hmm
    • Ich habe gerade mal unter Windows nachgeschaut. Da ist auch bei mir standardmäßig kein Menüpunkt. Man muss unter Einstellungen > General > Fly View den Haken bei "Show Telemetry Log Replay Status Bar setzen. Dann hat man unten rechts einen Button "Replay Flight Data". Da kann man dann die Telemetriedaten aus einer Datei öffnen und wiedergeben.

      Du kannst auch, wenn du willst, mir ein beispiel einer solchen Datei zukommen lassen (z.B. per PN) und ich schaue mal, was man damit machen kann. Würde mich sowieso auch interessieren...

      Gruß HE
    • h-elsner schrieb:

      Man muss unter Einstellungen > General > Fly View den Haken bei "Show Telemetry Log Replay Status Bar setzen. Dann hat man unten rechts einen Button "Replay Flight Data". Da kann man dann die Telemetriedaten aus einer Datei öffnen und wiedergeben.
      Das habe ich probiert. Dann habe ich unten rechts eine neue Schaltfläche "Load Telemetry Log".

      Aber: mit der Dateiendung ".playback" geht gar nichts, er sucht eine Datei mit Endung ".tlog".

      Dann habe ich das playback-File einfach umbenannt mit Endung .tlog. Funktioniert aber auch nicht, es kam folgende Fehlermeldung:
      "The log file 'pfad-filename.tlog' is corrupt or empty."

      Ich schicke dir das File mal zu.
    • OK, Danke. Das entspricht leider keinem mir bekannten Format. Wir haben Datensätze in verschiedenen Längen.
      $FD identifiziert den Anfang eines Datensatzes, dann kommt ein Byte das fast immer 0 ist, dann kommt die Datensatzlänge, dann kommt wieder ein Byte, welches immer 0 ist und dan vier Byte uint32 mit Anzahl der Millisekunden dann kommt die Message ID und danach die Payload.
      Diese muss ich mir mal auf der Zunge zergehen lassen. Wäre doch gelacht, wenn man da keine Koordinaten findet.

      So sehen die Datensätze aus:
      2020-12-13-11-41-12.zip

      Gruß HE
    • h-elsner schrieb:

      Wäre doch gelacht, wenn man da keine Koordinaten findet.
      Tjs, das Lachen ist mir vergangen. Die Daten lassen zwar eine gewisse Regelmäßigkeit erkennen und in Datensätze, beginnend mit $FD auflösen, aber das war es auch schon.
      Das hier habe ich herausgefunden:

      Unterschiede-Datei: *.playback

      1. FD 00 lx 00 tt tt tt tt tt: 4 byte Zeitstempel [ms]
      2. Col 0 1 2 3 - - - 4
      3. dsbuf | 0 1 2 3 4 Daten (in Viererblöcken?)
      4. Col | 5 6 7 8 9 10 11 12
      5. dsbuf | 5 6 7 8 9 10 11 12 13 17 21 25 usw
      6. +-------- Länge Die ersten 8 Bytes (fix)
      7. Message Typ 9 40 09 75 6E 13 F2 99 96 F3
      8. 19 72 13 BA 30 8E 2F D6 4C 0B
      9. 51 12 33 93 73 43 Final
      10. 84 48 54 3B 1E F4 40 A6 FE D5
      11. 92 48 5C AA 3E 68 8C AD BB 92
      12. 141 32 8D 2E 44 27 34 61 72 27
      13. 144 56 90 1B D5 BC 17 DF 65 23
      14. 158 56 9E 2D 85 3F 98 30 BC D7
      15. 206 32 CE CE D0 07 97 95 A3 4D Start
      16. 238 48 EE 90 1A 7D EA 90 A6 DD
      17. Blöcke 1 2 3 4 5 - len/4
      18. Länge der Datensätze ist immer durch 8 teilbar
      Alles anzeigen
      Wer mit seinen *.playback Dateien von der FIMI herumspielen möchte, hier mein Testprogramm:
      fimi_tracker.zip

      Man kann nach Message Typen filtern, die Ergebnisse per Doppelklick auf die Tabelle als CSV-Datei speichern und alle möglichen Umwandlungsverfahren testen. Vielleicht hat noch jemand eine Idee, ich habe nichts gescheites gefunden.
      Wenigstens die Anzahl der Sats oder die Batteriespannung monoton sinkend hätte man finden müssen. Nix!

      Allerdings hab ich noch nicht alle Kombinationen ausprobiert. Vielleicht kommt doch noch etwas zu Tage.

      Gruß HE
    • Das ist ja Schade! Leider übersteigt das meine Möglichkeiten, ich käme hier garantiert auch nicht weiter.
      Ich frage mich, ob das nicht auch international mal diskutiert wurde und evtl. eine Lösung gefunden wurde.

      Mir ist auch völlig rätselhaft, warum Xiaomi an der Stelle so verschlossen ist. Spricht sich erst mal rum, dass bestimmte Hardware offen für Bastler und Hobbyprogrammierer ist, ist das doch manchmal sehr verkaufsfördend.
    • Leider habe ich gestern erst bemerkt, dass bei Float Big und Little Endian vertauscht ist. Der Zeitspempel ist Little Endian, deshalb denke ich dass es überall so ist. Ich habe mal weiter gesucht und nur die Mantissen bei Float angeschaut - trotzdem nichts.

      Hier ist eine korrigierte Version (mit Hints zur Erklärung):
      fimi_tracker.zip


      Leider weiß ich nicht, wie Java Pacels bzw. Parcelable binär repräsentiert werden. Vielleicht ist das so etwas.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von h-elsner () aus folgendem Grund: Hints in Tool eingefügt

    • Ich hab mir mal die Daten angeschaut. Im Vergleich dazu hab ich den Verlauf des Fluges mit den Daten verglichen.

      Ich hab mir dabei die Stromaufnahme der Drohe angeschaut. Der Wert ist am Anfang relativ klein, nach dem Start gegen 8 Ampere. Nach einigen Versuchen bin ich der Überzeugung, dass der Wert im Float vorliegt. Leider ist es so nicht ganz so einfach, da der Float Rundungsfehler aufweist. Die Anzeige in der App hat nur 2 Nachkommastellen, im Log natürlich mehr. Dadurch ist der Hex-Wert natürlich nicht eindeutig. Ich habe mich dann auf die beiden höchsten Bytes konzentriert. Bei jedem Fund habe ich dann die Beiden unteren mit umgerechnet. Dann schien zu passen; halt mit Rundungsfehler.
      Die Bytes lassen sich in mehreren Datenblöcken immer an der selben Stelle finden. Ich vermute, die Blöcke, beginnend mit FD haben immer eine feste Struktur, da ich keine Indizierung erkenne, bis jetzt jedenfalls nicht. Die Datenblöcke muss ich noch alle raussuchen, war schon spät letzte Nacht.
      Ich werde diesen Weg noch mit den 3 Zellspannungen machen. Wenn das passen sollte, werde ich das Ergebniss mal posten.
    • Stimmt, die einzelnen Datensätze beginnen mit FD'h. Dann kommt ein byte 00 und danach die Länge der Datensätze. Dann kommt wieder ein byte 00 und danach der Zeitstempel in 4 Byte Integer, little Endian, in Millisekunden. Soweit, so klar.

      Seltsamerweise kommen danach 8 Byte, die relativ regelmäßig, passend zur Länge der Datensätze immer gleich sind. Diese habe ich mal als MessageID bezeichnet. In dem beigelegten Programm kannst du die Datensätze filtern und nach vielen Regeln in Float (single und double) sowie Integer 2, 4 oder 8 Byte umrechnen. Du kannst auch die Umrechnung per Offset von 1-4 byte nach rechts verschieben. ich sehe nirgends eine Regelmäßigkeit. Zumindest die Anzahl der Satelliten sollte zu sehen sein, relativ konstant zwischen 14 bis 18.

      Am Anfange ist eine Datensatz mit Länge 32 Byte, der mit CE CE D0 07 97 95 A3 4D anfängt. Dieser kommt nur einmal vor, eben als Erster.
      Am Ende ist ein Datensatz, der auch nur einmal vorkommt, der nur 12 Bytes lang ist: 33 93 73 43. Das ist der einzige Datensatz, wo die Länge nicht durch 8 teilbar ist und wo im 2. Byte hiter dem der ID FD'h eine 01 statt 00 seht.



      Hier ist nochmal eine bessere Variante, wo die hellgrüne Markierung der Spalten mitwandert, um zu zeigen, wo in der Hex oder Dezimal-Anzeige die 2, 4 oder 8 Byte anfangen, die umgewandelt werden für Integer oder Float.

      fimi_tracker.zip

      Gruß HE

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von h-elsner ()

    • Ich hab jetzt nochmal einige Stunden investiert. Es lassen sich zumindest einige Float-Werte finden. Ich hab es mit Stromaufnahme, Zellspannung 1 und Batterietemperatur probiert und annähernde Werte gefunden. Um das zu Beweisen, hab ich die Werte manipuliert.
      Das Manipulieren hat leider gar nichts gebracht. Es hat weder den Logflight geändert, noch hat es was durcheinander gebracht. Da ich mir sicher bin, dass ich die Werte an der richtigen Stelle ändere, machte mich das stutzig.
      Dann kam das AHA.
      Man kann bei der Fimi Flightlogs nur anlegen und sehen, wenn man registriert UND angemeldet ist. Da ich das bin und meine Logs in der Cloud sind, nutzt die App anscheinend die Clouddaten beim Betrachten. Danach kann ich also ändern wie ich will, ich sehe keine Veränderung, da das ja lokal ist.

      Ich werde morgen noch mal ein kurzes Log erzeugen, das nicht in die Cloud geht, mal sehen, was dann passiert.
      @h-elsner: Ich hätte 2 Bitten an dein Tool wenn du die Zeit hättest:
      1. Könnte man als Tooltip wieder die Hex Zeit darstellen ( mouse over ).
      2. Da ich noch kein Index erkenne, wäre es hilfreich, wenn man erkannte Bytes farblich zuordnen könnte. Also die Bytes, markiert, die schon Sinn ergeben.

      Gruß MWTeddy