Servers by jDrones

Is it possible to select override rc channel?

Dear all,

I have a question about RC override with GamePad.
Is it possible to specify RC channels to override?

For example, I would like to control the aircraft with a radio-controlled transmitter while controlling the camera with the GamePad button.

Thank you.

Nope, it is all or none.

Oh really.

I’ll check around GCS_MAVLINK.cpp and modify it.

Thank you.

I modified GCS_Common.cpp, and built Copter-4.0.7.
When RC 9ch is more than 1700, 1-4 ch values of radio control are added to 1-4 ch of GamePad.
When RC 9ch is less than 1700 or there is no radio control signal, it remains the GamePad signal.
When I checked the operation, it worked as expected.
I used Durandal connected to PC by usb, R7008SB, 14SG, and InterLink controller connected to PC and tested on Mission Planner.

void GCS_MAVLINK::handle_rc_channels_override(const mavlink_message_t &msg)
    if(msg.sysid != sysid_my_gcs()) {
        return; // Only accept control from our gcs

    const uint32_t tnow = AP_HAL::millis();

    mavlink_rc_channels_override_t packet;
    mavlink_msg_rc_channels_override_decode(&msg, &packet);

    if (hal.rcin->read(CH_9) > 1700){
        packet.chan1_raw += hal.rcin->read(CH_1) - rc().channel(0)->get_radio_trim();
        packet.chan2_raw += hal.rcin->read(CH_2) - rc().channel(1)->get_radio_trim();
        packet.chan3_raw += hal.rcin->read(CH_3) - rc().channel(2)->get_radio_trim();
        packet.chan4_raw += hal.rcin->read(CH_4) - rc().channel(3)->get_radio_trim();

I added the last if statement.

Is there any software problem?

Thank you.

I thought that it means no radio control signal when hal.rcin->read(CH_9) returns 0.
Is it correct?

This is based on the mix function of Futaba’s trainer mode.

yes this is possible.

in latest ardupilot you need to set all the normal RC transmitter channels to UINT16_MAX in mission planner, so they are ignored, and then the gymbal channels as normal

Servers by jDrones