Konfiguration des U-Blox NEO M8N GPS-Empfängers

    ACHTUNG: Mit der neuen EU Drohnenverordnung muß sich jeder Drohnen-Betreiber beim Luftfahrtbundesamt registrieren und seine Drohne mit der e-ID kennzeichnen! Ein passendes Kennzeichen bekommst Du hier im Shop. Außerdem benötigst Du eine Drohnen-Versicherung. Hier geht es zu unserem Drohnen-Versicherungsvergleich. Informationen zum neuen EU Drohnenführerschein gibt es hier.

    • Konfiguration des U-Blox NEO M8N GPS-Empfängers

      Hi,
      hat jemand Erfahrung mit der Konfiguration (Einstellungen) von U-Blox GPS-Empfängern, bspw. den Neo M8N?
      Auslesen (read auf der seriellen Leitung) ist kein Problem, nur das Senden (write auf der seriellen Leitung) von Kommandos an das board will nur gelegentlich.
      Mittels u-center Software klappt es manchmal, meist nicht. Von u-center aus Einstellungen permanent Speichern klappt auch nicht.
      Ich will die Ausgabefrequenz von 1 Hz auf 5 Hz erhöhen und dann die baud-Rate auf der seriellen Leitung.
      Hab's auch schon mit einem Neo M6 probiert, klappt auch nicht.
      Ich gehe davon aus, dass die serielle Verbindung funktioniert und auch der Empfänger.
      Gibt es eine Art Mode-Wechsel der zu tätigen ist, bevor man schreibt? Oder ein Zeit-Fenster zwischen den Lesezyklen?

      Jeder Hinweis ist willkommen.
    • Nee, das ist ziemlich sicher kein China-Clone. Und ja, einfache Änderungen habe ich auch ausprobiert.
      Selten nimmt das Board die Kommandos an, meist nicht. Es ist ziemlich zum Verzweifeln.
      Die Anbindung der u-center erfolgt über ein FTDI USB/Seriell Konverter. Auch diesen habe ich schon ausgetauscht.
      Normalerweise wird das Board über einen seriellen Anschluss am Stm32 oder Arduino betrieben.
      Funzt alles nicht.
      Etwas komisch kommt mir vor, dass ich in der u-center Software ab und an ein acknowlege bekomme, direkt am seriellen Anschluss des Stm32/Arduino nicht.
      In der Doku finde ich auch nichts über das Acknowlege, also wann es gesendet wird.
      Thanx anyway.
      Jörgy
    • Danke Leute,
      klar das man erst mal die Standard Fehler vermutet. Wie gesagt der Empfang funzt. Ich kann problemlos die GPS Datensätze lesen und auswerten.
      Nur den M8N umkonfigurieren will nicht.
      Hat niemand von Euch mal so ein u-blox Dingens konfiguriert?
      Was macht die Beta-Flight Software? In die bin ich noch nicht eingstiegen...

      Thanx anyway
    • Könnte es sein dass das Modul keine Kommandos entgegen nimmt, solange es mit dem Satelliten Fix beschäftigt ist, und den indoor nicht zuverlässig bekommt?- Ich kenne die U-Blox Module nicht, aber ich erinnere mich ganz dunkel, dass ich mit meinen letzten GPS Modulen (10 Jahre her...) auch alle möglichen Probleme hatte, wenn sie keinen Fix bekamen.

      Betaflight ist in erster Linie für Racer und Freestyler, und hat deshalb nur sehr rudimentäre GPS Unterstützung. Du kannst die Daten im OSD anzeigen lassen, und beim Signalverlust deinen Quad stumpf in die Nähe deines Startpunktes zurück fliegen lassen (Betaflight kann nicht automatisch landen). Wenn du einen GPS Kopter bauen willst solltest du besser iNav oder Ardupilot nehmen.
    • Hi gsezz,

      das ist ein guter Gedanke! Direkt ausprobiert habe ich das noch nicht, aber bei den vielen Tests hatte ich sicher auch Fixes mit dabei...
      Allerdings wollte ich im Setup, also bevor etwas vom u-blox gelesen wird, das Dingens parametrieren. Ich check das mal.

      Bzgl. Betaflight dachte ich, es sei ein moderneres Derivat von Ardupilot?
      Danke aber für den Hinweis!

      Grüße
    • Ich konfiguriere ständig ublox Module. Habe aber deine Probleme nicht. Der Zustand des Moduls ist grundsätzlich egal was die Entgegennahme von Konfigurationskommandos angeht. Aber es gibt halt ein paar Umstände, die man erstmal sicher feststellen müsste. Nochmal: Hat dieses M8N Modul den USB-Port rausgeführt?
    • Hallo Carsten,

      Danke für Deine Antwort. Konfigurierst Du die ublox-Module mit u-center oder mit eigener Software?
      Und wenn letzteres, wartest Du auf ein acknowlege (UBX-ACQ) nach jedem Kommando?

      > "Hat dieses M8N Modul den USB-Port rausgeführt?"
      Nein, den Seriellen. Über den lese ich ja bereits die NMEA-sentences...

      Thanx anyway.
    • Betaflight ist das genaue Gegenteil von Ardupilot. Bei Ardupilot geht es um Autonomie, bei Betaflight um volle manuelle Kontrolle. ;)
      Ardupilot ist immer noch aktuell. iNav hat gemeinsame Wurzeln mit Betaflight, geht mehr Richtung Autonomie, wobei es aber nicht so komplex ist wie Ardupilot.
    • Ausschließlich mit u-center, serielle auch schonmal mit nem schlichten Terminal. Die Acks gucke ich mir gelegentlich in der packet-console an, aber da ich beim Konfigurieren eigentlich nie Überraschungen erlebe, sind die für mich nicht so relevant. Nun ist das Protokoll bei den neueren ublox Empfängern natürlich schon sehr umfangreich geworden und es kann ja durchaus sein, dass bestimmte Konfigurationsoptionen schlicht verweigert werden, weil sie nicht zusammen gehen.

      Was sind denn so typische Sachen bei dir? NavRate hochsetzen und Baudrate entsprechend anpassen ist ja noch vergleichsweise trivial und sparsam zu erledigen. Wenn man Baudrate aber z.B. über irgendeinen uC macht, muss man natürlich schon aufpassen, ob die Software ne Library benutzt, ob das Framing nach so einer Änderung noch funktioniert,SoftwareUART, etc.
      Auch die Frage, ob man da regelmäßig was konfigurieren will, oder ob man nur einmal set&forget anstrebt.

      Würde mir auch immer zuerst mal anschauen, was überhaupt aus dem Receiver rauskommt. Wenn man die Navrate auf 10Hz setzt und weiterhin sämtliche MSGtypes aktiviert bleiben, reicht eine Verdopplung der Baudrate auch nicht mehr aus. Möglicherweise kommt dann auch deine Arduino Software nicht mehr hinterher, der UART läuft über, etc.
      Da diese Empfänger heutzutage alle multikonstellationsfähig sind und reichlich Satelliten rumschwirren, ist die GSV z.B. ein echter Leitungskiller. USB ist dagegen halt vollkommen unkritisch, da kann mehr experimentieren ohne dass es zu solchen unerwünschten Effekten kommt, die Grundkonfiguration über u-center und USB machen, und dann, wenn sicher ist, dass es stimmt, die normale Serielle wie gewünscht verwenden.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Carsten Kurz ()

    • Hallo Carsten,

      Danke für Deine umfangreiche Stellungnahme. Die beruhigte insofern, als dass ich nicht irgendwo völlig auf dem Holzweg bin.
      Heute hatte das Modul einen guten Tag (ob Du es nun glaubst oder nicht ;) an dieser Stelle war ich bestimmt schon ein dutzend mal). Es ließ sich via u-center konfigurieren und die neuen Einstellungen auch permanent speichern. Mal sehen wie lange das hält ;)
      Ich schalte die messages GSV, VTG, RMC und GSA ab (Position, Höhe und Qualität hole ich aus aus GGA) und dann auf RATE 200ms = 5Hz. Und natürlich auf 57600 baud.

      Mit dem Arduino hatte ich angefangen. Habe inzwischen zu einem Stm 32 gewechselt (blue-pill). altitude hold (Barometer), headlock (Kompass) und jetzt position hold (GPS)
      brauchen mehr Platz und einen schnelleren Prozessor, wie Du es richtig erahnst.
      Naja, das position hold via GPS wird lausig werden, weil die GPS Genauigkeit selbst bei blauem Himmel unzureichend ist. Wie gesagt mir geht's eher um's Grundsätzliche.

      Wenn das durch ist, werde ich mal sehen was man mit Betaflight oder Ardupilot so mit meiner Hardware anstellen kann.
      Wenn ich es richtig sehe, ist in vielen FCs auch ein Stm 32 verbaut...

      Thanx again
    • Man kann da sehr viel filtern. Just was das angeht hatte ich mir das gestern mal im u-center angeschaut. Das ist ein Punkt, der mich schon vor Jahren bei allen Receivern beschäftigt hat. Es gibt große Unterschiede in der Streudynamik bei den verschiedenen Receivern. Einige filtern die Position sehr stark. Dadurch hat man wenig Schwankungen, aber die Position klebt lange an einer Stelle, und das ist möglicherweise die falsche. Manche Receiver können absolut daneben liegen, bei kurzzeitigen Positionsänderungen sind sie aber sehr präzise, also ein DeltaP ist immer zuverlässiger als ein AbsoluteP.
      Andere Receiver springen sehr stark, was stören kann, aber sie springen dann typisch sehr gleichmäßig (sofern kein Mehrweg im Spiel ist) um eine Position herum, die sich später als guter Mittelwert herausstellt. Was mir gestern aufgefallen ist ist, dass mein ZED-F9 bei 10Hz wesentlich geringere Fehler produziert als bei 1Hz, und das häufiger. Möglicherweise kann man das auch über das DynamicModell im Receiver noch etwas receiverseitig tunen, aber für mich sah das so aus, also ob man lieber mit sehr hoher Rate misst, und dann selbst nach Bedarf kürzer oder länger mittelt. Selbst wenn man einfache Mittelungsverfahren verwendet, hat man nach meiner Meinung nach 1s bei 25Hz eine viel zuverlässigere Position als bei 1Hz.

      Das sind, wenn die Kopterdynamik dazu kommt, natürlich schon sehr komplexe Regler, die man da implementieren muss. Darum machen die Hersteller das bei den etwas aufwendigeren Koptern ja auch gerne zusätzlich mit einer IMU.


      Mit nem TTL-FTDI kann man ja auch die Kommunikation zwischen STM und Empfänger abhören, in einem Terminal, oder u-center. Man sieht dann auch, ob-center das, was Du als UBX zu schicken glaubst, als UBX erkennt.
      Mit zwei FTDIs auch die bidirektionale Kommunikation (u-center zweimal aufmachen). Da müsste man der Sache eigentlich auf die Schliche kommen können.
    • Mein Copter aktualisiert seine Roll- und Pitch-Position alle 250us = 4000 Hz. Da ich nur alle 200000us = 5 Hz eine GPS Position bekomme, interploiere ich zwischen zwei Positionen.
      So habe ich "verrauschte" Werte mit ca. 50 Hz. Weil groß, ist mein Copter sehr träge und behäbig. Die "Mittelung" von der Du sprichst habe ich sozusagen indirekt durch diese Trägheit.
      Aber interessant ist das schon was Du schreibst. Ich glaube man kann den M8N auch mit 10 oder 16Hz fahren. Mal sehen ob das was bringt.

      Und Danke nochmals, denn Du hast mich auf eine Idee für's position hold gebracht. Manchmal sieht man den Wald vor lauter Bäumen nicht:
      Ich hab ja eine IMU an Bord in Form eines Link zum Amazon-Produkt. Die nutze ich allerdings nur für die Lage und nicht für die Position.
      Der Accelerometer von dem Teil wird eh nur zur Driftminderung eingesetzt. Theoretisch müsste ich auch Positionsänderungen damit messen können.
      Na mal sehen. Jedenfalls gehen die Themen einem beim Coptern nie aus ;)

      greets