Binding T8SGPlus + RM-TX16S to FrSky XM+

More
27 Oct 2020 17:28 - 30 Oct 2020 22:22 #76947 by gpo123
Hello,
I want to bind a Jumper T8SG Plus V2 and a Radiomaster TX16sS to a Frsky XM+ concurrently (only one TX active at a time).
So far I had no success in binding them both to the same receiver.

I tried to bind the Jumper to the receiver and then clone the TX ID via the multiprotocol cloning function with no luck. Neither combination of setting the TX ID on the Jumper in protocol option nor setting it in the hardware.ini or any receiver number on the TX16S helped to bind both transmitters concurently. I have successfully cloned the TXID from my Taranis QX7 to the Radiomaster TX16S. So I know in general how the procedure is working.

Of course I read this tutorial: www.deviationtx.com/forum/6-general-disc...ith-devo-10-and-t8sg . Which was kind of a mixed bag in someone saying it would work, other it won't without changing the multiprotocol code.

So is there any combination to get OpenTX+multiprotocol and DeviationTX binding to the same FrSky D16 receiver ? I am not afraid of compiling or changing the firmware as I have
done this several times in the past. Any hints to this are greatly appreciated !
Greetings!
Last edit: 30 Oct 2020 22:22 by gpo123.

Please Log in or Create an account to join the conversation.

More
30 Oct 2020 20:14 - 31 Oct 2020 11:23 #76964 by gpo123
Replied by gpo123 on topic Binding T8SGPlus + RM-TX16S to FrSky XM+
I fainally managed to do it. After all it was not that hard, although I had to compile a version of DeviationTX myself.

The problem was that the transmitter ID is obfuscated with randomized characters. This is derived from the given transmitter ID in hardware.ini (if any). So with two transmitters running DeviationTX it was possible to bind to the same receiver. But because of the obfuscation the real transmitter IDs were not identical between DeviationTX and the DIYMultiprotocol.

Why the cloning function did not work is out of my scope for now, but I will dig deeper into the multiprotocol code and maybe start a debugging session.

After understanding this, my fix was quite simple by removing the obfuscation code on the DeviationTX side for the FrskyX protocol frskyx_cc2500.c:

Before:
static int get_tx_id()
{
    u32 lfsr = 0x7649eca9ul;

    u8 var[12];
    MCU_SerialNumber(var, 12);
    for (int i = 0; i < 12; ++i) {
        rand32_r(&lfsr, var[i]);
    }
    for (u8 i = 0, j = 0; i < sizeof(Model.fixed_id); ++i, j += 8)
        rand32_r(&lfsr, (Model.fixed_id >> j) & 0xff);
    return rand32_r(&lfsr, 0); 
 }
After:
static int get_tx_id()
{
    return Transmitter.txid;
}

EDIT: THIS ONLY WORKS ON A JUMPER R1F Receiver SO FAR, NOT ON A FRSKY R-XSR. SO IT IS WIP :blush: :(
Last edit: 31 Oct 2020 11:23 by gpo123. Reason: some writing mistakes

Please Log in or Create an account to join the conversation.

Time to create page: 0.058 seconds
Powered by Kunena Forum