Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rx snd rcchannel reco #142

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

rx snd rcchannel reco #142

wants to merge 2 commits into from

Conversation

jlpoltrack
Copy link
Collaborator

Title - tried to keep it brief.

@olliw42
Copy link
Owner

olliw42 commented Apr 22, 2024

I've created the piece of text below. I'm not sure where it could go to, maybe as first sub chapter in https://github.com/olliw42/mLRS-docu/blob/master/docs/ARDUPILOT.md, or an extra page, I don't know. I just wanted to share it as food for you :) I could imagine something like this somewhere might be helpfull.


CRSF, RC_OVERRIDE, or RC_CHANNELS?

mLRS supports several ways to send RC channels data from the mLRS receiver to the ArduPilot flight controller.

The tradional way is to send the RC channels data on a dedicated signal wire using a RC protocol such as CRSF, SBus, FPort, PPM, and so on. In that case the mLRS receiver needs to be connected with 5 wires to the flight controller, GND, 5V, TX, RX, OUT. The GND, 5V wires are for powering the receiver, the TX, RX wires are for the serial MAVLink data, and the OUT wire is for the RC channels data. In the receiver the parameters "Rx Out Mode" should be set to the desired RC protocol, e.g. "crsf", and "Rx Snd RcChannel" to "none" (note that a mLRS receiver might not support all RC protocols due to hardware restrictions). In the flight controller the parameters as appropriate for the desired RC protocol need to be made, and the serial used for MAVLink needs to be configured to SERIALx_PROTOCOL = 2 (for MAVLink V2).

Alternatively, the RC channels data can be send via MAVLink to the flight controller. In that case only 4 wires are needed between receiver and flight controller, GND, 5V, TX, RX. The OUT wire is not needed. In the receiver the parameter "Rx Ser Link Mode" needs to be set to "mavlink" or "mavlinkX", and the parameter "Rx Snd RcChannel" should be set to "rc_channels" - if you are using ArduPilot V4.6.0-dev (for lower versions see next paragraph). The setting for "Rx Out Mode" is then irrelevant. In the flight controller the serial used for MAVLink needs to be configured to SERIALx_PROTOCOL = 2 (for MAVLink V2), and in addition the RC protocol "MavRadio" needs to be configured.

For ArduPilot V4.5.x and older versions, the parameter "Rx Snd RcChannel" should be set to "rc_override". In the flight controller the serial used for MAVLink needs to be configured to SERIALx_PROTOCOL = 2 (for MAVLink V2), but no RC protocol should be configured. However, this method should be considered legacy, and should not be used if "rc_channels" is possible. It just has downsides.

Each approach has its upsides and downsides, which shall not be listed and discussed here. The user may please inform her/himself.

@jlpoltrack
Copy link
Collaborator Author

Included this in the AP page for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants