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.
Projektpage: https://code.google.com/p/mineasyosd/
Bauteile
- Minimosd (ebay)oder eine günstige Kopie von hier.
- GPS (ebay) (aus Deutschland und getestet) oder hier. Finger weg von dem hier. (Warum? Siehe am Ende dieses Beitrags!)
- USB2UART Adapter. Ich habe meinen von hier (ebay).
- 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.
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.
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.
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.
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:
Wenn ihr das ganze mit viel Empfang im Haus macht, sieht euer Bild vielleicht auch so aus:
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.
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!
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:
- 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
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.
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
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.
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
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.
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
[stextbox id=”achtung”]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.[/stextbox]
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:
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.
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:
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.
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:
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:
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.
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.
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.
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.
Folgende Schaltung für RSSI
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.
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:
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.
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
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 🙂