Openxsensor Troubleshooting
- MxK
-
Offline
- Junior Mitglied
-
- Beiträge: 25
- Dank erhalten: 1
Und das nächste Problem...:pinch:
Versuche gerade einen Sensor mit Vario, Flow-Sensor und RPM-Sensor auf zu bauen.
Vario funkioniert einwandfrei, ich bekomme leider weder den Flow-Sensor zum laufen, noch den RPM Sensor.
Kann die Telemetrie Einzelwerte (RPM, Flow, Vario) am Sender aufrufen,
Für die Flow Werte wird 0 angezeigt, für den RPM Wert 1000.
Info zum Flow Sensor:
Hab mit dem Durchflusssensor schon einen RCT Sensor gebau, klappt problemlos.
Beim OpenXSensor hab ich das Signal auf Pin 9 gelegt (Spannung auf VCC und GND).
Info zum RPM Sensor:
Hall Sensor hab ich das Signal auf Pin 8 gelegt (Spannung auf VCC und GND).
Hat jemand eine Idee?
Danke Euch!!!
Gruß
Max
Versuche gerade einen Sensor mit Vario, Flow-Sensor und RPM-Sensor auf zu bauen.
Vario funkioniert einwandfrei, ich bekomme leider weder den Flow-Sensor zum laufen, noch den RPM Sensor.
Kann die Telemetrie Einzelwerte (RPM, Flow, Vario) am Sender aufrufen,
Für die Flow Werte wird 0 angezeigt, für den RPM Wert 1000.
Info zum Flow Sensor:
Hab mit dem Durchflusssensor schon einen RCT Sensor gebau, klappt problemlos.
Beim OpenXSensor hab ich das Signal auf Pin 9 gelegt (Spannung auf VCC und GND).
Info zum RPM Sensor:
Hall Sensor hab ich das Signal auf Pin 8 gelegt (Spannung auf VCC und GND).
Hat jemand eine Idee?
Danke Euch!!!
Gruß
Max
von MxK
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- MxK
-
Offline
- Junior Mitglied
-
- Beiträge: 25
- Dank erhalten: 1
Sooooo, Problem gelöst!
- Flow Sensor: (Wieder) ein anderes Board genommen, schon geht's.
- RPM-Sensor: In der oXs_output_jeti war noch eine Zeile mit *fieldValue = 1000 drin (danke Ralf!!!), die entfernt werden musste,
außerdem sollte man auf die Polarität des Hall-Sensors bzw. Magneten achten...
Gruß
Max
- Flow Sensor: (Wieder) ein anderes Board genommen, schon geht's.
- RPM-Sensor: In der oXs_output_jeti war noch eine Zeile mit *fieldValue = 1000 drin (danke Ralf!!!), die entfernt werden musste,
außerdem sollte man auf die Polarität des Hall-Sensors bzw. Magneten achten...
Gruß
Max
von MxK
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- TheUnibody
-
Offline
- Junior Mitglied
-
- Beiträge: 34
- Dank erhalten: 2
Servus Jungs,
ich bräuchte mal Hilfestellung. Ich habe ein MS5611 jedoch wird mir die Temperatur ca. 30° zu hoch angezeigt.
Änderungen in der #define ALT_TEMP_COMPENSATION zeigen auch keine Auswirkungen oder ist das der falsche Wert?
Sonst läuft alles.
Gruss Heiko
ich bräuchte mal Hilfestellung. Ich habe ein MS5611 jedoch wird mir die Temperatur ca. 30° zu hoch angezeigt.
Änderungen in der #define ALT_TEMP_COMPENSATION zeigen auch keine Auswirkungen oder ist das der falsche Wert?
Sonst läuft alles.
Gruss Heiko
Mit freundlichen Grüßen
Heiko
JETI DS-16
Heiko
JETI DS-16
Last Edit:27 März 2020 11:09
von TheUnibody
Letzte Änderung: 27 März 2020 11:09 von TheUnibody.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FuniCapi
-
Offline
- Platinum Mitglied
-
- Beiträge: 1772
- Dank erhalten: 867
Mein Code um den MS5611 auszulesen:
Damit passt die Temperaturmessung. Jedoch habe ich festgestellt, dass der MS5611 sich deutlich über die Umgebungstemperatur aufwärmt wenn er nahe an einem Abwärme erzeugenden Bauteil platziert ist (Spannungsregler, Microprozessor usw.)
Gruss Lukas
Code:
#include <Wire.h>
byte MS5611Address = false;
int64_t MS5611C[7];
unsigned long MS5611TimeConversion; // us
void MS5611Transmit(int command) {
if (!MS5611Address) return;
Wire.beginTransmission(MS5611Address);
Wire.write(command);
Wire.endTransmission();
}
int64_t MS5611Receive(int command, int bytes) {
if (!MS5611Address) return;
MS5611Transmit(command);
Wire.requestFrom(MS5611Address, bytes);
int64_t response = 0;
for (int i = 0; i < bytes; i++) response = (response << 8) | Wire.read();
return response;
}
void MS5611Reset() {
MS5611Transmit(0x1e);
delayMicroseconds(3000);
}
void MS5611ConvertD1() { // pressure conversion
MS5611Transmit(0x48); // OSR=4096
MS5611TimeConversion = micros() + 9040L;
}
void MS5611ConvertD2() { // temperature conversion
MS5611Transmit(0x50); // OSR=256
MS5611TimeConversion = micros() + 600L;
}
int64_t MS5611ReadADC() {
while (long(MS5611TimeConversion - micros()) > 0); // wait for conversion to be done
return MS5611Receive(0x00, 3);
}
int64_t MS5611ReadCalibration(int index) {
return MS5611Receive(0xa0 + index * 2, 2);
}
void MS5611Init() {
Wire.begin(); // start communication with MS5611 as master
MS5611Address = 0x76;
Wire.beginTransmission(MS5611Address);
if (Wire.endTransmission() != 0) {
MS5611Address = 0x77;
Wire.beginTransmission(MS5611Address);
if (Wire.endTransmission() != 0) {
MS5611Address = false;
return;
}
}
MS5611Reset(); // reset MS5611
for (int i = 1; i <= 6; i++) MS5611C[i] = MS5611ReadCalibration(i); // read calibration coefficients
MS5611ConvertD1(); // start the pressure conversion
}
void MS5611GetD1() {
MS5611C[0] = MS5611ReadADC(); // read the converted pressure started last time
MS5611ConvertD2(); // start the temperature conversion to be ready to read next time
}
float MS5611GetD2() {
int64_t D2 = MS5611ReadADC(); // read the converted temperature started last time
MS5611ConvertD1(); // start the pressure conversion to be ready to read next time
int64_t dT = D2 - (MS5611C[5] << 8);
int64_t TEMP = ((dT * MS5611C[6]) >> 23);
int64_t OFF = (MS5611C[2] << 16) + ((MS5611C[4] * dT) >> 7);
int64_t SENS = (MS5611C[1] << 15) + ((MS5611C[3] * dT) >> 8);
if (TEMP < 0) {
OFF -= (5 * TEMP * TEMP) >> 1;
SENS -= (5 * TEMP * TEMP) >> 2;
//TEMP -= (dT * dT) >> 31;
}
//temperature = 0.01 * (TEMP + 29315); // Kelvin
return (((MS5611C[0] * SENS) >> 21) - OFF) >> 15; // Pa
}
Damit passt die Temperaturmessung. Jedoch habe ich festgestellt, dass der MS5611 sich deutlich über die Umgebungstemperatur aufwärmt wenn er nahe an einem Abwärme erzeugenden Bauteil platziert ist (Spannungsregler, Microprozessor usw.)
Gruss Lukas
von FuniCapi
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- TheUnibody
-
Offline
- Junior Mitglied
-
- Beiträge: 34
- Dank erhalten: 2
Servus,
mit der Temperatur hab ich jetzt hinbekommen, das ist auch jetzt das einzige was stabil läuft. Alles was mit dem Drucksensor zu tun hat, macht im Moment was es will. Da bräuchte ich noch einmal etwas Unterstützung. Es ist ein MS5611.
Im Bastelkeller ist es so das nach dem Einschalten Hoehe, Vario, Alt.max auf Null sind, nach ein paar Minuten schwankt alles hin und her trotz Null Bewegung.
Wenn ich den oSx an der frischen Luft anschalte, geht mal garnichts, es wird zum Start nicht mal die Werte genullt. Was kann das sein?
mit der Temperatur hab ich jetzt hinbekommen, das ist auch jetzt das einzige was stabil läuft. Alles was mit dem Drucksensor zu tun hat, macht im Moment was es will. Da bräuchte ich noch einmal etwas Unterstützung. Es ist ein MS5611.
Im Bastelkeller ist es so das nach dem Einschalten Hoehe, Vario, Alt.max auf Null sind, nach ein paar Minuten schwankt alles hin und her trotz Null Bewegung.
Wenn ich den oSx an der frischen Luft anschalte, geht mal garnichts, es wird zum Start nicht mal die Werte genullt. Was kann das sein?
Mit freundlichen Grüßen
Heiko
JETI DS-16
Heiko
JETI DS-16
von TheUnibody
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- uragano23
-
Offline
- Neues Mitglied
-
- Beiträge: 3
- Dank erhalten: 1
Hello i have done the openxsensor with an Arduino Pro Mini board 3.3V 8mhz. I need two temperatures for my DLE twin engine and CDI rpm readings. I noticed that my sensor even if configured as it should (it works with other protocols like Graupner or Frsky) with Jeti protocol it returns only 1 Temperature.
I'm missing something or it is a limit of openxsensor and Jeti protocol combination?
I made also an RCT Jeti Dual HighTemp Sensor that it is working but it is returning wrong readings as soon as i switch on the ignition. This problem is there only when i use a kill switch like Rcexl Kill switch v2 or the Tech-Aero IBEC HV. If i plug a battery Alone the problem seems not present. I tried also to put a ground wire from motor case to GND of ignition power lead but with no success.
For this thing i returned to openxsensor but i want to know if there is a way to ave more than one Temp readings or if a second board (sensor) is needed.
Thanks
Adrian
I'm missing something or it is a limit of openxsensor and Jeti protocol combination?
I made also an RCT Jeti Dual HighTemp Sensor that it is working but it is returning wrong readings as soon as i switch on the ignition. This problem is there only when i use a kill switch like Rcexl Kill switch v2 or the Tech-Aero IBEC HV. If i plug a battery Alone the problem seems not present. I tried also to put a ground wire from motor case to GND of ignition power lead but with no success.
For this thing i returned to openxsensor but i want to know if there is a way to ave more than one Temp readings or if a second board (sensor) is needed.
Thanks
Adrian
von uragano23
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 1.156 Sekunden