VarioGPS Sensor von NightFlyer

Nicht vergessen, den Vario-Smoothing-Faktor per JETIBOX auf >90% zu stellen. Meine Vorschlag ist: 95-97%.
So, wollte meinen VarioGPS Sensor auf den neuesten Stand bezüglich Vario updaten, klappt leider mit meinen beschränkten IDE Kenntnissen nicht.
Ich bekomme immer folgende Fehlermeldung:
Dateiname TinyGPS++.cpp ist ungültig: ignoriert
Dateiname TinyGPS++.h ist ungültig: ignoriert
"JetiExProtocol.cpp" enthält unbekannte Zeichen. Wenn der Code mit einer älteren Version von Arduino erstellt wurde, sollten Sie eventuell über Werkzeuge -> Kodierung korrigieren & neu laden den Sketch auf UTF-8-Kodierung aktualisieren. Wenn nicht, sollten Sie die ungültigen Zeichen manuell entfernen, um diese Warnung zu deaktivieren.
"JetiExProtocol.h" enthält unbekannte Zeichen. Wenn der Code mit einer älteren Version von Arduino erstellt wurde, sollten Sie eventuell über Werkzeuge -> Kodierung korrigieren & neu laden den Sketch auf UTF-8-Kodierung aktualisieren. Wenn nicht, sollten Sie die ungültigen Zeichen
manuell entferenen, um diese Warnung zu deaktiviern.
Kann mir ein Experte in Sachen IDE weiterhelfen?
Am einfachsten für mich wäre eine hex Datei für 3,3V/8MHz Beschaltung.
 

VOBO

User
Die Hex-Dateien sind doch im Download dabei.
Ansonsten: Hast du deine Bibliotheken nicht aktualisiert?
Gruß Volker
 
Die Hex-Dateien sind doch im Download dabei.
Ansonsten: Hast du deine Bibliotheken nicht aktualisiert?
Gruß Volker
Hallo Volker,
danke für deinen Tip.
Bei meinen erhaltenen Hex Dateien steht immer noch 2.33 als Versionsbezeichnung.
Deshalb dachte ich das ist noch die alte Version, auf Github gibt es bereits die 2.36.
Werde es mal versuchen.
Grüsse Jürgen
 
Dateiname TinyGPS++.cpp ist ungültig: ignoriert
Dateiname TinyGPS++.h ist ungültig: ignoriert
Diese Dateien sind von mir gar nicht modifiziert sondern nur in den Datei VarioGPS_Libraries.zip neu verpackt worden.

"JetiExProtocol.cpp" enthält unbekannte Zeichen. Wenn der Code mit einer älteren Version von Arduino erstellt wurde, sollten Sie eventuell über Werkzeuge -> Kodierung korrigieren & neu laden den Sketch auf UTF-8-Kodierung aktualisieren. Wenn nicht, sollten Sie die ungültigen Zeichen manuell entfernen, um diese Warnung zu deaktivieren.
"JetiExProtocol.h" enthält unbekannte Zeichen.
Das sind exakt die Dateien in der die neuen benötigten Änderungen für die Priorisierung der ExSensor Schnittstelle gemacht wurden. Da ich nur unter Linux arbeite, kann es sein, dass die Zeileende-Kodierung geändert ist, was aber nichts ausmachen sollte.

Am einfachsten für mich wäre eine hex Datei für 3,3V/8MHz Beschaltung.
Die große Kombination aus HW-Varianten und #define-Varianten in der Settings.h macht es nicht sinnvoll HEX-Dateien einzuchecken.

Habe es eben auf einem absolut cleanen Win10-PC ausprobiert. Arduino IDE 1.8.13 installiert, Projekt als ZIP gedownloaded, alles entpackt und gebaut. Der Build lief sofort, ohne jegliche Anpassung und Fehlermeldung.

Versuch mal ein Update der Arduino IDE. Bei den Libs muss man natürlich etwas aufpassen, dass man die in den korrekten Ordner entpackt.
Ziel muss es sein, das Projekt selber zu bauen.
Wenn alle Stricke reissen und du es unbedingt möchtest, schick mir ne PN mit deiner gewünschten settings.h und ich bau und schick dir ne HEX-Datei.
Gruß Rainer
 
Hallo Volker,
danke für deinen Tip.
Bei meinen erhaltenen Hex Dateien steht immer noch 2.33 als Versionsbezeichnung.
Deshalb dachte ich das ist noch die alte Version, auf Github gibt es bereits die 2.36.
Werde es mal versuchen.
Grüsse Jürgen
Die unter GitHub enthaltenen Hex Dateien sind nicht aktuell !!! und entsprechen nicht der aktuellen 2.3.6 Version.
 

VOBO

User
Danke für die Info.
Ich bin jetzt nach meinem blödsinnigen Fehler wieder soweit das ich testen kann.
Aktuell sieht es bei mir so aus, daß ich die Höhe nicht aktualisiert bekomme (permanent 0,0m!).
Alle anderen Werte scheinen ok, plausibel (habe noch nicht alles verdrahtet).
Hast du den Höhenwert selbst mal gesehen?

Noch was: Wäre es nicht besser für deine Variante die geänderten Libs umzubenennen?
Habe nämlich jetzt das Problem das meine vorher funktionstüchtige Originalversion von Nightflyer nicht mehr läuft.

Gruß Volker
 
Hi Rainer,

große klasse! Find ich super, dass es eine Optimierung des Varios gibt :-).

Bin leider auch nicht der große Arduino Experte und hab daher ein paar Fragen:
  • Muss ich zur Priorisierung der Sensor Werte eine Konfiguration vornehmen? Falls ja, wo erfolgt diese?
  • Funktioniert die Priorisierung nur wenn ich die EX-Software aufspiele? Diese ist ja nach meiner Info nicht GPS-kompatibel...
  • Kann ich Werte auch komplett ausbedaten, so dass diese nicht mehr übermittelt werden (z.B. Luftdruck, Temperatur, HDOP etc. brauch ich eigentlich nicht als Sensorwert)

Zum Kompilieren habe ich auch noch ein paar Verständnisfragen:
  • wonach richtet sich der der v_ref Spannungswert? Nach meiner Arduino Version (verwende sowohl 3,3V als auch 5V Varianten)?
  • kann ich die GPS Funktion in der Settings-Datei immer aktiviert lassen auch wenn ich bei manchen Varios kein GPS angeschlossen habe (andere Sensoren habe ich persönlich nicht angeschlossen)?
  • wo kann ich definieren ob ich die 8Mhz oder 16Mhz Arduino Version verwende? Bei den HEX files gab es hier immer unterschiedliche Varianten.

Sorry für die vielen Fragen. Ich hoffe, dass ich mit diesen Infos meine Hex Files erstellen kann.

Sollte allerdings jemand zufälligerweise schon jemand ein HEX File für 8Mhz und 16Mhz Arduinos mit normaler Software (kein Ex-Bus) erstellt haben, wäre es nett wenn er es hier im Thread mit einstellen kann.


Danke und Grüße
Stephan
 
Danke für die Info.
Ich bin jetzt nach meinem blödsinnigen Fehler wieder soweit das ich testen kann.
Aktuell sieht es bei mir so aus, daß ich die Höhe nicht aktualisiert bekomme (permanent 0,0m!).
Alle anderen Werte scheinen ok, plausibel (habe noch nicht alles verdrahtet).
Hast du den Höhenwert selbst mal gesehen?

Noch was: Wäre es nicht besser für deine Variante die geänderten Libs umzubenennen?
Habe nämlich jetzt das Problem das meine vorher funktionstüchtige Originalversion von Nightflyer nicht mehr läuft.

Gruß Volker
Welcher Höhenwert fehlt? Relative Höhe oder absolute ? Welche #defines waren drin? Bei den Höhenwerten kann es sein, wird je nach Kombination von vorhandenem Sensor der eine oder andere Sensor benutzt.
Bei den Libs habe ich deshalb die MS5611 nach VarionMS5611 umbenannt, da diese nicht kompatibel sein.
Die JetiExSensor ist eigentlich rückwärtskompatibel. Das Problem das vermutlich mit der originalen 2.3.3 auftritt, ist dass diese Version den zusätzlichen Speicherbedarf der neuen JetiExSensor nicht ergibt.
Du musst um die alte Version zum Laufen zu kriegen, nur deren Library.zip Datei nochmals entpacken, dass ist die neue Version wieder weg.
 
Hi Rainer,

große klasse! Find ich super, dass es eine Optimierung des Varios gibt :-).

Bin leider auch nicht der große Arduino Experte und hab daher ein paar Fragen:
  • Muss ich zur Priorisierung der Sensor Werte eine Konfiguration vornehmen? Falls ja, wo erfolgt diese?
  • Funktioniert die Priorisierung nur wenn ich die EX-Software aufspiele? Diese ist ja nach meiner Info nicht GPS-kompatibel...
  • Kann ich Werte auch komplett ausbedaten, so dass diese nicht mehr übermittelt werden (z.B. Luftdruck, Temperatur, HDOP etc. brauch ich eigentlich nicht als Sensorwert)

Zum Kompilieren habe ich auch noch ein paar Verständnisfragen:
  • wonach richtet sich der der v_ref Spannungswert? Nach meiner Arduino Version (verwende sowohl 3,3V als auch 5V Varianten)?
  • kann ich die GPS Funktion in der Settings-Datei immer aktiviert lassen auch wenn ich bei manchen Varios kein GPS angeschlossen habe (andere Sensoren habe ich persönlich nicht angeschlossen)?
  • wo kann ich definieren ob ich die 8Mhz oder 16Mhz Arduino Version verwende? Bei den HEX files gab es hier immer unterschiedliche Varianten.

Sorry für die vielen Fragen. Ich hoffe, dass ich mit diesen Infos meine Hex Files erstellen kann.

Sollte allerdings jemand zufälligerweise schon jemand ein HEX File für 8Mhz und 16Mhz Arduinos mit normaler Software (kein Ex-Bus) erstellt haben, wäre es nett wenn er es hier im Thread mit einstellen kann.


Danke und Grüße
Stephan
Die Priorisierung die aktuell benutzt wird, kann nur im Code (SetSensorValue(,, prio)) modifiziert werden. Aktuell ist der Vario-Wert hoch priorisiert (kleiner Wert = hohe Prio), alle anderen weniger.

Die Priorisierung funktioniert nur mit ExSensor nicht mit ExBus.
In der Settings.h sollten nur die notwendigsten #define's eingestellt sein, damit der Speicher nicht ausgeht.

Der #define V_REF wird immer bei der Messung von analogen Spannungen benutzt, da diese ja immer relativ zur Referenzspannung gemessen wird (SUPPORT_MPXV7002_MPXV5004 SUPPORT_MAIN_DRIVE SUPPORT_RX_VOLTAGE).

Das Problem mit den Hex-Files ist, dass diese eben, um möglichst alles abzudecken, alles Features / #defines angestellt haben, was aber leider zur Speicherüberläufen führt. Der Originale-Sketch von Nightflyer ist extrem nah an der Obergrenze des verfügbaren Speichers (Heap). Deshalb läuft vermutlich auch der Originale-Sketch mit mit der neuen JetiExSensor nicht, es sei denn, man deaktiviert eben, GPS und/oder Bosch-Sensor und/oder AirSpeed.
Sorry ich kann auch nicht alles Kombinationen testen.
Was mit der 2.3.6 bei mir auf mehreren Varios problemlos funktioniert ist :
#define SUPPORT_MS5611
#define SUPPORT_GPS
#define SUPPORT_RX_VOLTAGE
#define SUPPORT_JETIBOX_MENU
auf einem Pro Mini mit 16MHz.

Gruß Rainer
 
Hi Rainer,

danke für die Erklärung - das macht Sinn.
Ich habe gerade mal die Libraries importiert und die Setting.h (#define SUPPORT_MS5611, #define SUPPORT_GPS, #define SUPPORT_JETIBOX_MENU )
als auch default.h (Smoothing Faktor 0,95, Deadzone 4) angepasst.

Nun wollte ich eine Hex-Datei sowohl für den 8Mhz als auch 16Mhz Mini Pro erstellen:
Ich bin hierbei wie folgt vorgegangen: Sketch --> kompilierte Binärdatei exportieren
Hier erhalte ich nun allerdings zwei Hex-Datei. Weiß jemand worin der Unterschied der beiden Hex-Dateien besteht?

Merci Stephan
 
Zuletzt bearbeitet:

VOBO

User
Welcher Höhenwert fehlt? Relative Höhe oder absolute ? Welche #defines waren drin? Bei den Höhenwerten kann es sein, wird je nach Kombination von vorhandenem Sensor der eine oder andere Sensor benutzt.
Bei den Libs habe ich deshalb die MS5611 nach VarionMS5611 umbenannt, da diese nicht kompatibel sein.
Die JetiExSensor ist eigentlich rückwärtskompatibel. Das Problem das vermutlich mit der originalen 2.3.3 auftritt, ist dass diese Version den zusätzlichen Speicherbedarf der neuen JetiExSensor nicht ergibt.
Du musst um die alte Version zum Laufen zu kriegen, nur deren Library.zip Datei nochmals entpacken, dass ist die neue Version wieder weg.
Also ich habe den MS5611 drin. Es fehlen beide Höhenwerte (ID_ALTREAL uns ID_ALTABS im Display (immer 0.0m).
Genauer, die IDs sind da (kann ich ja auswählen) aber es ergeben sich keine Änderungen wenn ich den Sensor anhebe oder senke. Kann da ein Fehler bei der Wertermittlung vorliegen?
Folgende Defines habe ich gemacht:

Defines.JPG

Gruß Volker
 
Also ich habe den MS5611 drin. Es fehlen beide Höhenwerte (ID_ALTREAL uns ID_ALTABS im Display (immer 0.0m).
das ist ein Bug bei der Umsetzung der aktuellen Werte in die Jeti-Telemetrie-Werte. Fehler ist immer mit dem MS5611-Support vorhanden.
Habe mich zu sehr auf die Variometer-Werte konzentriert und nicht bemerkt, dass die Altitudes komplett falsch waren ;-((
Habe den Fehler behoben und eine neue Version eingecheckt.
Es ist nur die VarioGPS_Sensor.ino geändert und in der settings.h wurden die "default" -#defines etwas reduziert.
Musst leider nochmals bauen.
Gruß Rainer
 
Habe gerade neue Version eingecheckt. War heute fliegen und habe gemerkt, dass nach 15min die relative Höhe "genullt" wird. Habe Fehler in der VarioMS5611-Lib schon gefunden: Counter-Überlauf.
Es reicht die Library VarioMS5611 auf die Version V0.1.2 zu bringen.
So ist das eben mit neuer Software ;-(
Gruß
Rainer
 

VOBO

User
Na ja, bei mir sind da noch ganz andere Effekte.
Die Höhe Werte sind jetzt da.
Die absolute Höhe wird mit - 88m angezeigt, daß sollte eher +88m sein?
Nach dem Einschalten sah es erst mal gut aus, alle relevanten Werte waren vorhanden.
Nach unterschiedlich langen Zeiten (das können mal 30s oder auch 2m sein) fangen dann einzelne Werte oder auch alle Werte zu blinken an. In diesem Zustand werden die Werte auch nicht mehr aktualisiert.
Manchmal hört das Blinken dann von selbst wieder auf und die Werte werden wieder aktualisiert.
Meistens hilft nur ein erneutes Einschalten des Empfängers (aber auch nicht immer).
Einmal habe ich bei der Sensor Aktualisierung im Sender gesehen, daß die ID meines Temperaturwertes für lange Zeit als einziger Wert erkannt wurde und die weiteren Werte lange auf sich warten ließen.

Manchmal sprangen auch die beiden Höhenwerte plötzlich auf +9443m, das dürfte wohl dein Überlauf sein.
Also für mich ist das so erst mal nicht zu gebrauchen.
Gruß Volker
 
Zuletzt bearbeitet:
Hallo Rainer und Volker,

ich habe nun auch mal ein GPS Vario geupdatet und wollte ne kurze Rückmeldung nach den ersten Tests geben.

Am Anfang konnte ich keine Fehler bei meinen "Trockentests" feststellen..
Beim 3. Versuch hat dann der Höhenwert nach ca.5 Minuten ebenfalls kurz geblinkt. Dies hat sich nach ein paar Sekunden aber wieder gegeben (wäre jetzt für mich daher erstmal kein Problem). Zuvor waren die Werte auch nach 15 Minuten stabil.
Die Absolute Höhe stimmt bei mir aber inkl. Vorzeichen.

Mehr Probleme habe ich allerdings mit den GPS Daten (obwohl du hier ja anscheinend nichts angepasst hast).
Für einige GPS Informationen (Strecke, Anzahl Satelliten, Kurs, Azimut) werden keine Werte angezeigt obwohl andere GPS Informationen (Geschwindigkeit, Koordinaten) richtig dargestellt werden.

Nur zur Info:
Vor dem Kompilieren hatte ich alle GPS-Vario Bibliotheken gelöscht und neu aufgespielt. Hatte auch an keiner Datei etwas geändert.
 
Zuletzt bearbeitet:
Kann zu einigen Punkten was sagen:
Um den Flaschenhals der ExSensor zu beherschen, habe ich einige (für mich) unwichtige GPS Daten ausgeblendet.
Wenn ihr in der settings.h das
#define SUPPORT_GPS_EXTENDED
setzt, dann sind folgende GPS Daten wieder da, aber mit dem Nachteil, dass diese eben auch übertragen werden und Bandbreite benötigen.
{ ID_TRIP, "Trip", "km", JetiSensor::TYPE_22b, 2 },
{ ID_AZIMUTH, "Azimuth", "\xB0", JetiSensor::TYPE_14b, 0 },
{ ID_COURSE, "Course", "\xB0", JetiSensor::TYPE_14b, 0 },
{ ID_SATS, "Satellites", " ", JetiSensor::TYPE_6b, 0 },
{ ID_HDOP, "HDOP", " ", JetiSensor::TYPE_14b, 2 },

Mein Ziel ist es eben, das Variometer zu optimieren.
Das mit dem Blinken habe ich schon weiter oben erwähnt. Da mit der neuen Version manche Daten seltener übertragen werden, bemerkt dies der Sender und er lässt die Werte blinken.

Ihr könnt in der VarioGPS_Sensor.ino nach den Aufrufen jetiEx.SetSensorValue(ID, WERT, Prio) schauen.
Die Prio, die bei jeder ID unterschiedlich sein kann, steuert die Häufigkeit der Übertragung an den Empfänger:
Prio = 1: bedeutet, dieser Wert wird mit jedem Frame übertragen (z.B. Vario-Wert)
Prio = 15: maximaler Wert, bedeutet, dass der Wert nur jeden 15.t Frame übertragen wird, als niedrigste Prio (z.B. für Anzahl der Satelliten).
Natürlich sind alle Prio-Werte zwischen 1 und 15 erlaubt. Hier kann es natürlich unterschiedliche Bedürfnisse geben.
Hier könnte ihr im Code die ID auch umpriorisieren, wie ihr das benötigt.

In der ursprünglichen Version, wurden alle ID gleichberechtigt übertragen. Eben auch Dinge wie Luftdruck, Temperatur, Kapazität, ... wurden gleichberechtigt mit dem Vario-Wert übertragen.

Man kann es im Jeti-Log auf dem Sender sehen, dass es wie gewünscht funktioniert.
Bei den Werte wie eingecheckt, habe im Testzeitraum von 55s folgende Anzahl auf dem Sender detektiert:
Screenshot from 2021-02-23 21-56-07.png


Da ich MS5611 und GPS immer nur auf ProMini16MHz verwende, kann ich nicht sagen, ob das bei einem 8MHz an die Grenzen stößt.
Gruß Rainer
 
Mehr Probleme habe ich allerdings mit den GPS Daten (obwohl du hier ja anscheinend nichts angepasst hast).
Für einige GPS Informationen (Strecke, Anzahl Satelliten, Kurs, Azimut) werden keine Werte angezeigt obwohl andere GPS Informationen (Geschwindigkeit, Koordinaten) richtig dargestellt werden.
In der settings.h einfach
#define SUPPORT_GPS_EXTENDED
definieren, dann sind alle GPS Werte wieder da ;-)
 
Hi Rainer,

danke für die Infos und Mühen!

Ehrlich gesagt verwende ich die nicht angezeigten GPS Werte zum Großteil gar nicht. Ich hatte diese nur zum Testen aktiviert, um zu sehen ob alles funktioniert.

Ich finde es gut, wenn nicht benötigte Werte auch ausgeblendet werden. Daher bin ich ja auch interessiert, wie man Werte ausblendet.
Kannst Du mir noch verraten, was genau ich anpassen muss um einen Wert einzublenden oder auszublenden (z.B. Strecke zusätzlich einblenden und Temperatur ausblenden)

Bei mir hapert es diesbezüglich noch mit dem Verständnis des Codes:

1.) Werte aktivieren:
Verstehe ich es richtig, dass ich in der "def SUPPORT_GPS" einfach die folgende Zeile ergänzen müsst um den Wert "Strecke" zusätzlich zu aktivieren?

if(gpsSettings.mode == GPS_disabled){
jetiEx.SetSensorActive( ID_GPSLAT, false, sensors );
jetiEx.SetSensorActive( ID_GPSLON, false, sensors );
jetiEx.SetSensorActive( ID_GPSSPEED, false, sensors );
jetiEx.SetSensorActive( ID_DIST, false, sensors );
jetiEx.SetSensorActive( ID_TRIP, false, sensors );

2.) Werte deaktivieren:
Im umgekehrten Fall, wenn ich z.B. Luftdruck und Temperatur nicht übertragen möchte, lösche ich die Zeile einfach mit "//" raus, oder?

#ifdef SUPPORT_GPS
if(gpsSettings.mode == GPS_basic || pressureSensor.type == unknown){
// jetiEx.SetSensorActive( ID_PRESSURE, false, sensors );
// jetiEx.SetSensorActive( ID_TEMPERATURE, false, sensors );
}


Deine Erklärung mit dem Blinken hatte ich schon verstanden. Allerdings hat bei mir der Vario Wert (also die Höhe geblinkt). Aber wie gesagt nur ganz kurz und daher wohl irrelevant.
 
Oben Unten