So, jetzt kommt die Anleitung zu dem Download von oben.
Also, jetzt die Warnungen vorweg:
1. Es ist nicht die offizielle Firmware, sondern basiert auf der Arbeit von Gabor hier:
http://code.google.com/p/minimosd-extra/
2. Die Codeveränderungen sind nur mit dem FrSky D4FR getestet. Laut Berichten soll bei der Nachfolgeversion, dem D4FR II Summensignal und PWM RSSI vertauscht sein. Das bitte vorher testen, im schlimmsten Fall springt einem der Copter sonst ins Gesicht. - Vollkommen OSD unabhängiger Tip. Andere PWM RSSI Signale können sicherlich auch, ggf. mit minimaler Software - Anpassung auch augewertet werden (s.u). Unter keinen Umständen dürfen mehr als 3,3V als PWM Signal anliegen, sonst kann der Eingang durchbrennen. Eine Anpassung ist in diesem Fall mit einem Spannungsteiler (Wiki) erforderlich.
3. Die Änderung ist eine "Hauruckaktion" daher wird der Parameter "Throttle" in der Gui für den RSSI Wert verwendet. D.h. "Throttle" anklicken und positionieren und in Wirklichkeit die Anzeigeposition des RSSI Wertes bestimmen.
4. Die Änderungen sind auf eigene Gefahr.
Compilieren des Codes:
=================
1. Arduino 1.0.1 starten
2. Unter Datei/Einstellungen den Ordner des Sketchbooks auswählen und speichern.
3. Arduino schliessen und mit ArduCAM_OSD.ino neu starten
4. Kompilieren und hochladen, fertig. (Arduino promini 5V, 16MHZ)
5. Jetzt die Gui starten (MyOSD_PWMRSSI\Config tool for 1.29\OSD_Config.exe). Es stehen 2 Zeichensätze zum Upload zur Verfügung.
5a.MyOSD_PWMRSSI\DotLineRSSI.mcm zeigt eine Punktlinie als Horizont.
5b.MyOSD_PWMRSSI\SolidLineRSSI.mcm zeigt den Horizont als C64-Linie, wie immer.
Zeichensatz auswählen und hochladen. Das "MBM" im Startbildschirm musste einfach sein. Mit diesem Programm (
http://www.maximintegrated.com/design/tools/applications/evkit-software/index.cfm?EVKit=558) kann man natürlich seinen eigenen Zeichensatz zusammenkochen.
Ggf nötige Anpassungen:
==================
Ein Unterschied von 5 oder 7% zwischen OSD und der LCD Anzeige (z.B in meinem Fall DHT-U) des FrSky Senders sind ok. Wenn grössere Abweichungen >10% (vielleicht Scherrer System?) auftreten, würde ich eine Codeänderung vornehmen.
Im Hauptprogramm steht in Zeile 176:
Code:
osd_throttle = constrain(pulseIn(RSSIPIN, HIGH,1000)*10/25,0,100);
Der Teiler 25 ist willkürlich, da mein D4FR einen Wert von 250 bei 100% geliefert hat. "Is klar", wenn zu hohe Prozentzahlen angezeigt werden, muss man den Teiler erhöhen - z.B 26 oder so.
Verbesserungsmöglichkeiten:
=====================
Die jetzige Abfrage mittels "pulseIn" (
http://arduino.cc/en/Reference/pulseIn) ist natürlich eher rudimentär und nie so genau oder zeiteffizient wie eine Interruptroutine. Nur leider überschreitet das meine Programmierfähigkeiten.
Einfügen in die aktuelle Gabor Version.
LG
Rob