RFD900 / TXMOD and SBUS

Hello,

I got myself a RFD900 and TXMOD for testing and would like to operate it with SBUS input and output.

The hardware is on the current software status, the configuration as shown here often.

SBUS works in principle, but in the Mission Planner deflections on different channels are displayed during radio calibration without moving any stick / switch on the transmitter …

Furthermore the SBUS failsafe flag does not work. On inquiry RFDesign confirmed me by mail that there are still problems with SBUS.

Who of you has a working SBUS setup?

I have a working SBUS setup, using RFD868x and TXMODv2
Both the RC transmitter uses SBUS to transfer data (ground unit) and the Autopilot as well (air unit)

Falisafe works fine.

Details are here: RFDesign TXMOD v2 with Yaapu telemetry script on FrSky Q7

The manufacturer confirms problems and you write there are none? How can that be?

Is the software version in your link still up to date? I like to test it … maybe you can make a screenshot of your setup (TXMOD)?

I do not know hot that can be. But I can tell you that it works here, and some other user have it working as well.

You do need to update some of the firmwares. Have you done that?
The ones I posted do work, and I tested it with ArduCopter 4.1.1

I think I have it … This is probably due to the refresh rate in the transmitter. By default 7ms are set for SBUS. I think you have taken 10ms and so it runs in the short test incl. failsafe.

Can you perhaps test once, what happens with you, if you set the refresh rate to 7ms? Then errors should also occur.

Yes, 7ms make it go a bit crazy,m I have set it to 20ms now.

I updated the original post with some more information

I’m adding a “How-To” for the TXMOD and SBUS for RC control.
I’m covering two aspects here:

  1. SBUS
  2. Increasing the baud rate - partially because that’s how I have mine set, so better to mention it now than have anyone confused by the screenshots, and partially because nearly everyone should update to the higher baud rates unless you fly very long distances

On the air-side/remote radio you need the SBUS output connected to the RCin of your flight controller. It’s the same pin as for RC/PPM but the function changes depending on the next settings you choose.

RFD900X

RFD900UX

You can do some of this in the RFD Tools, or better to use the TXMOD web interface - just connect to it’s wifi network while it’s powered up.
In a web browser just hit the IP address of the TXMOD which will be http://192.168.4.1 unless you changed it
We are assuming you’ve already ran the wizard and radios are connected and operational.

Go to System Status General Settings

  • Change the WiFi baud rate (for connecting to MissionPlanner and others) This should always be the same as the SERIAL baud rate you use for telemetry
  • Enable the S.PORT output to feed the telemtry data to the transmitter, for such things as the Yaapu Telemetry script

This changes the serial comms baud rate between the groundstation (or yaapu telemetry script) and the remote radio/ flight controller

Go into the Advanced options RFD Radio Settings

  • Set the serial baud rate to 115 and Air Speed to 200
  • Set the Max Window to 80
  • On the Local radio (TX MOD) set the SBUSIN GPIO port to 1
  • On the Remote radio (air unit) set the SBUSOUT GPIO to 1

It is also possible to have one set to SBUS and one set to R/C and the RFD’s will convert between SBUS and PPM - but why would you :slight_smile:

In the RC Transmitter you have to edit the model you use with the TXMOD.

  • Disable the Internal RF
  • Enable the External RF
  • Select SBUS at VBat , negative polarity
  • Adjust the PPM frame length if necessary, if this is wrong you wont have all 16 channels available, come back and fix it

I use the EdgeTX Companion, the OpenTX Companion is basically the same. You can do this in the radio itself too if you are good at clicking around with the buttons or on the touch screen (with EdgeTX)

If updating the baud rates from the default 56k to 115k then you need to also change your flight controller settings:
SERIAL1_BAUD,115
SERIAL1_OPTIONS,0
SERIAL1_PROTOCOL,2
Probably do this last via USB connection

Use the MissionPlanner RC Calibration screen to check you get all the channels and that they actually work.
If using the TXMOD WiFi to connect, remember to select 115200 baud in the MissionPlanner or QGC connection dialog.
You probably should run the calinration again too, since the ranges might be slightly different to whatever RC receiver you were using before.

Welcome to downloading logs by radio FAST (well bearable anyway) and not having to go through that awful PPM failsafe dance !


Emergency recovery
If at anytime you completely lose contact and cant recover anything, the TXMOD has a reset button - press 5 times in 5 seconds to reset everything to defaults
The air-side radios can be connected direct to a PC via a FTDI USB cable, or just keep changing the flight controller SERIALx_BAUD value until you establish contact. It will most likely be either 57 or 115

Please advise me of any differences or issues and we can update this thread. I’ll capture more screenshots if I have to.

2 Likes

This must be called “S.Port output” here. Otherwise the instructions look good!

Thanks Reinhard, fixed now.

@ xfacta - I switched from old style 40 MHz radios to FrSky X12S plus 868x txmod / modem 2 years ago to run my subs - everything works as ut should including yaapu telemetry - I’m using ppm on the entire way from rx/txmod/FC rc in because the ppm failsafe feature is essential to surface the submerged sub in case of signal loss - which occurs from time to time… - failsafe settings in rover provide no means for blow the ballast tanks in an emergency (signal losd). Question: how do I need to setup local txmod and remote on SBUS to keep specific failsafe settings operational on SBUS in the case of signal loss?

SBUS data includes the failsafe or signal loss flag - it doesnt depend on “throttle below failsafe” PWM level, although that still works.
To the flight controller it will be like all RC channels disappear, as if the radio just got unplugged.
Test in a controlled environment of course.

LUA scripting could be used for any post-failsafe actions, since the ability to set specific channels to specific PWM levels is not available in SBUS (as it is with PPPM failsafe actions). LUA scripting will give you a more versatile solution that is future-proofed.

There is:
rc:has_valid_input()
and a bunch of LUA functions to set outputs

I just upgraded from the pixracer-R15 to the lua capable Pixracer Pro - would a very basic and simple failsafe script like this one work out?

“rc-failsafe ArduRover 4.3.2”

function update()
if not rc:has_valid_input() then

    servo1:set_output_pwm(1000)
    servo2:set_output_pwm(1500)
    servox:set_output_pwm(x)
    -- ...
end

end

I think so - you should be able to test it easy enough on the bench or in a controlled environment.

That was a quick reply indeed - I let you know the result - Theo