NAZA OSD für ca. 20$

Status
Nicht offen für weitere Antworten.

JR63

Erfahrener Benutzer
Hi,

ich habe mal ein ZIP File geschnürt mit einigen hex, char, config files und dem Upload Tool für das minNAZAOSD.

Ich denke die Benamung der Verzeichnisse und Dateien sollte genau genug beschreiben, welches File welchem Zwecke dient.

Der Frickler hatte das ja schon einmal angeregt, allerdings wollte ich das wegen der vielen möglichen Kombinationen eigentlich nicht so gerne. Ich habe aber nun, nachdem das Ganze ganz gut funktioniert und auch schon ein paar mal nachgebaut wurde, doch einen Subset der Möglichkeiten ausgewählt. Es könnte nun für den Einen oder Anderen ganz hilfreich sein.

Anhang anzeigen minNAZAOSD_hex_files.zip

Tschö
JR
 

Pardini

Erfahrener Benutzer
Na Klasse, jetzt habe ich nach 3 Wochen warten auf die Platinen übersehen, daß man zum flashen ein FTDI Dingens braucht!! Hatte bislang nur mit kompletten, also mit USB, Arduinos zu tun.
Werde ich eben erst mal Spannungsteiler löten. Adererseits habe ich noch einen UNO mit gestecktem 328er. Müßte man doch eigentlich bei gezogenem Chip die nötigen Signale aus der Fassung holen können. Ich will flashen!! und bist Du nicht willig, mißbrauche ich dich gewaltig.
Apropos Spannungsteiler. Da ich kein RSSI im Phantom finde und vom U/I Sensor für die Spannung bei LiPo3S ca. 0.8V anliegen (müßte doch brauchbar sein?) würde ich gerne noch den letzten Spannungsteiler für den Strom weglassen. Habe den Sensor der auf Seite 1 empfolen wird:
http://www.goodluckbuy.com/crius-v-i-sensor-voltage-and-current-sensor-50v-90a-compatible-with-attopilot.html
Kann man da das Teilerverhältnis umlöten?
....sehe gerade, der Chip ist wohl ein INA-169....Datenblatt kramen und selber suchen...
Wo muss SumSig noch mal dran? Bitte mal mit ins Wiki aufnehmen. Ach und wenn Du schon mal dabei bist, ändere doch bei der Umlötanleitung der OSD Platine statt Kondensator entfernen bitte nach "Diode". (rotes Rechteck) Dieser Fehler taucht immer wieder auf, schreibt einer vom anderen ab.

Ach ich freu mich schon so....

Pardini

PS.: sehe garade der Stromsensor in der 180A Versiion wäre gerade richtig gewesen.
 
Zuletzt bearbeitet:

JR63

Erfahrener Benutzer
Na Klasse, jetzt habe ich nach 3 Wochen warten auf die Platinen übersehen, daß man zum flashen ein FTDI Dingens braucht!! Hatte bislang nur mit kompletten, also mit USB, Arduinos zu tun.
Werde ich eben erst mal Spannungsteiler löten. Adererseits habe ich noch einen UNO mit gestecktem 328er. Müßte man doch eigentlich bei gezogenem Chip die nötigen Signale aus der Fassung holen können. Ich will flashen!! und bist Du nicht willig, mißbrauche ich dich gewaltig.
Apropos Spannungsteiler. Da ich kein RSSI im Phantom finde und vom U/I Sensor für die Spannung bei LiPo3S ca. 0.8V anliegen (müßte doch brauchbar sein?) würde ich gerne noch den letzten Spannungsteiler für den Strom weglassen. Habe den Sensor der auf Seite 1 empfolen wird:
http://www.goodluckbuy.com/crius-v-...sensor-50v-90a-compatible-with-attopilot.html
Kann man da das Teilerverhältnis umlöten?
....sehe gerade, der Chip ist wohl ein INA-169....Datenblatt kramen und selber suchen...
Wo muss SumSig noch mal dran? Bitte mal mit ins Wiki aufnehmen. Ach und wenn Du schon mal dabei bist, ändere doch bei der Umlötanleitung der OSD Platine statt Kondensator entfernen bitte nach "Diode". (rotes Rechteck) Dieser Fehler taucht immer wieder auf, schreibt einer vom anderen ab.

Ach ich freu mich schon so....

Pardini

PS.: sehe garade der Stromsensor in der 180A Versiion wäre gerade richtig gewesen.

SumSig sollte an Pin 12 (im Diagramm ScreenSwitch), kann per Code Änderung aber auch an Pin 11 (wenn #if 1 im folgenden Code).

Aber für SumSig das #define für USE_SUM_SIGNAL einkommentieren:

Code:
[TABLE]
[TR]
[TD="class: source"][COLOR=#880000]// uncomment to use sum-signal instead of single channels[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define USE_SUM_SIGNAL[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]// set your channel layout[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] SUM_CH_THROTTLE                 [/COLOR][COLOR=#006666]3[/COLOR][COLOR=#000000]                                       [/COLOR][COLOR=#880000]// throttle channel[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] SUM_CH_SCREENSWITCH             [/COLOR][COLOR=#006666]8[/COLOR][COLOR=#000000]                                       [/COLOR][COLOR=#880000]// screenswitch channel[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]// choose your set for sum-signal[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#if 0[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] PWM_PIN_SUM                     [/COLOR][COLOR=#006666]7[/COLOR][COLOR=#000000]                                       [/COLOR][COLOR=#880000]// use pin 11 = PD7 = PCINT23[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] PIN_READ_SUM                    [/COLOR][COLOR=#666600]([/COLOR][COLOR=#000000]PIND [/COLOR][COLOR=#666600]&[/COLOR][COLOR=#000000] [/COLOR][COLOR=#006666]0b10000000[/COLOR][COLOR=#666600])[/COLOR][COLOR=#000000]                     [/COLOR][COLOR=#880000]// faster than digitalRead[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] CALL_CHECK_SUM                  [/COLOR][COLOR=#666600]([/COLOR][COLOR=#000000]port [/COLOR][COLOR=#666600]==[/COLOR][COLOR=#000000] [/COLOR][COLOR=#006666]2[/COLOR][COLOR=#000000] [/COLOR][COLOR=#666600]&&[/COLOR][COLOR=#000000] mask [/COLOR][COLOR=#666600]&[/COLOR][COLOR=#000000] [/COLOR][COLOR=#006666]0b10000000[/COLOR][COLOR=#666600])[/COLOR][COLOR=#000000]        [/COLOR][COLOR=#880000]// call check macro[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#else[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] PWM_PIN_SUM                     [/COLOR][COLOR=#006666]8[/COLOR][COLOR=#000000]                                       [/COLOR][COLOR=#880000]// use pin 12 = PB0 = PCINT0[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] PIN_READ_SUM                    [/COLOR][COLOR=#666600]([/COLOR][COLOR=#000000]PINB [/COLOR][COLOR=#666600]&[/COLOR][COLOR=#000000] [/COLOR][COLOR=#006666]0b00000001[/COLOR][COLOR=#666600])[/COLOR][COLOR=#000000]                     [/COLOR][COLOR=#880000]// faster than digitalRead[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#define[/COLOR][COLOR=#000000] CALL_CHECK_SUM                  [/COLOR][COLOR=#666600]([/COLOR][COLOR=#000000]port [/COLOR][COLOR=#666600]==[/COLOR][COLOR=#000000] [/COLOR][COLOR=#006666]0[/COLOR][COLOR=#000000] [/COLOR][COLOR=#666600]&&[/COLOR][COLOR=#000000] mask [/COLOR][COLOR=#666600]&[/COLOR][COLOR=#000000] [/COLOR][COLOR=#006666]0b00000001[/COLOR][COLOR=#666600])[/COLOR][COLOR=#000000]        [/COLOR][COLOR=#880000]// call check macro[/COLOR][COLOR=#000000]
[/COLOR][/TD]
[/TR]
[TR]
[TD="class: source"][COLOR=#880000]#endif[/COLOR][/TD]
[/TR]
[/TABLE]

Danke für den Hinweis Condi -> Diode, jau ist eine SS14, werde ich morgen mal ändern.


Tschö
JR
 

Pardini

Erfahrener Benutzer
Danke, das wird helfen! Jetzt muss ich erst mal Fontupload und den ganzen Kram meistern.
Die nächsten Fragen kommen bestimmt.

Habe mich mal mit dem Sensorboard auseinander gesetzt und da die Sache schon mal open Source ist, möchte ich meine Erkenntnisse auch teilen.
Es ist nicht sonderlich sinnvoll ein Signal hoch zu verstärken, um es danach wieder zu teilen. Außerdem sagt man, man sollte eine Quelle nur mit dem 10 fachen des Quellwiderstandes belasten, um die Nichtlinearität vernachlässigen zu können. Hier wird im Stromzweig eine 73.2kOhm Quelle mit 14.7k belastet -> nicht gut. Deshalb habe ich mal ein paar Widedrstände ausgerechnet, mit denen die Verstärkung des Sensor Chips so eingestellt wird, daß ca. die gewünschten 1.1V im Messbereich herauskommen. Linear und nicht unnötig verstärkt.
Eben solches habe ich für den Spannungsbereich gemacht.
Dies gilt für das 50V/90A Board, welches 2 Posts weiter oben und im Post1 genannt wurde, ist sicher aber auch auf viele weitere Boards anwendbar.

hier ein Bildchen, welches ich von JR63 geborgt und geändert habe:

...Mist wie geht das mit Grafiken nun wieder? Man kann die doch auch irgendwie im Forum uppen? ....Habs doch noch geschafft.



Und wer keine fliegenden Widerstände haben möchte und keine Angst hat SMD Widerstände auf dem Sensorboard zu tauschen, kann dies natürlich auch tun.
Die Werte für die Messbereiche sind dann:

der 73.2kOhm Widerstand ist zu tauschen gegen: (Bildchen spare ich mir hier. Wer genügend Ahnung hat dies zu tun, findet sie auch so)
90A - 24.4kOhm
60A - 36.4kOhm
45A - 48.8kOhm

ab 4S Lipo ist dann noch der 1K Widerstand gegen einen 500Ohm zu tauschen.

Könnte man auch den TX Pin an der FTDI Leiste für das SumSig verwenden, oder ist das durch die Verwendung der Serial verboten?

Pardini

Edit: weder stimmen die Werte aus dem Datenblatt des Versärkers, noch läuft der Sensor linear. Eigentlich sollen bei 90A ja 3.3V aus dem Sensor kommen. In einem Messaufbau mit unverändertem Sensor hatte ich gerade 2.439V bei 28A, somit 84mV/A, also voll daneben. Bei 4A gibt der Sensor aber nur ca. 75mV/A aus. Also nicht einmal linear.

!!! Alle obigen und weiter unten folgenden Infos meinerseits sind auf Grundlage dessen ebenso falsch!!!!
 
Zuletzt bearbeitet:

Pardini

Erfahrener Benutzer
da mir mein Leben lieb ist, hier noch eine vereinfacht lötbare Version, um die Messbereiche am Sensor anzupassen.



R1: 90A = 36kOhm
60A = 75kOhm
45A = 150kOhm

R2 bei 1-3S nicht bestücken. Für 4-6S 1kOhm.

Am besten auf der Rückseite bestücken, da ist mehr Platz. Natürlich das ganze ordentlich isoliert aufbauen, sonst rauchts ordentlich.

Ausprobiert ist das bis jetzt alles noch nicht, da muß ich selbst erst einmal alles flashen und calibrieren. Rechnerisch sollte es aber stimmen.

Pardini

!!! siehe Edit im Post #234 !!!
 
Zuletzt bearbeitet:

Pardini

Erfahrener Benutzer
So. Ich muß jetzt mal zugeben, daß ich zu prasselig bin den Projektcode von der Google Seite runter zu laden.
Ich habe schon jedes File einzel mit "speichern unter" geladen, bekomme da aber nur html Files. Bislang war es immer so, daß Arduino Libs als Zip vorlagen. Finde ich aber hier irgendwie nicht. Da es schon andere nachgebaut haben, muß ich also von meiner eigenen Blödheit ausgehen. Somit sollte sich aber zum Glück schnell jemand finden, der sich auskennt;)
Die vorgefertigten .hex habe ich erfolgreich geflasht, da ich aber wegen SumSig ein paar Änderungen machen muß, muß ich selbst compilieren.
Aus dem ZIP aus Post#321 habe ich vom 005Setup Verzeichnis die hex Dateien Setup2,3 und 4 nacheinander hochgeladen. Ich bekomme aber in der letzten Bildschirmzeile immer nur "AMP PER VOLT 100000". Müßte da nicht VOLT_DIFF_RATIO, AMP_OFFSET oder AMP_PER_VOLT je nach Datei stehen?

Pardini

O.K. Google hat mir verraten, daß man einen Downloader braucht um SVN Projekte herunter zu laden. Somit hatt es jetzt auch funktioniert und ich konnte die Calib. Soft mit Sumsig erstellen.
 
Zuletzt bearbeitet:

JR63

Erfahrener Benutzer
So. Ich muß jetzt mal zugeben, daß ich zu prasselig bin den Projektcode von der Google Seite runter zu laden.
Ich habe schon jedes File einzel mit "speichern unter" geladen, bekomme da aber nur html Files. Bislang war es immer so, daß Arduino Libs als Zip vorlagen. Finde ich aber hier irgendwie nicht. Da es schon andere nachgebaut haben, muß ich also von meiner eigenen Blödheit ausgehen. Somit sollte sich aber zum Glück schnell jemand finden, der sich auskennt;)
Die vorgefertigten .hex habe ich erfolgreich geflasht, da ich aber wegen SumSig ein paar Änderungen machen muß, muß ich selbst compilieren.
Aus dem ZIP aus Post#321 habe ich vom 005Setup Verzeichnis die hex Dateien Setup2,3 und 4 nacheinander hochgeladen. Ich bekomme aber in der letzten Bildschirmzeile immer nur "AMP PER VOLT 100000". Müßte da nicht VOLT_DIFF_RATIO, AMP_OFFSET oder AMP_PER_VOLT je nach Datei stehen?

Pardini

O.K. Google hat mir verraten, daß man einen Downloader braucht um SVN Projekte herunter zu laden. Somit hatt es jetzt auch funktioniert und ich konnte die Calib. Soft mit Sumsig erstellen.

ja, man benötigt eine svn client:


[TABLE="class: tborder user-postbit-left-user, width: 100%, align: center"]
[TR]
[TD="class: alt2, bgcolor: #FFFFFF"]http://code.google.com/p/minnazaosd/source/checkout

svn client http://subversion.apache.org/packages.html

oder Tortoise svn http://tortoisesvn.net/
[/TD]
[/TR]
[/TABLE]


Die gezippten hex files checke ich morgen nochmal, Zeit ist heute etwas knapp.


Tschö
JR
 

JR63

Erfahrener Benutzer
Aus dem ZIP aus Post#321 habe ich vom 005Setup Verzeichnis die hex Dateien Setup2,3 und 4 nacheinander hochgeladen. Ich bekomme aber in der letzten Bildschirmzeile immer nur "AMP PER VOLT 100000". Müßte da nicht VOLT_DIFF_RATIO, AMP_OFFSET oder AMP_PER_VOLT je nach Datei stehen?
Ich habe das eben nochmal im Code gechecked:

Zum Zeitpunkt des Einschaltens des minNAZAOSD muss für diese 3 Calib Varianten am Pal Pin ein gültiges PWM Signal von ca. 1500 Mikrosekunden anstehen, also ein RC Signal mit Knüppel in Mittelstellung.

Dann wird, abhängig von der geladenen hex Datei, die richtge Variante ausgewählt.

Mit dem Knüppel kann man dann den Wert kalibrieren in 1er, 10er und 100er Stufen in beide Richtungen.

Tschö
JR
 

Pardini

Erfahrener Benutzer
Ah ja, das PWM Signal lag beim Einschalten nicht an. Sonst hätte es ja scheinbar funktioniert.
Jetzt muß ich in der Phantomfunke noch den Schalter für Kanal 8 bzw. Screenswitch nachrüsten. Aber es funktioniert wenigstens erst einmal und der Kanal wird korrekt aus dem SumSig heraus gezogen.

Bin gerade auch noch am checken warum die GPS Daten nicht kommen. Phantom, Signal am Stecker abgegriffen, Soft mit #define GPS_PROTOCOL_DJI compiliert. Soweit richtig?? oder doch wieder was falsch gemacht?

Pardini

Wieder neue Erkenntnis: beim Phantom mit Connection Kit muß der GPS-Abgriff nicht an der Naza gemacht werden, sondern dort wo es vom Kit zur GPS Disc geht. Scheinbar wird da zwischen noch etwas mit den Daten veranstaltet.
 
Zuletzt bearbeitet:

JR63

Erfahrener Benutzer
Ah ja, das PWM Signal lag beim Einschalten nicht an. Sonst hätte es ja scheinbar funktioniert.
Jetzt muß ich in der Phantomfunke noch den Schalter für Kanal 8 bzw. Screenswitch nachrüsten. Aber es funktioniert wenigstens erst einmal und der Kanal wird korrekt aus dem SumSig heraus gezogen.

Bin gerade auch noch am checken warum die GPS Daten nicht kommen. Phantom, Signal am Stecker abgegriffen, Soft mit #define GPS_PROTOCOL_DJI compiliert. Soweit richtig?? oder doch wieder was falsch gemacht?

Pardini

Wieder neue Erkenntnis: beim Phantom mit Connection Kit muß der GPS-Abgriff nicht an der Naza gemacht werden, sondern dort wo es vom Kit zur GPS Disc geht. Scheinbar wird da zwischen noch etwas mit den Daten veranstaltet.
Klappt es denn jetzt?

Auf jedenfall muss man auch warten, bis keine rote LED mehr blinkt (bei NAZA V1 V2 Lite, keine Ahnung wie das beim Phantom ist), da einige Kriterien erfüllt sein müssen, bis ich die Daten akzeptiere und anzeige:

Code:
    // 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
    if (osd_fix_type > 1 && osd_satellites_visible >= 5 && osd_alt_cnt < 50) {
      if (fabs(osd_alt_prev - osd_alt) > 0.5) {
        osd_alt_cnt = 0;
        osd_alt_prev = osd_alt;
      } else {
        if (++osd_alt_cnt >= 50) {
          osd_home_lat = osd_lat;      // take this osd_lat as osd_home_lat
          osd_home_lon = osd_lon;      // take this osd_lon as osd_home_lon
          osd_home_alt = osd_alt;      // take this stable osd_alt as osd_home_alt
      osd_got_home = 1;
        }
      }
    }
Tschö
JR
 

Pardini

Erfahrener Benutzer
Ja ich habe nun auch GPS Daten im OSD. Problem beim Phantom mit Zenmuse und Connection Kit ist, das der "GPS-Puck" erst mal auf die Erweiterungsplatine geht und von dort aus zur NAZA. Keine Ahnung was da an Daten geändert wird, jedenfalls ist dann am EXP-Port der Naza das Protokoll für unsere OSD unverständlich. Wenn man den Stecker der direkt vom Puck kommt anzapft, ist alles gut.



Kein Kommentar über die fliegenden Kabel. Das wird noch schön gemacht.

Pardini
 

schneipe

Erfahrener Benutzer
Mal eine Frage in den Raum geworfen........Würde denn jemand auch dies OSD für mich Fix und Fertig machen? Quasi für mich dann als Plug&Play?
 
@JR, ich hab da noch ne sehr schicke und einfache Sache zum Sensor Kalibrieren gefunden, evtl wäre das noch was für dich.

http://arduinotronics.blogspot.com/2013/04/this-weeks-projects-load-cells.html?m=1

Im Prinzip geben die die gemessenen A/D Werte aus und im Code trägst dann später nur im Sketch ein bei 1V waren es vom A/D 123 und bei 15V waren es 1021 und er rechnet dann passend um. Teste es gerade in meinem Schub-Messtand für Strom/Spannung und Schub zu Kalibrieren, funktioniert sehr gut so.
 

JR63

Erfahrener Benutzer
@JR, ich hab da noch ne sehr schicke und einfache Sache zum Sensor Kalibrieren gefunden, evtl wäre das noch was für dich.

http://arduinotronics.blogspot.com/2013/04/this-weeks-projects-load-cells.html?m=1

Im Prinzip geben die die gemessenen A/D Werte aus und im Code trägst dann später nur im Sketch ein bei 1V waren es vom A/D 123 und bei 15V waren es 1021 und er rechnet dann passend um. Teste es gerade in meinem Schub-Messtand für Strom/Spannung und Schub zu Kalibrieren, funktioniert sehr gut so.
Gute Idee, ist dann natürlich nur für Leute die selber den Code übersetzen können.

Tschö
JR
 

Pardini

Erfahrener Benutzer
für die Kalibrierung würde allerdings auch ich mir was komfortableres wünschen;) Bin da selbst noch am überlegen. So weit ich das gesehen habe sind das ja im EEPROM nur die drei Werte in der Gegend um $1016, jedenfalls kurz vor Ende.
Am liebesten eine Prozedur wie: wenn beim Start PIN TX (weil gut zu erreichen) Pegel z.B. LOW hat, dann Kalibrierscreen.
Zu mindest ist das kpl. umflashen der Firmware, nur um die drei Werte zu ändern, sehr umständlich.
Hab schon überlegt, ob ich es als workaround mittels ISP in den EEPROM schreibe. Oder das Configtool schreibt doch auch in den EEPROM? Evtl. dort eine Funktion dazu?

Pardini
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten