Page 1 of 1

Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Mon Jan 09, 2017 10:23 pm
by alll
Hi,

I am using this arduino library to read the sbus stream from a frsky x4r receiver.
On the output screen of the taranis i see min-max:988-2012µSec
On the arduino i get 172-1811 (sbus range 0-2048)

I tried to get a larger/wider output range on the taranis (larger than 988-2012µSec), but could not get it done, they are limited to -100 +100 ...
Could you give me some hints?

Thanks,
manu

https://github.com/zendes/SBUS

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Tue Jan 10, 2017 12:15 am
by MikeB
Turn "extended limits" on, then change the limits on the channels.

Mike.

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Tue Jan 10, 2017 9:20 pm
by alll
MikeB wrote:Turn "extended limits" on, then change the limits on the channels.

Mike.
To be sure i understand. :oops:

I see the µsec on the output screen of the taranis (throttle): stick calibration previously done!

I need to set the subtrim, min...max of the taranis output to 2, -121...129 and the corresponding µsec on the taranis shows 881...1500...2160µsec
to finally get 0...1024...2047 values on sbus-receiver

What is actually send to the receiver, are there "mappings" done?

I also see that the min-min and max-max output values can be set to -150...+150, moving the stick delicately, i still have the 1µsec sensitivity/precision/accuracy. (732...2268µsec)

It would be nice to tell opentx before calibration that he should map the outputs (all) to min...max values, here in my case 0...2047 (sbus min-max)
There are too many places that alter the "servo" output:
  • Input weight
    Mix weight
    Output min-max
what would be the easiest approach to get 0...2047 on the receiver sbus?

xxxxx thanks
manu

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Tue Jan 10, 2017 10:24 pm
by MikeB
Have you turned "extended limits" on?

Mike.

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Wed Jan 11, 2017 6:06 am
by alll
MikeB wrote:Have you turned "extended limits" on?

Mike.
Yes, i did ? Why ? After i did, i can change the output mi..max to -150...150 to get (732...2268µsec)

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Wed Jan 11, 2017 8:11 am
by Kilrah
Limits is the only place you need to act if you want to extend throws.

Scaling between us and SBUS value is done in the receiver in the way Futaba decided it when they created the SBUS protocol. The whole SBUS range is never supposed to be used in normal applications and it would be considered invalid by most RC equipment.
The outputs page only displays down to 1us but the underlying resolution is higher regardless.

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Wed Jan 11, 2017 9:34 pm
by alll
Hi,

Found this! ;)
viewtopic.php?t=667

I made a Bluetooth transmitter-receiver "simple data-package protocol":
stick-pot->adc(12bit) ArduinoTx->(0..2047)->RxBluetooth ......... air ........ BluetoothTx->(0..2047)->RxArduino->SBus

ArduinoTx and RxArduino "know each other "bit" resolution"! ....

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Wed Jan 11, 2017 9:44 pm
by Kilrah
Yes but whatever you hook to SBUS will likely disable itself when you get closer than about 150 from the ends because signal is out of standard range.

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Wed Jan 11, 2017 9:51 pm
by alll
Ho, good to know! So what are the min...max sbus values alowed? (150...1897) ?
will try it wit a sbus servo ...
thanks

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Thu Jan 12, 2017 10:24 pm
by alll
tested :
arduino->sbus->FrskySbusServo
0..2047 works!
<0 or >2047 doesn't work!

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Thu Jan 12, 2017 10:44 pm
by alll
so, what does the receiver finally get from the transmitter?

i would expect that during the bind process transmitter and receiver get to know each other. For example, the transmitter should "tell" the receiver that he will sent values from 0...2047, "a 11bit transmitter", and other useful info...

thanks,
manu

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Fri Jan 13, 2017 8:11 am
by Kilrah
Each manufacturer's system does it differently. Most systems just store the transmitter's unique identifier and that's it.

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Tue Aug 29, 2017 5:47 am
by roachslayer
alll wrote: Wed Jan 11, 2017 9:34 pm Hi,

Found this! ;)
viewtopic.php?t=667

I made a Bluetooth transmitter-receiver "simple data-package protocol":
stick-pot->adc(12bit) ArduinoTx->(0..2047)->RxBluetooth ......... air ........ BluetoothTx->(0..2047)->RxArduino->SBus

ArduinoTx and RxArduino "know each other "bit" resolution"! ....
How? That link was way over my head, I don't push bits and make drivers, but I do write code for Arduino. At the very least, I really need to get this working: "stick-pot -> Arduino -> SBUS -> FrSky Tx serial port". I can't find a library that encodes analog 0-1024 inputs into an SBUS packet to move ch1-16, for example.

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Tue Aug 29, 2017 8:37 am
by MikeB
Be aware that "standard" SBUS uses inverted serial data, as does the serial port in the battery bay of the Taranis. So you cannot use the serial connection on an Arduino directly. You need either a hardware inverter, or you need a software driver that sends inverted serial data.

I know you want the opposite, but this project: https://github.com/MikeBland/SbusToPpm might help you see what a SBUS frame looks like.

Mike.

Re: Taranis larger output values Frsky X4R SBUS (988-2012µSec)

Posted: Tue Aug 29, 2017 6:03 pm
by roachslayer
Thanks, good point, I came across that info somewhere and inverting this with a proper circuit is doable.

I still don't know where to start in terms of the code. I also found this library which appears to have write() to encode, but the examples of how to actually apply it are insufficient:
https://github.com/bolderflight/SBUS

It's designed to write to an SBUS compatible servo. Is that also what the serial port of the TX itself would expect? (feeling like a noob, despite software proficiency in other types of development)