Quelltext der Seite Epi-OSD
Wechseln zu:
Navigation
,
Suche
[[Bild:Header-osd-2.jpg]] [[Epi-OSD/en|english OSD-page]] [[Lizenz|Bitte beachten Sie die Lizenz-Seite! Sie ist für dieses Projekt gültig!]] РПИ OSD борту был разработан нами! (Das EPI-OSD ist eine Entwicklung von uns!) == Entstehungsgeschichte == Die "OSD Entwickler" sind Akku und Wowie (Wolfgang Wierczeyko). * 22.2.2008 Wowie und Akku entwerfen die erste Platine. * 14.3.2008 Entstehung der ersten Firmware für die Platine * ... Dann ging es zügig weiter ==Neuigkeiten / Changelog== * 24.05.2010: Umstrukturierung! ** Die EPI-OSD-Firmware ist jetzt unter [[Firmware#FW_f.C3.BCr_EPI-OSD|Firmware für das EPI-OSD]] zu finden ** Nach und nach wird da auch eine Beschreibung zu den Firmwares eingebaut! * 09.04.2010: Firmware 0.9.5.0.2 ** Firmware http://mk.heissum.info/sw/osd_0_9_5_0_2.hex ** EEP-File http://mk.heissum.info/sw/osd_0_9_5_0_2.eep ** Anpassung Datenformat FC oder NC * 15.03.2009: Firmware 0.9.2.1.3 http://mk-epi.de/OSD/HW02/FW_0_9/osd_0_9_2_1_3.hex ** Anzeige Speed over Ground: Einheit gewechselt cm/sec -> km/h * 04.03.2009: Firmware 0.9.2.1.2 http://mk-epi.de/OSD/HW02/FW_0_9/osd_0_9_2_1_2.hex ** Richtung und Entfernung zur HomePos entfernt. ** OSD Datensatz enhält nur 0-Werte ** Speed Over ground hinzugefügt (Einheit cm/sec) * 17.02.2009: EPI-OSD-Service: Fw dient zum Darstellen des Zeichensatzes http://akku-seins.de/mk/firmware/osd/osd_service.hex ** siehe [[Fehlerbeseitigung]] * 04.02.2009: Firmware 0.9.1.1_x_Beta http://mk-epi.de/OSD/HW02/FW_0_9/osd_v_9_1_1_1_beta.hex * Bitte beachten: Wenn es für die jeweilige FW eine *.eep Datei gibt, diese bitte in den EEprom laden. ** Eigenschaften *** Erkennung der Devices : FC_old_FW, FC, NC *** Eine shell steht zur Verfügung [[EPI_Shell]] *** NTSC wird ab sofort unterstützt **** Die Anzeige ist ein bisschen zusammengeschoben. NTSC hat halt 4 Zeilen weniger *** Es werden folgende Werte übernommen, abgespeichert und bei PC/BT Betrieb wieder eingelesen **** Device: FC, NC **** Setting Nr. **** Setting Werte: Kompass, GPS, Höhenregler, HH, etc **** Unterspannung **** PC/BT Betrieb **** ID **** PAL/NTSC * Was wird angezeigt ** Das hängt zunächst von dem gewählten Setting der FC ab. ** Grundanzeige ( Alle Häkchen im Koptertool aus) *** Spannung, Flugzeit, HUD, ID wenn im Menu aktiviert ** Höhensensor *** Höhe in Metern *** Variometer in dm/sec *** Ein Pfeilchen das Steigen oder Sinken anzeigt ** Kompass *** Kompasswert analog *** Kompassanzeige als "Rose" ** GPS *** Anzahl der Sats [[Bild:OSD_0_8_2_3kl.jpg]] [[Bild:Setting2kl.jpg]] **Menu Funktion mit folgenden Einstellmöglichkeiten: *** PAL/NTSC *** PC/BT ON sendet das OSD keine Daten mehr an die FC **** '''Da sitze ich gerade dran: ''' **** Folgender Lösungsansatz wäre denkbar ***** Ohne angestecktem BT/PC die FC/NC/OSD anschalten ***** Wenn das OSD gebootet hat, die Settings übernommen und den OSD-Datensatz aboniert hat ***** Das BT/PC anstecken *** Kennung ON wird eine vom User eingegebene Kennung angezeigt *** RC-Betrieb ON Die Modi sind per Sender schaltbar ==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: *Akkuspannung in V. *Höhe *Kompassrichtung *Flugzeit *Variometer Bei Störung des Empfangssignals blinkt die OSD-Anzeige ===Erweiterungen=== ====NaviCtrl vom Mikrokopter==== * In Verbindung mit der NaviCtrl von [http://www.mikrokopter.de Mikrokopter (H&I)] werden zur Zeit folgende Daten eingeblendet: **Anzahl der Satelitten **Entfernung in Nordrichtung **Entfernung in Ostrichtung ====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: *OSD an *OSD an und Darstellung eines künstlichen Horizonts (HUD) *OSD an Variometer an *OSD aus. z.B. für Videoaufnahmen 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 dem Quadrokopter **Serielle Schnittstelle **SPI Schnittstelle als Master oder Slave *Kommunikation mit dem PC **Serielle Schnittstelle mit TTL-Pegel ( Pegelwandler z.B. Sercon ) *Kommunikation mit der NaviCtrl **Serielle Schnittstelle (FC) beim EPI-OSD und Debug-Schnittstelle NaviCtrl *Kommunikation mit der EPI-S **SPI-Schnittstelle des OSD an 10-pol. Stecker der EPI-S. '''ACHTUNG! RxD (Pin 8) und TxD (Pin 3) in diesem Kabel auftrennen!''' ==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== <gallery>Bild:OSD-Schalt.jpg|Schaltplan der EPI-OSD-Platine - Anklicken zum Vergrößern Bild:OSD-loet.jpg|Lötseite der EPI-OSD-Platine - Anklicken zum Vergrößern Bild:OSD-best.jpg|Bestückungsseite der EPI-OSD-Platine - Anklicken zum Vergrößern Bild:OSD_Platine.jpg|Foto der gelieferten OSD-Platinen Bild:OSD-loet-foto.jpg|Foto der Lötseite Bild:Anschluss-osd.jpg|Anschlußplan der OSD-Platine - Anklicken zum Vergrößern Bild:Pin-1.jpg|Wie erkennt man Pin 1 bei Stecker, Buchsen und Kabel?</gallery> ==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! <gallery>Bild:Capture 08092008 152531.jpg|Setzen der Fuse-bits mit Pony-Prog (aktualisiert) - Anklicken zum vergrößern </gallery> 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 * Logo1.hex * Logo2.hex * Logo3.hex * Logo4.hex * osdchar1.hex * osdchar2.hex * osdchar3.hex * osdchar4.hex * osdchar5.hex * osdchar6.hex * osd_char76_7a.hex * osd_char7b_7e.hex * osd_char0x00.hex 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#FW_f.C3.BCr_EPI-OSD|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. * Die Fuses sind ja schon richtig gesetzt - braucht man also nicht mehr machen. * Die Zeichensatz- und Logofiles sind ja auch schon drinnen - braucht man auch nicht machen. 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: * -p gibt den Mikroprozessortyp an * -c Gibt den Programmieradapter an -> in diesem Fall SerCon-Kompatibel * -P gibt den Anschluss am PC an -> in diesem Falle COM1 unter Linux * -U macht eine Speicheroperation - ''Speichertyp''''':'''''Lesen/Schreiben''''':'''''Datenqelle/Ziel''''':'''''Typ der Quelle/Ziel''' * -v Ausgabe mehr Debuginformationen 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:OSDv'''XXXXXX'''.hex:i avrdude -p m162 -c siprog -P /dev/ttyS0 -v -U eeprom:w:OSDv'''XXXXXX'''.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== {|border=0 |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== * LED2 fängt nicht an zu blinken nach dem flashen der ersten Datei - Fusebits wurden nicht richtig gesetzt oder nicht übernommen (Statt auf "write" auf "OK" geklickt?) * Die FW osd_service.hex zeigt den Zeichen des Max aif dem OSd an. Damit kann man vergleichen ob alle Chars auch richtig geflasht wurden. [[Bild:Epi service1.jpg||300px]] == 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: * Geschwindigkeit * Empfangsstärke * Serial Link OK * Kompassausrichtung * Variometer (Sinken/Steigen) * Altimeter (aktuelle Hoehe) * Richtung zur Home Position * Entfernung zur Home Position * Batteriespannung * Uptime * Flugzeit * Manual Control (Uebersteuern von PH/CH) * Anzahl der genutzten Satelliten * Coming Home / Position Hold aktiv 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=/C-OSD/#_C-OSD_ http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FC-OSD%2F#_C-OSD_]
Zurück zur Seite
Epi-OSD
.
Navigationsmenü
Meine Werkzeuge
Anmelden
Namensräume
Seite
Diskussion
Varianten
Ansichten
Lesen
Quelltext anzeigen
Versionsgeschichte
Mehr
Suche
Navigation
Hauptseite
Shop
Bestellseite
Lizenz
Technik
EPI-OSD
EPI-Strom
EPI-USB-Prog
Epilepsy
EPI-Tester
Software
Firmware
Partnershops
NG Hobbies CA
FlashRC FR
Elektro Modely CZ
AltiGator BE
Wiki
Aktuelle Ereignisse
Letzte Änderungen
Zufällige Seite
Werkzeuge
Links auf diese Seite
Änderungen an verlinkten Seiten
Spezialseiten
Seiteninformationen