Frsky Taranis X9d+ and Frsky R-XSR

Iv dug out my old Taranis x9d+ from 2015 for a project.
Recently i udated the firmware from the Frsky downloads section.

I have aquired a R-XSR receiver which was under FCC firmware so i upgraded to LBT.

I couldn’t get it to bind.

Iv switched back and forth with different firmwares from v1 and v2 and both FFC and LBT for both the Tx and Rx and i still cannot get them to bind.

Ill hold the bind button down on the RX and ill get a solid red and green led. No blue led as i require it in CPPM mode. I am expecting the red led to flash then bind happens. I get nothing.

Other info for this post:

•Transmitter is chirping (bind mode).

• Keeping the radio within a reasonably good distance but not too close. From next to it all the way up to about 3 meters away.

• Radio is fully charged.

I think i am either messing up with the firmware and choosing incompatible firmware every time or iv missed something else.

Has anyone used or figured out the correct firmware for the Frsky Taranis X9d+ and Frsky R-XSR together?

Frsky have made it so much harder. But thats for another topic. Lol

I’m not a FrSky guru but looking online I think you need to match the type on the Ratio and Receiver.

image

image

Worth a try ?

1 Like

Thanks bud. (Solved)

Well it turns out afterall i had been using the correct firmware etc however i wasnt giving enough power to the receiver.

Id previously had it powered from the 5v pin on an arduino (just because it was available on the bench at the time) but likely not enough current. As soon as i hooked it up for a regulated 6v supply with enough current it bound to the receiver. :wink:

1 Like

Wow, that’s weird.
I’ve powered receivers from an Arduino directly before but greatly depends on the board itself.

Have you started to test PPM ?
Might as well just run the example first to know if you can acquire the channels ?

How many channels will be available ? Maybe I can tweak it for a larger amount.

1 Like

Ill be using a total of 12 channels as per the code i sent you for my project. I have the possibility to use 16 channels if i expand my project.

I am just waiting for my custom breakout to arrive and then ill start testing.

As per testing last night with the Arduino Mega i can confirm that it doesn’t work with the Mega. If a solution can be put in place for this it would benefit me greatly.

I’ll put the libraries here as a placeholder …

The one written by Colin F. MacKenzie on Lynxmotion Git

The one found to be working on MEGA and pin D3 on Git

I feel like our library do not use the right ports for a MEGA … or something among those lines.

1 Like

Thanks eric.

I really should have posted them for reference. :+1:

I will see if i can have a play with it tonight and get collins ppm library to work on mega. Since iv implemented it into my project code that will make it easier for me (selfish face here). If all fails ill looking into implementing the Dimag0g one as i know that one does work on mega.

In the meantime if anyone has a solution i would be happy to hear it. :blush:

Try commenting out the USE_PCINT define in ppm.cpp file around line 11. I remember now that the pcint was a workaround for an arduino interrupt issue from years ago. It’s since been fixed. By commenting that out, the ppm lib will use the " attachInterrupt(digitalPinToInterrupt(pin), …)" method to attach the interrupt which is more device portable.

2 Likes

I wish that was the fix.

I get these numbers with and without A0 connected

Just did a test with that suggestion.
Only commented the line and saved (using notepad++) then went to the untouched example and loaded. It didn’t work on A0 so I moved it to 3 (D3) as it was working on the other library on that pin and bam… it worked. (tried on D2 as well and worked)

Not sure why Analogs are not working.

Thats great. Yes i can confirm my end also. Good work.
Thanks both.

1 Like

@cmackenzie - The question now is … is this define required at all and if so do we add a board define ?

I tried with the define commented on a BotBoarduino and it doesn’t work anymore when I do using A1 but it does work on D3.
Certainly have to do with this portion of the code and maybe a hack that @cmackenzie implemented to make it work on the LSS-2IO which only had A3 available ?

image

void PPM::begin(int pin, bool invert)
{
  pinMode(pin, INPUT_PULLUP);
#ifdef USE_PCINT
  PCattachInterrupt(pin, __vector_ppm_interrupt, CHANGE);
#else
  attachInterrupt(digitalPinToInterrupt(pin), __vector_ppm_interrupt, CHANGE);
#endif
  count_ = 0;
  pin_ = pin;
  invert_ = invert;
}

As a continuation of my project (ill open a post for this once iv established some issues) but still relevant to contents of this post, id like to get some advice on the following issues i am facing and also some work arounds i have put in place going forward.

ISSUES:
A:)
• Currently i can only read 8 channels using the Lynxmotion Arduino-PPM code. (A fix is in place but testing is still on going) i need 12.

B:)
• With an Interrupt based code, i am getting conflicts when attempting to use 24 servos. At the moment i have found only 8 servos that will work with current pin assignments so more testing needs to be done there to try and obtain more. However it doesnt look promising.

WORKAROUNDS
A:)
• I could look at creating combination/mixing of channel inputs to get a new output. Eg, a three point switch could be used to create three new modes that will inturn allow current channels to do something new.

B:)
• I stepped away from using PS2 as for me its a little outdated… (been doing this for about 15+ years) and so i wanted to move to RC-PPM
Obviously Interrupts have got in the way, however my fixes are:

• Do i create my own Arduino based RC transmitter?

• Should i set up a second Arduino Nano to aquire the ppm signals and then send them to the Mega in a more acceptable manner and bypass using Interrupt on the Mega?

• Install a servo driver (SSC32u, Or other) to allow expansion of servo pins. Will this still be “Interrupted”?

1 Like

As discussed, do you have a work around for the other channels ?
I was under the impression that the other library was allowing all channels but not ours, can you confirm ?

1 Like

Yeah my bad on that information. My Rxsr receiver will only output 8 cppm channels. It will allow 16 on the SBUS but that is invalid here.

I do have an SBUS to PPM converter that i may throw in and test. At the moment tho i am working out some issues with in my code (will post soon if i cannot work it out) but once sorted ill look into adding more channels via the means just mentioned.

1 Like

That would be great if the PPM SBUS to PPM work.
However maybe you can have the sbus directly IN …

1 Like