Startseite » MineasyOSD – Einfaches OSD mit GPS ohne Flightcontrole

MineasyOSD – Einfaches OSD mit GPS ohne Flightcontrole

von Christoph Bimmer

Wenn man in seinem Nuri/Fläche keine Flightcontrole mit GPS und return to home hat, kann es vielleicht vorkommen, dass man nicht mehr nach Hause findet. Dafür gibt es eine sehr günstige Lösung für FPV-Flieger. Das Ganze nennt sich mineasyosd, ist Open Source und für ~ 40 € erledigt. Die Sourceanpassung vom minimOSD ist von JR63.

MineasyOSD - Einfaches OSD mit GPS ohne Flightcontrole

MineasyOSD – Einfaches OSD mit GPS ohne Flightcontrole

Projektpage: https://code.google.com/p/mineasyosd/

Bauteile

  • Minimosd oder eine günstige Kopie von hier.
  • GPS (aus Deutschland und getestet) oder hier. Finger weg von dem hier. (Warum? Siehe am Ende dieses Beitrags!)
  • USB2UART Adapter. Ich habe meinen von hier.
  • Ein paar verschiedenfarbige Kabel, Lötkolben, Multimeter usw…
  • Netzteil mit 5V bzw. einen StepDown um einen 2-3S Akku anzuschließen.

Als aller erstes…

Konfiguration des GPS Moduls mit U-Center

Als erstes nehmt ihr euch das GPS vor. Das benötigt ein paar Einstellungen. Das Programm U-CENTER um das GPS einzustellen bekommt man hier.

Jetzt nehmt ihr euren USBTTL Wandler und steckt das GPS an. Passt beim GPS bitte sehr auf und langt nicht auf die Antenne. Der Chip im GPS-Modul ist sehr ESD Empfindlich. Am besten ihr schrumpft es mit Schrumpfschlauch ein. Beachtet bitte dass ihr euren USBTTL Wandler auf 5V einstellt.

crius_neo_6_gps_module

Nach folgendem Schema anschließen

  • RX an TX (Grün)
  • TX an RX (Gelb)
  • 5V an 5V (Rot)
  • GND an GND (Schwarz)

Überprüft die Farben nochmal an Eurem GPS Modul. Ich habe um es einfacher ans OSD anzuschließen, die Kabelbelegung an der Buchse gedreht. Mein Stecker hat jetzt die Reihenfolge RX TX 5V GND. Das ist exakt die Reihenfolge, die das minimOSD auch benötigt. Bitte ändert bei eurem auch die Reihenfolge, damit man es einfacher ans OSD anstecken kann. Das geht sehr einfach mit einer Nadel.

Anschlusskabel_gps_minimosd

HobbyHelp - Ultimate Beginner's Guide to RC Helicopters

USB2UART Adapter

Anschließend steckt ihr den USB2UART Wandler an USB an. Windows sollte die Treiber automatisch finden, falls nicht, funktioniert mit Sicherheit dieser oder dieser.

GPS an UART

GPS an UART

U-Center starten

Jetzt startet ihr das U-Center und klickt oben auf Connect. Solltet ihr nur einen Com Port in Eurem System aktiv haben, verbindet sich die Software nach dem Start automatisch. Falls nicht, müsst ihr vorher auf den kleinen Pfeil rechts neben dem Symbol klicken und den COM-Port des USB2UART Adapter auswählen. In meinem Fall war es COM5.

u-center-connect_autobauding

Oft ist RX und TX nicht von Anfang an ersichtlich. Tauscht die zwei einfach durch wenn keine Verbindung zustande kommt.

Autobauding

Es ist wichtig, dass ihr die Baudrate wisst. Falls nicht, gibt es in der Software einen schönen Button, der nennt sich „Autobauding“. Dann wird die Baudrate automatisch festgesetzt. Sollte die Verbindung funktionieren, solltet ihr nach kurzer Zeit schon ein paar Satelliten finden. Das ganze sieht dann ungefähr so aus:

ublox_u-center-gps

Wenn ihr das ganze mit viel Empfang im Haus macht, sieht euer Bild vielleicht auch so aus:

u-center-max_satelites-3d-fix

Wenn die Verbindung funktioniert, dann machen wir jetzt weiter mit der Konfiguration.

Konfiguration des GPS Moduls

NEO-6M GPS: Ich hatte diverse Probleme mit der Kommunikation zwischen OSD und GPS Modul. Nach einigen Stunden herumprobieren hab ich dann die Lösung im Code selbst gefunden. Die Parameter der MSG und INF haben nicht gepasst. Da das GPS Modul ja auf UBX sendet, wurde der Code von der Openpilot Firmware implementiert. Das ganze findet man auch im Sourcecode des minimOSD. Wer also ein 6M GPS hat, kann dann ganz einfach diese Datei für die Konfiguration benutzen.

In dem .rar Archiv befindet sich eine .txt Datei. Um diese zu flashen geht man nach erfolgreicher Verbindung einfach im U-Center auf „GPS Configuration“ (oder GNSS Configuration) im Menü Tools und wählt die .txt Datei aus die ihr in dem .rar Paket findet und klickt auf „File to GNSS“. Vorher „Store Configuration into BBR/Flash“ anhaken, sonst wird die Configuration nur im flüchtigen Speicher gespeichert und ist nur bis zum Neustart vom GPS vorhanden.

GNSS Configuration

GNSS Configuration

Die während dem Speichervorgang aufkommenden Fehlermeldungen/Timouts kann man erstmal getrost ignorieren, da ja durch die Configuration die Baudrate umgestellt wird. Wir warten auf jeden Fall bis zur Meldung „done“.

Baudrate ändern

Jetzt ändern wir die Baudrate im U-Center auf 57k. und wiederholen den ganzen Flashvorgang. Anschließend sollte das OSD einwandfrei funktionieren!

U-Center

Hat man KEIN NEO-6M Modul, dann muss man den etwas komplizierteren Weg gehen. Klicke bei bestehender Verbindung ins Menü auf „View“ und dann auf „Configuration“ oder drücke STRG+F9. Im aufgehenden Fenster stellen wir dann folgende Sachen ein:

u-center-configuration

  • PRT (Ports)
  • RATE (Rates)

Es ist wichtig, dass man die Baudrate einstellt fürs minEASYOSD damit es mit dem GPS kommunizieren kann. Ist die nicht identisch, wird die GPS Verbindung nicht funktionieren.

Folgende Parameter stellen wir für das OSD ein:

  • Target: UART1
  • Protocoll in: 0+1
  • Protocoll out: 0 – UBX
  • Baudrate: 57600

u-center_uart1_port

Anschließend klicken wir unten auf den Button „Send„. Jetzt sieht man das sich die „GPS-Balken“ in der Software nicht mehr bewegen. Zumindest sollten sie stehen bleiben, wenn man die Fenster im Hintergrund offen hat.

Wir lassen die Konfiguration offen und klicken oben auf den kleinen Pfeil neben dem Baudrate Button.

U-Center

Dort klicken wir auf 57600 und sollten sofort feststellen können, dass sich die blauen/roten/grünen Balken wieder bewegen.

RATE

Jetzt gehen wir im Konfiguationsfenster auf den Punkt „RATE“ und stellen dort 10HZ ein. Mit 1HZ aktualisiert sich das GPS nur einmal pro Sekunde. Das könnte im Flieger bei Geschwindigkeiten von ~100km/h eventuell zu wenig sein! Folgende Parameter müssen dort eingetragen werden:

  • Measurement Period: 100
  • Measurement Frequency: 10.00
  • Navigation Rate: 2
  • Navigation Frequency: 5.00

u-center_rates

Ihr werdet sehen, sobald ihr auf den SEND Button gedrückt habt, seht ihr dass sich der GPS-Verlauf jetzt viel schneller bewegt.

CFG (Configuration)

Anschließend gehen wir auf den Punkt CFG (Configuration) und nehmen die Checkbox „Save current configuration“ und markieren auf der rechten Seite alle Devices.

u-center_save

Jetzt sollte das GPS Modul mit dem minimOSD kommunizieren können und wir machen weiter mit dem

MinimOSD selbst

Ich empfehle allen den 5V Mod beim OSD durchzuführen. Das wurde aber schon so oft erklärt, deswegen werde ich darauf nicht explizit eingehen. Wer das OSD bereits gemoddet gekauft hat (das von Banggood ist schon für 5V vorbereitet) kann sofort loslegen. Wer es noch umbauen will, dem hilft das hier. Einfach das passende OSD heraussuchen und umbauen. Beachtet aber bitte das ihr das OSD dann nicht mehr mit 12V versorgen dürft, sonst brennt es durch!!!

Verkabelung

Das minimOSD wird ähnlich programmiert wie das GPS. Nur benötigt man dafür die Arduino Software. Dazu wird das OSD wieder mit dem USBTTL Wandler verkabelt:

Entweder ihr verkabelt es kurzzeitig oder ihr bereitet euer OSD so vor wie ich es gemacht habe. Dann gibt es später auch keine Probleme wenn man mal etwas an der Konfiguration ändern möchte. Ich bevorzuge Lötverbindungen, da das OSD zwischen Kamera und VideoTX ein geschleift wird und ein Ausfall zwecks Wackelkontakts hätte gravierende Probleme. Einzig das GPS habe ich per Buchsen Leiste verbunden. Da hab ich die einzelnen Buchsen allerdings mit einem Hauch von Zinn bedeckt, damit es richtig fest in der GPS-Anschlussbuchse sitzt.

Programmierpins

Wie ihr sehen könnt habe ich die Programmierpins freigehalten und kann es somit jederzeit programmieren und muss dazu nicht das GPS ausstecken. GND hab ich mir mit einem weißen Lackstift markiert um nicht erst großartig die Platine lesen zu müssen. Wenn das OSD mal eingebaut ist, wird es im Nachhinein sonst unnötig kompliziert beim Anstecken und die Verpolungsgefahr ist somit sehr hoch. Dazu hab ich mir die GPS/V-In/V-Out Leitungen zusätzlich beschriftet.

  • GND an GND (Schwarz)
  • 5V an 5V (Rot)
  • TX an RX
  • RX an TX

minimosd_rueckseite_detail

Konfiguration

Als erstes laden wir uns die Quelldateien herunter. Am einfachsten geht es mit einem Unix-/Linuxsystem um mit SVN das komplette Source Paket herunterzuladen.

svn checkout https://github.com/pelrun/mineasyosd mineasyosd-read-only

Dazu gibt es auch Programme für Windows. Einfach mal hier suchen. Wer damit Probleme hat, kann sich auch hier ein .rar Archiv herunterladen was den mineasyosd-read-only Ordner beinhaltet. Stand 09.2014.

Sobald das erledigt wurde, kann man im Ordner minEASYOSD den sourcecode mit Arduino öffnen. Wenn man sich mit Arduino nicht so gut auskennt, gibt es im Internet zahlreiche Tutorials, die darauf eingehen. Das sprengt hier dann doch ein bisschen den Rahmen.

Fangen wir an mit der Software

Kopiert den Inhalt des librarys Ordner der sich im SVN Paket befindet in euren Arduino Installationsordner (z.B. C:\Program Files (x86)\Arduino\libraries) sonst kann der source nicht kompiliert werden und bricht mit Fehlern ab.

Arduino Librarys

Wir öffnen wir die minEASYOSD.ino mit Arduino. Das Programm sollte dann alle zugehörigen Dateien automatisch mit öffnen. Wir suchen uns die Datei: OSD_Config.h

Nächstes Problem: Sketch lässt sich nicht kompilieren oder bricht mit „error“ ab: Nutzt bitte explizit die Arduino Version 1.06. Mit dieser hab ich das OUT OF THE BOX getestet und funktioniert.

arduino_minimosd_configh

Wer das oben genannte GPS gekauft hat, muss die beiden folgende Werte ändern:

#define GPS_BAUD_RATE 57600

#define GPS_PROTOCOL_UBX

Das ist einmal die Baudrate mit der ihr vorhin Euer GPS konfiguriert habt und dann noch das Protokoll welches das GPS sendet. Nutzt exakt die selbe Baudrate wie bei eurem GPS, ansonsten kann die Verbindung nicht stattfinden.

Upload Firmware für das mineasyOSD

Anschließend wählt ihr im Menü „Tools“ / „Board“ den „Arduino Nano W/Atmega 328“ aus sucht den COM Port, an dem ihr den USBTTL angeschlossen habt im Menü „Serieller Port“ und klickt anschließend oben links auf den grünen Pfeil „upload„.

Da ich nur 4 Leitungen angeschlossen hab an meinem OSD und auf die Reset Leitung verzichte, muss man nachdem die Arduino Software im Log mit „Sketch kompilieren“ fertig ist kurz die Resettaste am OSD betätigen damit die Firmware geschrieben werden kann.

Resetknopf

Ich drücke immer Reset wenn das hier im Log erscheint:

avrdude_log_minimosd

Sollte das flashen nicht auf anhieb funktionieren, versucht es einfach nochmal. Das funktioniert schon. Wenns gar nicht geht, bzw. eine Fehlermeldung erscheint wie z.B. AVR Out of Sync, dann habt ihr evtl. die Kabel RX und TX vertauscht. Dreht die mal um und versucht es erneut.

Wenn

avrdude done. Thank you.

im Log erscheint, dann haben wir das OSD mit Erfolg beschrieben und wir können zu den OSD Einstellungen weiter gehen.

Einrichten der OSD Anzeige

Wir lassen das OSD am USBTTL Wandler dran und öffnen die Datei „OSD_Config.exe„. Diese Datei findet ihr im Ordner: Tools.

minimosd_osdconfigexe_start

Wie ihr seht ist das alles ziemlich vollgequetscht mit vielen nützlichen und unnützen Werten und Symbolen. Ihr könnt eigentlich bei allen den Haken entfernen. Was uns interessiert ist eigentlich nur:

  • Battery A
  • Visible Sats
  • GPS Lock
  • GPS Coord
  • Home direction
  • Home Distance
  • Warnings
  • Time
  • RSSI
  • Altitude

Wenn ihr die Symbole im Raster schön an die gewünschten Positionen geschoben habt sieht es vielleicht so aus:

minimosd_osdconfigexe_fertig

Wählt den passenden COM Port aus (bei mir COM5) und klickt auf „Save current tab to“. Solltet Ihr eine Fehlermeldung bekommen, dann drückt direkt nach dem Klick auf den Button die Reset taste auf dem MinimOSD. Bei erfolgreichem Schreibvorgang wird das von der Software auch positiv bestätigt.

Erster Test

Dazu stecken wir das OSD vom USBTTL Wandler ab und holen uns einen 5V Bec, einen passenden Akku (12V) einen Monitor, das GPS. Anstatt dem Akku geht auch ein Netzteil. Eine Kamera bzw. einen Videotransmitter benötigen wir nicht. Bitte nehmt nicht den USB TTL Wandler zur Stromversorgung, da der die Spannung nicht schafft, die das OSD mitsamt Zubehör benötigt. Wenn ihr auch noch den 5V Mod durchgeführt habt, dann wird der Videochip auf dem OSD auch noch darüber versorgt.

verkabelung_minimosd_komplett_erster_test

Ihr seht, es sieht noch nicht so aus als ob das GPS arbeitet, da ihr ja keinen Homepfeil, keine Coordinaten usw. habt. Das ist beim minimOSD immer so und die ganzen Sachen erscheinen erst, wenn ihr wirklich einen 3D Fix habt. Dazu konnte ich das im Sourcecode finden:

// criteria for a stable home position:

// - GPS fix

// - with at least 5 satellites

// - osd_alt stable for 50 * 100ms = 5s

// - osd_alt stable means the delta is lower 0.5m

Das heißt so viel wie: Wenn du keinen GPS Fix hast, dann zeige auch nichts an.

GPS LED

Das GPS von mir hat eine kleine LED die blinkt grün, sobald es einen 3D Fix hat. Das heißt jetzt also ihr müsst raus aus der Wohnung und das ganze im Freien testen oder ihr habt ein großes Fenster wo ihr euren Versuchsaufbau anbringen könnt. Wartet am besten 5-20 Minuten. Der erste Almanach Download vom GPS kann etwas länger dauern. Wer es trotzdem vorher überprüfen möchte ob die Kommunikation stattfindet, muss auf folgendes Symbol im Display achten:

gps_lock_3dfix_minimosd

Erscheint es, dann funktioniert die Kommunikation. Erscheint es nicht, könnt ihr euch den Weg nach draußen sparen und ihr müsst das ganze nochmal überprüfen. Solltet ihr das Schloss sehen, dann ist alles in Ordnung. Das Schloss ist offen, wenn noch KEIN 3D Fix stattgefunden hat. Sobald ihr mit dem ganzen Zeug nach draußen geht, sieht es dann vielleicht so aus:

MineasyOSD - Einfaches OSD mit GPS ohne Flightcontrole

MineasyOSD – Einfaches OSD mit GPS ohne Flightcontrole

Ab jetzt habt ihr ein funktionierendes OSD mit GPS und Homepfeil.

Vorbereitung RSSI / Spannung / Current

Als allererstes bereiten wir das minimOSD jetzt vor. Wer ein aktuelles KV-OSD besitzt kann sich glücklich schätzen, da die Pins schon herausgeführt wurden. Wer nicht, hält kurz die Luft an und lötet sich die 3 Kabel an den Atmega.

minimosd_pinout_rssi_current_voltage

Quelle: https://code.google.com/p/minnazaosd/wiki/SolderOSD

Das Bild ist von der miNAZAosd Seite und dient jetzt nur zur Veranschaulichung wo die Kabel an die Pins angelötet werden müssen. Wichtig für uns ist nur:

  • RSSI
  • Current Sensor und
  • Voltage Sensor

LED benötigen wir nicht, da wir keine NAZA fliegen 😉 – Ebenso der Spannungsteiler der auf dem Bild abgebildet ist, kann funktionieren, muss er aber nicht. Da hilft dann nur probieren. Wichtig: 1,1V pro Pin sind die Maximalwerte!

Wenn Ihr Eure drei kleinen Litzen angelötet habt, sollte es so aussehen. Ich hab mir die Litze noch mit ein klein wenig Epoxy Kleber gesichert.

minimosd_pins_angeloetet_pinout_atmega

Bitte beachtet nur die Kupferlitze auf dem Foto. Ich habe leider auf der Rückseite den Pin für den RC Kanal abgerissen und musste somit an den Atmega direkt gehen (gelbes Kabel).

RC-Kanal

RC-Kanal: Da wir gerade beim minimOSD vorbereiten sind, lötet man auch gleich an den RC-Kanal ein Kabel an. Dieses wird benötigt um wenn alles fertig verkabelt ist, Spannung, Voltage und Offset zu kalibrieren. Das geht auch mit einem Servotester. Ich habe einfach ein fertiges Servokabel angelötet an:

  • GND an GND
  • 5V an 5V vom ISP Anschluss (die 6 Pin Buchse)
  • Signal an den RC Ausgang auf der Rückseite.

Das Kabel könnt Ihr recht kurz halten und auch dran lassen. Wir werden das noch öfters brauchen. Zur kalibration der Werte gehe ich jeweils genauer ein in den passenden Textabschnitten.

minimosd_servokabel_rc-out

Vorbereitung RSSI

Beispiel: OPENLRS. Wer ein anderes System fliegt, muss testen.

Als aller erstes muss der Spannungsteiler richtig sein. Ich habe das anhand des OpenLRS (dafür benötige ich die RSSI Anzeige) angewendet. Das OpenLRS sendet das RSSI Signal Digital im PWM Format. Das minimOSD kann damit nicht umgehen und benötigt dafür einen Filter um das digitale Format in ein analoges umzuwandeln. Dieser Filter sieht fertig so aus:

Ich habe anstatt dem 1uF Kondensator 3 kleine 100nF hergenommen. Kommt aufs gleiche und dient nur zur Stabilisierung der Spannung.

openlrs_orange_rssi_filter_20141117-125315_1

Folgende Schaltung für RSSI

rssi_filter_openlrsng_analog

Quelle: Wiki openLRS

Ich habe einfach ein kleines Stück vom Platinenlack weg gekratzt und die freigewordene Fläche dann als Massepunkt genommen. Wenn Ihr Euren Filter fertig habt und er am RSSI-Pin (beim OpenLRS Pin 1) hängt und fertig ist der Digital/Analog Wandler.

MinimOSD RSSI:

So. Wenn man einen Empfänger hat, der ein analoges RSSI Signal ausgibt (siehe Beispiel openLRS) dann kanns jetzt losgehen: Bitte misst unbedingt die Spannung, welche an eurem RSSI Ausgang raus kommt nach. Der Bereich sollte MAXIMAL 0-1,1V haben. Ist das nicht der Fall, muss man einen Spannungsteiler bauen 🙂 (Wikipedia: Spannungsteiler)

Beim openLRS kommt bei vollem Empfang – Empfänger liegt einen Meter neben dem Sender – eine Spannung von 2,2 V heraus. Dieser Wert ist definitiv zu hoch für das minimOSD und somit stimmt Eure Anzeige nicht. Da wir ja 1,1 V benötigen hab ichs mir recht einfach gemacht und hab die Spannung einfach geteilt. Somit hab ich einfach zwei identische Widerstände (2x 16 KOHM) als Teiler benutzt und somit kommen 1,1V heraus. Den Spannungsteiler hab ich mir auf die Rückseite vom minimOSD auf ein kleines Spiegelklebeband geklebt und anschließend mit Epoxydharz eingeklebt.

minimosd_mineasyosd_spannungsteiler

Pins herausführen

Wenn alles soweit passt, dann fangen wir jetzt an Eure herausgeführten Pins an die Teiler anzulöten. Beachtet bitte die Reihenfolge damit alles gut klappt.

Wenn ihr Euren RSSI Ausgang vom Sender nun anschließt solltet Ihr neben Eurer RSSI Anzeige einen Wert sehen. Wer nicht, überprüft nochmal ob der RSSI Wert auch richtig rauskommt und Ihr es am richtigen Kanal abgreift. Die Anzeige sollte auf 0% fallen, wenn Ihr Euren Sender ausmacht.

Kalibration der RSSI Werte:

Schließt Euer minimOSD an den FTDI an und startet das ArduCAM Config Tool, wählt den richtigen COM Port und klickt auf Read from OSD.

Ihr macht einen Haken bei RSSI Enable Raw:

rssi_enable_raw

Die oberen Werte interessieren uns noch nicht. Speichert und schaut auf Euren Monitor. Jetzt seht ihr die Ausgangswerte der RSSI Verbindung. Entweder 0 für Fernsteuerung aus oder 255 für Verbindung. Es kann durchaus sein, dass auch andere Werte da stehen. z.B. 0 und 220. Notiert oder merkt Euch den Wert und verbindet euch wieder mit dem Arducam OSD Config Tool.

Jetzt macht ihr den Haken weg bei „RSSI Enable Raw“ und tragt bei „RSSI Max Value“ Euren Wert ein. Fertig. RSSI Kalibriert. Jetzt solltet Ihr einen Wert von 0-100% sehen.

rssi_configuration_arducam_osd_Config_tool_20141117-133926_1

Current

Current / Verbrauch / Strom ist so eine Sache. Man muss sich gut überlegen, ob man verbrauchte Ampere wirklich haben möchte. Um den Shunt ordentlich zu kalibrieren sind sehr hohe Ströme notwendig. Ein 90A Attopilot braucht um wirklich genaue Werte zu liefernauch 90A an Strom der durchfließt. Viele haben nicht mal ein Netzteil in diesen Dimensionen und das ganze mit einem Akku zu kalibrieren halte ich für zu riskant. Der Kurzschlussstrom der bei einem Akku fließt ist sowas von hoch, da ist dann alles hinüber. Wer das machen möchte, geht genauso vor wie bisher mit der Spannungskalibration.


GPS Layout Fehler

GPS mit Layoutfehler

GPS mit Layoutfehler

Dieses GPS will einfach seine Konfiguration nicht speichern. Nach etwas Recherche hat sich herausgestellt, dass es einen Layout Fehler hat, wodurch die Batterie kurzgeschlossen wird und sich somit ständig entlädt. Dann kann natürlich nichts gespeichert werden. Somit hat sich meine Baudrate immer wieder auf 9600 zurück gesetzt. Quelle

Das Problem hat sich von selbst gelöst, in dem ich einfach ein anderes GPS Modul gekauft hatte 🙂

Könnte auch interessant sein

Hinterlasse einen Kommentar

* Wenn Du einen Kommentar hinterlässt, akzeptierst Du unsere Datenschutzbedingungen.

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung Akzeptieren Datenschutzerklärung