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

AP 3.4: Pixhawk only accepts 12 channels from CPPM but 16 from SUMD via Spektrum satellite port #3337

Open
marcmerlin opened this issue Dec 14, 2015 · 6 comments

Comments

@marcmerlin
Copy link
Contributor

With openlrs, if I output CPPM, pixhawk only receives 12 of the 16 channels (as seen in chanxx_raw in status)
If I output SUMD and wire it to go into the satellite receiver port, I see all 16 channels from my openlrs receiver in chanxx_raw.

Only problem is that using SUMD prevents me from using RX/TX on my receiver (i.e. I can have SUMD or RX/TX, while I can have RX/TX and CPPM), so I'd like to go back to CPPM.

Can AP be improved to receive all 16 channels from a CPPM stream, and not just 12?

@marcmerlin
Copy link
Contributor Author

I've been reading the code
void RCInput::_process_ppmsum_pulse(uint16_t width_usec)
in ./libraries/AP_HAL_Linux/RCInput.cpp
The PPM-sum code looks generic enough, it'll read channels until it hits a pulse of 2700 (not possible as a servo reading), or
ppm_state._channel_counter >= LINUX_RC_INPUT_NUM_CHANNELS
and that's
./libraries/AP_HAL_Linux/RCInput.h:#define LINUX_RC_INPUT_NUM_CHANNELS 16

So I find no obvious reason why it would be limited to 12 channels.

@magicrub
Copy link
Contributor

@marc,
You're looking at ./libraries/AP_HAL_Linux/RCInput.cpp so does that mean
you're running on linux? I thought you were on Pixhawk.

-TomP

On Mon, Dec 14, 2015 at 8:47 AM, Marc MERLIN notifications@github.com
wrote:

I've been reading the code
void RCInput::_process_ppmsum_pulse(uint16_t width_usec)
in ./libraries/AP_HAL_Linux/RCInput.cpp
The PPM-sum code looks generic enough, it'll read channels until it hits a
pulse of 2700 (not possible as a servo reading), or
ppm_state._channel_counter >= LINUX_RC_INPUT_NUM_CHANNELS
and that's
./libraries/AP_HAL_Linux/RCInput.h:#define LINUX_RC_INPUT_NUM_CHANNELS 16

So I find no obvious reason why it would be limited to 12 channels.


Reply to this email directly or view it on GitHub
#3337 (comment)
.

@marcmerlin
Copy link
Contributor Author

@magicrub oops, you are correct, I was grepping in the wrong place.
./libraries/AP_HAL_PX4/RCInput.h:#define RC_INPUT_MAX_CHANNELS 18

Is PX4 using ./Tools/ArduPPM/ (even though it's not arduino based?)

./libraries/AP_HAL_PX4/RCInput.cpp doesn't have anything relating to PPM.

@marcmerlin
Copy link
Contributor Author

@tridge this is the 12 channel limit for PPMSum I noticed (but that isn't there for SBUS or SUMD)

@ArduPilot ArduPilot deleted a comment from Ravid824 Jun 10, 2017
@ArduPilot ArduPilot deleted a comment from OXINARF Jun 10, 2017
@ArduPilot ArduPilot deleted a comment from Ravid824 Jun 10, 2017
@marcmerlin
Copy link
Contributor Author

Another person with the same problem:
http://discuss.ardupilot.org/t/how-many-channels-supported-on-ppm-rc-input/18133

@marcmerlin
Copy link
Contributor Author

https://www.rcgroups.com/forums/showpost.php?p=37662843&postcount=10861
claims that 16 channel CPPM works on Rover, but everyone agrees that no more than 12 channels work on AP.

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

No branches or pull requests

2 participants