MULTIMODULE UND PROTOKOLLE FÜR TARANIS - PLUS - HORUS usw....

Status
Nicht offen für weitere Antworten.

Norbert

Erfahrener Benutzer
Leider ist es nicht so einfach, das sich die hopping Tabelle von FrSky und vom MPM ub´nterscheidet. Hier die Antwort von Pascal:
"Sadly the ID is only one part of the equation. You also need to extract the freq hopping.
Unlike the ID, you would need to update slightly the code to inject the freq hopping.
If you are willing to proceed then you need to bind your MPM with the FrSky transmitter using the FrSky RX protocol. Once done, extract your eeprom using the link I provided. Open the file and read from 0xB2 and upward: FRSKY_RX_EEPROM => (1) format + (3) TX ID + (1) freq_tune + (47) channels. Pascal"
Es ist also möglich, man muss aber die Hoppingtabelle des MPM dem Sendermodul des FrSky Senders anpassen.
Da hätte ich auch früher daran denken können, das habe ich schon am Spektrumanalyser gesehen.
 

Elyot

Erfahrener Benutzer
Dann muss ich mir das mal im Detail anschauen.

Edit: Das scheint gar nicht so kompliziert zu sein.
 
Zuletzt bearbeitet:

Elyot

Erfahrener Benutzer
Sobald mein neues Equipment da ist, wird getestet.

Im Debug-Modus schmeißt das Modul die Hoppingtabelle beim binden direkt raus. Alternativ steht die auch mit im EEProm. Im TX-Modus wird die Hoppingtabelle über eine Funktion generiert. Die ist schnell abgewandelt, um eine statische Hoppingtabelle unterzuschieben.

Edit: Wenn das wirklich funktioniert, dann wäre ein weiteres Protokoll als Clone-Modus direkt in der Firmware denkbar. Beim Binden wird der RX-Mode genutzt, beim Senden alles wie gehabt. Kein Auslesen von EEproms nötig. Der Quellcode dafür ist ja quasi fast komplett vorhanden. Alle weiteren Funktionen des Multimoduls bleiben wie gehabt.
 

Norbert

Erfahrener Benutzer
Grundsätzlich ist es bei FrSky so:
  • - Es gibt bei einem Sender 47 Hoppingkanäle, die im Raster von 1,5 Mhz liegen, die sind fix und der ID zugeordnet
  • Es gibt 3 verschiedene Frequenzraster, um 0,5 Mhz verschoben, also wenn 3 FrSky Sender gleichzeitig arbeiten - kämmen die ineinander und keiner belegt eine Frequenz des anderen. Im worst Case haben alle 3 Sender die selben Frequenzen
  • jeder Sender berechnet beim starten eine Hoppingsequenz, die er dem Empfänger mitteilt, damit vermeidet man das verschiedene Sender die gleiche Hoppingreihenfolge haben und synchron laufen
  • die zeitliche Differenzierung - da zu unterschiedlichen Zeiten eingeschaltet wird laufen selbst bei identischem Frequenzraster und Hoppingtabelle die Übertragung nicht frequenzmäßig synchron
Man kann sicherlich eine statische Hoppingtabelle erzeugen, verschenkt einen Teil an Sicherheit. Solange nur ein veränderter Sender im Betrieb ist - kein Problem. Bei mehreren statischen Hoppingtabellen steigt selbstverständlich das Risiko.

Norbert

PS: Ich wäre begeistert, wenn Elyot sich näher damit befassen könnte, da er offenbar bereits Vorkenntnisse hat.
 

mastersurferde

Erfahrener Benutzer
Hi,
die Hoppingsequenz ist fix bei FrSky (pro Sendermodul) und maximal von einer SenderID abhängig.
Wenn Du ein neues Modell im Sender anlegst und schaltest einen Empfänger ein, der auf einem anderen Modell am gleichen Sender gebunden ist, dann funktioniert dieser sobald du die richtige Empfängernummer im Profil eingetragen hast.
Das kann nur bei immer gleichen Hoppingsequenzen und Frequenzen funktionieren.
Vielleicht ist die Hoppingsequenz noch von der Empfängernummer abhängig - was ich aber nicht glaube.

Von da her ist es völlig egal, wenn ich ein XJT in einem MPM clone. Solange nicht beide gleichzeitig in Betrieb sind, versaue ich die Umgebung HF technisch nicht anders als mit mehreren XJT´s.

Es wäre natürlich perfekt, wenn das MPM einen Lernmodus bieten würde und dann das gelernte XJT emuliert.

Gruß
Stefan
 
Zuletzt bearbeitet:

Elyot

Erfahrener Benutzer
Vorkenntnisse ist übertrieben, aber der FRSky-Teil im Multimodul-Code ist überschaubar. Und dann gibt es noch das Projekt von Fishpepper, wo man auch noch ein paar Infos ziehen kann.
 

Norbert

Erfahrener Benutzer
Hi,
die Hoppingsequenz ist fix bei FrSky (pro Sendermodul) und maximal von einer SenderID abhängig.
Wenn Du ein neues Modell im Sender anlegst und schaltest einen Empfänger ein, der auf einem anderen Modell am gleichen Sender gebunden ist, dann funktioniert dieser sobald du die richtige Empfängernummer im Profil eingetragen hast.
Das kann nur bei immer gleichen Hoppingsequenzen und Frequenzen funktionieren.
Vielleicht ist die Hoppingsequenz noch von der Empfängernummer abhängig - was ich aber nicht glaube.

Von da her ist es völlig egal, wenn ich ein XJT in einem MPM clone. Solange nicht beide gleichzeitig in Betrieb sind, versaue ich die Umgebung HF technisch nicht anders als mit mehreren XJT´s.

Es wäre natürlich perfekt, wenn das MPM einen Lernmodus bieten würde und dann das gelernte XJT emuliert.

Gruß
Stefan
Das widerspricht nicht dem, was ich gesagt habe. Das ist was man mir erklärt hat. Die Hoppingsequenz wird beim Einschalten des Senders dynamisch festgelegt und an den Empfänger übergeben.
Es sind immer die gleichen 47 Frequenzen, aber wohl in unterschiedlicher Reihenfolge. Aber vielleicht ist das auch nicht zutreffend, habe es nicht selbst überprüft.

Norbert
 

Elyot

Erfahrener Benutzer
Fishpepper: Projects – fishpepper.de

Die Hoppingtabelle beim Multimodul:
Code:
void Frsky_init_hop(void)
{
    uint8_t val;
    uint8_t channel = rx_tx_addr[0]&0x07;
    uint8_t channel_spacing = rx_tx_addr[1];
    //Filter bad tables
    if(channel_spacing<0x02) channel_spacing+=0x02;
    if(channel_spacing>0xE9) channel_spacing-=0xE7;
    if(channel_spacing%0x2F==0) channel_spacing++;
    hopping_frequency[0]=channel;
    for(uint8_t i=1;i<50;i++)
    {
        channel=(channel+channel_spacing) % 0xEB;
        val=channel;
        if((val==0x00) || (val==0x5A) || (val==0xDC))
            val++;
        hopping_frequency[i]=i>46?0:val;
    }
}
 

mastersurferde

Erfahrener Benutzer
Die Hoppingsequenz wird beim Einschalten des Senders dynamisch festgelegt und an den Empfänger übergeben.

Genau so ist das anscheinend nicht. Die Hoppingsequenz gehört fix (nicht dynamisch) zum Sendemodul. Ein anderes Sendemodul kann eine der anderen Hoppingsequenzen haben.
Dein Sendemodul hat immer die selbe Hoppingsequenz.

Der originale FrSky Empfänger könnte das wahrscheinlich dynamisch (ob er es macht ist nicht wirklich sicher) - macht aber keinen Sinn und ist wegen den Lockouts der V1 eher kontraproduktiv.
 

Elyot

Erfahrener Benutzer
Falls jemand passendes Equipment und Interesse hat:
Die Multisoftware mit Debug-Option compilieren und aufspielen. Im RX-Modus schmeißt das Modul beim Binden die TX-ID und die Hoppingtabelle raus. Läßt sich so also relativ einfach testen.
Wie man Debug aktiviert, steht im Docs-Verzeichnis der Quellen (GitHub).
 

Norbert

Erfahrener Benutzer
Das ist grundsätzlich klar, muss sehen wann ich Zeit dafür habe.
Was am fishpepper projekt ist in diesem Zusammenhang interessant?
lG
Norbert
 

Elyot

Erfahrener Benutzer
Fishpepper hat an einem Hardwaremod und einer alternativen Firmware für Flysky und Turnigy Evolution gearbeitet. Dort war der Clone-Modus direkt mit integriert.
 

Gruni

Erfahrener Benutzer
Hallo zusammen,

gibt es eine Möglichkeit mittels Arduino-IDE eine Multiprotocolxxxx.BIN zu erstellen, damit man mit FLASH MULTI das Modul via USB bespielen kann? Der Kollege mag sich nicht mit Arduino "abmühen".

Oder muss ich immer den Weg über das ArduinoIDE gehen.

Soweit ich es verstehe und bisher auch gehandhabt habe, habe ich entweder via ArduinoIDE das Modul geflasht, oder eine über GITHUB runtergeladene, fertige compilierte Version über MULTI FLASH eingespielt.

Beim compilieren mit der DEBUG-Option auf ON gibt der Compiler am Ende Fehlermeldungen aus.

Grüsse Gruni
 
Zuletzt bearbeitet:
Hallo zusammen,

gibt es eine Möglichkeit mittels Arduino-IDE eine Multiprotocolxxxx.BIN zu erstellen, damit man mit FLASH MULTI das Modul via USB bespielen kann? Der Kollege mag sich nicht mit Arduino "abmühen".

Oder muss ich immer den Weg über das ArduinoIDE gehen.

Soweit ich es verstehe und bisher auch gehandhabt habe, habe ich entweder via ArduinoIDE das Modul geflasht, oder eine über GITHUB runtergeladene, fertige compilierte Version über MULTI FLASH eingespielt.

Grüsse Gruni
Sketch | Export compiled Binary
 

helle

Erfahrener Benutzer
Es gibt bei FrSky-Sendern 3 interne Hoppingtabellen mit je 47 Kanälen
(das hatten wir doch schon mal vor Jahren ermittelt)

Beim Binden wird
a) eine der 3 Tabellen ausgewählt
b) die Reihenfolge der Kanäle aus der ausgewählten Tabelle festgelegt, die variiert
und ist abhängig von Sender ID und Modellnummer und dann an den Empfänger übertragen.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten