Epi-OSD

Aus Das Epilepsy Wiki
Wechseln zu: Navigation, Suche

Header-osd-2.jpg

english OSD-page

Bitte beachten Sie die Lizenz-Seite! Sie ist für dieses Projekt gültig!

РПИ OSD борту был разработан нами!

(Das EPI-OSD ist eine Entwicklung von uns!)


Inhaltsverzeichnis

Entstehungsgeschichte

Die "OSD Entwickler" sind Akku und Wowie (Wolfgang Wierczeyko).

Neuigkeiten / Changelog


OSD 0 8 2 3kl.jpg


Setting2kl.jpg



Allgemeines

Grundsätzliche Infos

Bei der Epi-OSD handelt es sich um eine Erweiterung für Quadrokopter, um Flugdaten via OSD in ein Kamera-Bild einzublenden. Desweiteren wird das Sinken und Steigen (Vario-Funktion) des Kopters auf dem OSD angezeigt. Die OSD-Schaltung basiert auf dem MAXIM-Chip MAX7456. Die Daten werden via serielle oder über eine SPI-Schnittstelle gesendet und von einem Atmel ATMega 162 für den OSD-Chip aufbereitet.

Zur Zeit werden folgende Werte angezeigt:

Bei Störung des Empfangssignals blinkt die OSD-Anzeige

Erweiterungen

NaviCtrl vom Mikrokopter

EPI-Strom

Mit der EPI-Strom-Platine wird es möglich, den Stromverbrauch und die Akku-Kapazität im Auge zu behalten - die Platine wird in die Stromversorgung eingeschliffen und liefert dem OSD die Verbrauchsdaten.

Anzeige-Modi

Es stehen mehrere Modi zur Verfügung:

Die Modi sind per RC-Sender über einen Kanal umschaltbar

EPI-Menu

Die Beschreibung des EPI-Menu ist hier zu finden: EPI-Menu

Kommunikation

Kommunikation mit der FC

!!! Achtung ganz wichtig !!! Immer FC und OSD gemeinsam einschalten. Nie das OSD zuerst. Die FC bootet sonst nicht.

Die EPI-OSD-Platine kommuniziert über die Serielle Schnittstelle mit der FC. Von dieser bekommt sie die Werte der angeschlossenen Sensoren. Wenn man die Höhen- und Vario-Funktion nutzen möchte, braucht man auf der FC also unbedingt den Luftdrucksensor. Diese muß dann via Koptertool in der FC freigeschaltet sein, sonst kommt kein Höhenwert bei der EPI-OSD-Platine an.

Wenn man den mk3mag zusammen mit der FC und dem OSD nutzen möchte, fertigt man sich einfach ein Flachbandkabel mit 3 Schneid-klemm-Steckern an und steckt alle drei zusammen ...

Will man das OSD im Zusammenspiel mit der NC (Navictrl) nutzen, sollte man sich vorher überlegen, das OSD board 180° gedreht einzubauen, da es an den Debug Port der NC angeschlossen wird. Andernfalls muss man ein Kabel auf die andere Seite des "Turms" legen, was zwar auch geht, aber nicht wirklich schoen ist.

Menusteuerung über Taster

Zur Zeit ist eine Menusteuerung mit den Tastern im Testbetrieb. Das Auswahlmenu erscheint auf dem OSD, ähnlich wie beim Fernseher zu Hause.

Schaltplan & Bestückungspläne

Aufbauanleitung

Anleitung und Bestückungspläne unter Löten_der_OSD_Platine

Programmieren mit Ponyprog

Tipp bei Problemen

Sollte es beim Flashen des EPI-OSD Probleme geben, so sollte man es mal mit einem kürzeren Flachbandkabel versuchen - es gibt Leute, bei denen geht es mit Kabeln die länger als 0,5m sind nicht ...

Zu den Problemen hat der Heling heute im Forum folgendes geschrieben:

ACHTUNG PONY-Programmers!

Die oft beschriebenen Schreib/Lesefehler bei div. Kabellängen können durch die richtigen Einträge in der Pony.INI verhindert werden.

Diese Einträge müssen hinzugefügt werden:

AVRByteWriteDelay=30 'Delay to complete the write of a single word AVREraseDelay=100 'Delay to complete the erase of all the memory

'In case of ATmega increase also the following parameter: ATMegaPageWriteDelay=50 'Delay to complete the write of a page of flash memory

Attention Pony -Programmers In case of Read-/write errors and some odd effects using wires in different length: add the parameters shown above in the Pony.INI

Danke Heling.

Grunsätzliches zum Flashen

Am einfachsten gehts z.Zt. mit "Pony-Prog" und der vom MK bekannten SerCon (Der Jumper muß gesetzt sein).

Das 10-polige Flachbandkabel kommt zwischen ISP1 auf der SerCon und X4 (ISP) auf der EPI-OSD. Achtung! Pin Eins beachten!

Bitte darauf Achten das die Fusebits korrekt gesetz sind. JTAGEN sollte unbedingt deaktiviert werden, da sonst die Taster nicht korrekt funktionieren. Es wird empfphlen EESAVE noch zu aktivieren, damit man ab Ver. 0.7 nicht jedes mal den EEPROM neu beschreiben muss. Auch empfehlenswert ist es, die Brown-out detection auf 2,7V zu setzen, damit der Atmel bei kleineren Spannungen einen Reset macht.

Die korrekten Fueses lauten dann: 0xFB, 0xD7, 0xFF (Ext, High, Low)

Wichtig bei Pony-Prog: Das Programm muß vor der ersten Programmierung auf den Rechner kalibriert werden, da sonst die Timings nicht eingehalten werden, was in der Regel heißt, daß man einen neuen ATmega einlöten muß ...


Dann lade man sich unter http://akku-seins.de/mk/firmware/osd/Zeichensatz/ die Dateien


herunter. Das ist dann noch keine Firmware, aber wir müssen ja ein paar gefällige Zeichen in den Max hineinbringen.. Dazu schließe man am Ausgang der OSD-Platine einen Monitor an.

Jetzt wird die Logo1.hex in den Atmel geflasht und das Bild auf dem Monitor skeptisch beäugt. Wenn ein langweiliges, entfernt an ein OSD erinnerndes Bild auftaucht, kann man die nächste dieser 4 "Flash-Firmwares" in den Atmel schießen. Hernach macht man das selbe mit den osdchar-Firmwares.

Wichtig: Jede dieser Firmwares sollte nur einmal laufen! Die schießt ja den Zeichensatz in den Max und der hat nur sehr wenige Schreibzyklen ...

Diesen Vorgang wiederholt man, bis man alle durch hat. Jetzt sollte man auch keine Chinesischen Zeichen mehr in der OSD-Darstellung haben.

Nun sucht man sich eine der anderen Firmwares aus dem Firmware-Verzeichnis und Flasht sie in den Atmel.

Durchführen von Firmware-Updates

Um ein Firmware-update durchzuführen, braucht man nicht die ganze obige Prozedur durchzuführen.

Ausnahme: wenn eine Firmware < 0.8.n drinnen war, müssen die osd_char_xxx reingeflashed werden, da ein paar neue Zeichen (u.A. für den Kompass) definiert werden müssen. Hier ist es wieder wichtig nach dem Flaschen zu warten, bis das Ende des Programmierens des MAX7456 durch das Blinken der roten LED angezeigt wirdm, bevor man das nächste HEX 'reinflashed ...)

Es muß also nur das Firmware-hex (und evtl. ein zugehöriges *.eep) in den Atmel geflashed werden. Das Hex mit "Write Program Memory" und das EEP mit "Write Data Memory".


Viel Spaß mit dem OSD!

Programmieren mit avrdude

Alternativ zu Ponyprog steht z.B. für Linux das Konsolentool "avrdude" zur Verfügung. Auch hier verbindet man das 10-polige Flachbandkabel zwischen ISP1 auf der SerCon und X4 (ISP) auf der EPI-OSD. Achtung! Pin Eins beachten! Bitte auch beachten: Jumper auf der SerCon muss gesetzt sein.

Testen der Verbindung zwschen PC und Mikrocontroller:

avrdude -p m162 -c siprog -P /dev/ttyS0  -U lfuse:r:-:i -v 

Kurze Erläuterung:

Dann erhalten wir eine Ausgabe des gesetzten lfuse. Praktischerweise gibt avrdude dank der Option -v gleich alle gesetzten Fusebits aus. Solltet Ihr ein Timeout erhalten stimmt irgendetwas bei der Kommunikation nicht und Ihr solltet nicht fortfahren. Evtl. müsst Ihr avrdude als "root" oder mittels "sudo" starten damit Ihr die Rechte habt auf den COM-Port zuzugreifen.

avrdude: safemode: lfuse reads as FF 
avrdude: safemode: hfuse reads as D7
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK

Jetzt setzen wir die neuen Fusebits für die OSD-Platine:

avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U lfuse:w:0xFF:m -U hfuse:w:0xd7:m

Achtung es gab eine Änderung an den Fusebits, ab Version 0.7 muss JTAGEN deaktiviert sein, damit das Menü korrekt funktioniert und die Taster erkannt werden. Die oben genannten Fusebits sind bereits richtig. Sollten sich die Fusebits nicht setzen lassen -zu erkennen am "verify Error", sollt der gesamte Chip gelöscht werden. Avrdude bietet dazu die Option -e ( löscht Flash+EEPROM )

avrdude -p m162 -c siprog -P /dev/ttyS0 -v -e

Dannach speisen wir den Mikrocontroller wie bereits oben beschrieben mit den verschiedenen Zeichensätzen des OSD und am Schluss mit der Controllersoftware. Der eigentlich Flashvorgang wird von avrdude mit Fortschrittsbalken schön in Szene gesetzt. Nach dem Flashen der einzelnen Dateien bitte immer Kontrollieren, dass avrdude keine Fehler ausgibt und kurz warten bis der Controller automatisch neu gestartet ist und am angeschlossenen Bildschirm wieder eine Art OSD eingeblendet wird. Wer keinen Monitor zur Verfügung hat kann auch warten bis die rote LED wieder zu blinken beginnt. Allerdings macht es mit Bildschirm einfach mehr Spaß, da man die Fortschritte sehen kann und sicher ist dass die Zwischenschritte funktionieren (Das Startuplogo ersetzt Firmware für Firmware die Chinesischen Zeichen beim Booten) In dem folgenden Beispiel wird davon ausgegangen das die Hexdateien im aktuellen Arbeitsordner liegen:

avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:Logo1.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:Logo2.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:Logo3.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:Logo4.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:osdchar1.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:osdchar2.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:osdchar3.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:osdchar4.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:osdchar5.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:osdchar6.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U flash:w:OSDvXXXXXX.hex:i
avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U eeprom:w:OSDvXXXXXX.eep:i

Ziel erreicht: MAX7456 mit Zeichensatz und Atmega mit OSD-Firmware versorgt.

Mit dem EPI-OSD sprechen

das EPI-OSD Spricht

Bedeutung der LEDs:

* LED1 (grün): 
** Leuchten = mir gehts gut!
** Blinken  = Handbetrieb
* LED2 (rot) : Blinken mit 1 Hz
* LED3 (grün): Blinkt in der Zykluszeit des OSDs
* LED4 (rot) : Blinkt, wenn Daten von der FC übernommen werden

das EPI-OSD hört

Das EPI-OSD hört auf einen Kanal der Funke (das PPM-Signal). Dazu schließt man den entsprechenden Empfänger-Kanal (oder FC-Ausgang) an das Lötpad "PPM" an. NUR das PPM-Signal - keine Masse und garkeine 5V! (sonst geht was karpott!) Wenn man auf diesem Kanal einen 6-stufigen Stufenschalter hat, kann man - die richtige Firmware vorausgesetzt - die verschiedenen Modi des EPI-OSD umschalten.

Die Modi sind:

* Stufe 1: OSD AUS
* Stufe 2: Logo wird angezeigt
* Stufe 3: OSD Anzeige ohne HUD
* Stufe 4: OSD Anzeige mit HUD
* Stufe 5: ----frei-----
* Stufe 6: ----frei-----

Shell auf der Seriellen

Steckt man die Sercon an das OSD und bemüht ein Terminalprogramm (z.B. das "Terminal-und-Flashen" des Kopter-tools), so kann man das OSD über eine Shell konfigurieren oder auch die Kennung einstellen.

Beim Einschalten des OSD gibt dies über die serielle einen kurzen Text aus.

Funktioniert ab Firmware 0.8.2.5

Die Bedienungsanleitung dazu findet man hier: EPI_Shell

Technische Daten

Größe der Platine: 50,5 x 50,5 mm²
Befestigungsbohrungen: FC-Kompatibel
Spannungsversorgung: 8-15V DC (ein 4S-lipo sollte auch gehen, dann sollte man den 7805 aber kühlen!)
Stromaufnahme: ca. 200mA (ohne Kamera/Video-Sender)
Gewicht: ca. 19g (Mit goldigen Buchsen / ohne Kabels)


Fehlerbeseitigung

Epi service1.jpg

C-OSD - Die open-source Software fuers EPi-OSD

Beschreibung

C-OSD ist an sich kein eigenes Projekt mit eigener Hardware, vielmehr eine quelloffene alternative Software für das EPi-OSD. Die Hardware ist also die vom oben erwähnten EPi-OSD. Der Funktionsumfang ist relativ ähnlich, angezeigt wird standardmäßig:

Zusätzlich werden nach dem Flug ein paar Statistiken angezeigt wie maximale Geschwindigkeit, minimale Akkuspannung und maximale Entfernung zur Home Position.

Forums-Thread

http://forum.mikrokopter.de/topic-8592.html

Projektseite

http://www.mylifesucks.de/oss/c-osd/

SVN Quelltext Repository

http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FC-OSD%2F#_C-OSD_

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Shop
Technik
Software
Partnershops
Wiki
Werkzeuge