Connecting RX6R or R-XSR to BeagleBone Blue

Could someone please show how to connect these receivers to BBB?
I would like to also get the telemetry as well.

Thanks.

You need to use a UART. If you’re using SBUS/SPORT then you’d need to connect SBUS to an RX and SPORT to a TX on the BBB. If you want to use FPORT then you’d need the right firmware on the receiver, and you’d connect the SPORT pad on the receiver to a TX on the BBB.

The BBB UARTs apparently only deal with uninverted signals, so with the R-XSR the simplest solution is to solder a wire to the “uninverted S.PORT” pad (see the R-XSR section at https://oscarliang.com/uninverted-sbus-smart-port-frsky-receivers/), flash the receiver with the FPORT firmware (I suggest using https://www.frsky-rc.com/wp-content/uploads/Downloads/Firmware/ACCST-2.1.x/FW-RXSR-v2.1.0.zip, I had problems with telemetry on the newer one) and use FPORT as the protocol in Ardupilot as per FPort Receivers — Copter documentation.

Thanks Chris.
I understand that both S-PORT and FPORT are bidirectional. Therefore I didn’t understand the first part of your answer.
Do you mean that if I wanted SPORT telemetry, I didn’t need uninverted SPORT? That could be achieved simply by connecting SBUS to RX and SPORT to TX?

SPORT is technically bidirectional but in the context of a transmitter/receiver link it doesn’t include the control signals.

If you want to use separate SBUS and SPORT then you’d likely want to use the “uninverted SBUS” and “uninverted SPORT” pads as seen in https://oscarliang.com/ctt/uploads/2017/10/frsky_r-xsr_rx_receiver_smartport_sbus_inverted_uninverted_pin.jpg

If you want to use FPORT then you need to use the correct firmware and connect the “uninverted FPORT” to a Tx pin on your BBB. (And set the appropriate config options in the controller.)

Chris thanks. At this stage I just want to get telemetry data to my transmitter so I guess I would go for SPORT and SBUS. I saw online people connecting SBUS from pin and uninverted SPORT like the pic you posted.

Just for information, what FPORT can additionally provide which SPORT can’t?

FPORT uses a single wire for bidirectional communication, consumes only one UART on the flight controller instead of two, and automatically provides RSSI to the flight controller (mostly useful for overlaying onto an OSD).

Incidentally, have you read A BeagleBone Blue Setup Guide ?

Thanks.
Yes I have read that thread. I do have audupilot installed and working.
Now waiting for rest of the parts to arrive and then would begin the hardware build.

Chris
How can I use multiple different laptops to connect to BBB using UDP?
Your referred article also uses

SERIAL0="-A udp:<target IP address>:14550"

Even if I use one laptop, while in the fields, I would connect to a different wifi network let’s say to my mobile access point. I would then get a different ip than what I had defined in the arducopter service.

Is there a different way to connect to wifi telemetry?
I also tried connecting to BBB access point and then replaced the IP address to a new one through which I can also ssh but ardupilot is not connecting.
I guess the problem is BBB is connected to my wifi and my laptop is connect to BBB’s accesspoint.
Just not sure how to fix this.

EDIT:
If connected to BBB AP it is possible to connect ardupilot. so perhaps thats the solution for field tests.
It is still annoying that one needs to add the IP address.

@imfatant @ppoirier
One issue I am facing is to read the voltage and current.
Connection of power module to BBB is according to this page.
How do I edit the sudoedit /etc/default/ardupilot incorporate this power module?
My current setting is:

TELEM1="-C /dev/ttyO1"
TELEM2="-A udp:<target IP address>:14550"
GPS="-B /dev/ttyO2"
RANGER="-F /dev/ttyO5"

Also, how can I use SiK radio with BBB?

Thanks.

It’s been a long time but looking at code it shows:

You need to enable BBB-ADC cape in order to read voltage values here
“/sys/bus/iio/devices/iio:device0/”

Then you assign analog port number to voltage and current on the FC

@ppoirier
Thanks.
In MP should I set BATT_MONITOR value to 2?
Where do I define the analog port number?

Also I believe the measurement range is 0-3.3V but for BBB it is 0-1.8V. Where can I change this setting?

Is this RSSI_TYPE = 2?
But I don’t find a way to reset the range t0 0-1.8V

Regarding FPORT, I now have the invert adapter. I need to connect its rx and tx so possibly on ttyO1/serial1.
This adopter requires 5V vcc. Should I connect 5V of UART to adopter or from PDB?

Can I power BBB through PDB on 5V/GND servo pins? Or input 5V in Power Out’s 5V/GND pins?

Thanks.

@ZeusEx
How to monitor battery explained here
https://github.com/imfatant/test/issues/11
I setup pin5 and I monitor now DC Jack voltage since I power my beaglebone blue directly from 3S lipo.

Thank you.
I solved the problem by adding

cape_enable=bone_capemgr.enable_partno=BB-ADC

to uboot command. I had already voltage divider built and connected so just had to calibrate the voltage and current in MP.

@ZeusEx Did you manage to get the telemetry working on R-XSR? I need an advice how to connect it. I have control but no telemetry back to my TX.

Run these first.

cd /opt/scripts && git pull
sudo /opt/scripts/tools/update_kernel.sh --lts-4_19 --bone-rt-channel
sudo sed -i 's/#dtb=/dtb=am335x-boneblue.dtb/g' /boot/uEnv.txt
sudo sed -i 's|#dtb_overlay=/lib/firmware/<file8>.dtbo|dtb_overlay=/lib/firmware/BB-I2C1-00A0.dtbo\n#dtb_overlay=/lib/firmware/BB-UART4-00A0.dtbo\n#dtb_overlay=/lib/firmware/BB-ADC-00A0.dtbo|g' /boot/uEnv.txt
sudo sed -i 's|uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo|#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo|g' /boot/uEnv.txt
sudo sed -i 's|#uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo|uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo|g' /boot/uEnv.txt
sudo sed -i 's/GOVERNOR="ondemand"/GOVERNOR="performance"/g' /etc/init.d/cpufrequtils

I have used SBUS till now. Maybe in future would try FPORT.
If you use FPORT, like others suggested, use uninverted SPORT and connect to TX on BBB. Unplug SBUS in that case. I have purchased an inverter module for that since that pad is too small to solder, at least for me.

Hello @ZeusEx ! I am trying to connect the RX6R to the BeagleBone Blue. I’ve read the thread and tried to connect the S.Port to TxD and SBUS to RxD with power coming from 3V3 and GND in UART 1. I’ve tried 5 volts, connecting it to Pin 4 E4, and pretty much every combination and still get a

PreArm Error: RC Not Found

What do you suggest I can do to connect the receiver to the board?

If you need the service file, kernel config, or any other photos or visual aids, please let me know as I recall want to get this thing flying again!

It is running 5.10-LTS and I used the BeagleBone Setup Guide to help me setup Ardupilot.

@RedgarTech
I believe your wiring is not correct.
Check below.
I don’t have BBB with me anymore for a few months now so didn’t actual get to try inverted SPORT telemetry.

@RedgarTech
Try to setup following this page
Also try commands:

cd /opt/scripts && git pull
sudo /opt/scripts/tools/update_kernel.sh --lts-4_19 --bone-rt-channel
sudo sed -i 's/#dtb=/dtb=am335x-boneblue.dtb/g' /boot/uEnv.txt
sudo sed -i 's|#dtb_overlay=/lib/firmware/<file8>.dtbo|dtb_overlay=/lib/firmware/BB-I2C1-00A0.dtbo\n#dtb_overlay=/lib/firmware/BB-UART4-00A0.dtbo\n#dtb_overlay=/lib/firmware/BB-ADC-00A0.dtbo|g' /boot/uEnv.txt
sudo sed -i 's|uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo|#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo|g' /boot/uEnv.txt
sudo sed -i 's|#uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo|uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo|g' /boot/uEnv.txt
sudo sed -i 's/GOVERNOR="ondemand"/GOVERNOR="performance"/g' /etc/init.d/cpufrequtils