Zwei oXs Arduinos am SPort

Status
Nicht offen für weitere Antworten.
#1
Hi,

habe ein Problem mit zwei gleichen IDs für verschiedene Sensoren an zwei Arduinos, welche am SPort parallel angeschlossen sind.

In Helles Anleitung steht was von alten und neuen IDs 2-Byte und 1Byte sowie physikalischen ID Bereiche.

Id.png

.. und in der oXs_config_description steht,
oXs_config_description.png

dass man die IDs in der oXs_config_advanced ändern kann.

oXs_config_advanced.png

Jetzt ist meine Frage wie ändere ich was ?
Was macht hier welchen Sinn?
Welche System steckt hier dahinter, welche Reihenfolge muß eingehalten werden?
Kann mir da jemand einen Tipp geben oder es mir erklären dass ich es auch verstehe ?
Danke
Gruß
Robert
 

Knuspel

Erfahrener Benutzer
#2
SPORT ist ein Bus, auf dem IDs von einem Master (dem RX) gepollt werden und der zugehörige Slave antwortet. Sprich, dein RX "ruft" die ID 0xA1, dann hat der Sensor mir dieser ID einen kurzen Moment Zeit, seine Daten zu senden. In dieser Zeit wartet der RX auf die Antwort und liest sie ein. Wenn niemand die 0xA1 hat kommt keine Antwort. Wenn zwei Teilnehmer diese ID haben kommt es zum Konflikt.

Interessanterweise scheint die ID nur zum Pollen wichtig zu sein. Welche Daten im Paket liegen wird noch über einen weiteren Identifier spezifiziert, um genau zu sein von einem Wertebereich. Wenn du zB mal bei Inav in der Funke schaust, welche Sensoren du hast und welche ID dieser haben wird immer die ID 28 auftauchen. Deine Funke weiss aber um welche Daten es sich handelt, da sie den Wertebereich kennt. 0400 - 041F sind Daten von einem Temperatursensor usw.

Nun zu deiner Frage: Du kannst deinem Sensor irgendeine ID geben, die noch nicht von einem anderen Sensor verwendet wird. Schau in deinem Telemetriebildschirm, welche IDs verwendet werden.
 
#3
Danke für die Erklärung.
Wo Inav zu suchen ist erschliesst sich mir nicht, sorry dazu weiß ich zuwenig bescheid.
Die ID 28 hab ich vergeblich gesucht
Den Wertebereich hab ich gefunden, nur ein ändern des selbigen von z.B 400 --> 401 hat nichts gebracht oder ich hab was nicht ganz richtig gemacht / verstanden.
id_.jpg

Temp.jpg
RPM.jpg
 

Knuspel

Erfahrener Benutzer
#4
Hi,

du musst nicht den Wertebereich ändern, sondern die ID deines Sensors in openXSensor. Jede ID darf nur einmal vorkommen.

Bzgl. iNav: Angenommen du hättest eine FC mit iNav, dann würden alle Werte, die von dieser geschickt werden in deiner Funke die ID28 haben. Sprich, die FC gibt sich als Sensor mit der ID28 aus und sendet verschiedene Daten in unterschiedlichen Wertebereichen. Deine Funke kann die Daten anhand der Wertebreiche einsortieren. Wenn du kein iNav hast, auch gut ;-)
 

destiny24

Neuer Benutzer
#5
Hi,
ist es nicht so, dass die ID 28 für das LUA Script der S-Empfänger reserviert ist?
Ich hab da auch Probleme mit der Zaggometry und den neuen Empfängern. Die alten X6 und X8 Empfänger klappen problemlos. Welchen Empfänger nutzt du denn?
 
#6
Hi,

du musst nicht den Wertebereich ändern, sondern die ID deines Sensors in openXSensor. Jede ID darf nur einmal vorkommen.

Bzgl. iNav: Angenommen du hättest eine FC mit iNav, dann würden alle Werte, die von dieser geschickt werden in deiner Funke die ID28 haben. Sprich, die FC gibt sich als Sensor mit der ID28 aus und sendet verschiedene Daten in unterschiedlichen Wertebereichen. Deine Funke kann die Daten anhand der Wertebreiche einsortieren. Wenn du kein iNav hast, auch gut ;-)
Also doch im oXs und nicht an der Funke.
Dass die ID nur einmal vorkommen darf widerspricht sich meiner Meinung nach, weil
5 FVAS die ID 3 hat und 7 Curr ID 3 ebenfalls !!
Nur bei RMP und Temp kommt es zu einem Problem, obwohl der Wertebereich ein anderer ist.

ICh verwende keinen FC und hab einfach nur an einem X4R den SPort mit zwei oXs Ardunios parallel belegt.
Meine Frage war, an welchem Rad muß ich drehen damit kein Konflikt entsteht.
Werde im Sketch nach den Parametern absuchen.
Danke erstmal
 
#7
Unter oXs die IDs im oXs_config_advanced.h bei einem Arduino, die Einträge geändert und geflasht.

// ***** 1.2 - SPORT_SENSOR_ID used
//#define DATA_ID_RPM 0xE4
#define DATA_ID_RPM 0xE9

Nun gibt es keinen Konflikt mehr zwischen Temp und RPM
Die ID 5 ( Temp1 ) wird nun mit der ID10 erkannt :)

SensorIDs.png

Danke für die schnellen Antworten
 

Knuspel

Erfahrener Benutzer
#8
In der Funke ändern bringt nichts, die "liest" nur die Daten wie sie auf dem Bus liegen. Der oXs muss so umgestellt werden, dass die Daten bei einer anderen ID gesendet werden.

Jetzt klappts ja :)
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten