Stop default messages on mavlink stream

When starting a mavlink connection, a default set of messages is automatically sent by the autopilot. Is there a mavlink command I can send to stop sending any data on the connection? I’d like to stop all default data coming through, and then request only a specific message such that only that specific message is coming through the connection and nothing else.

Following this example, I tried doing:
master.mav.request_data_stream_send(master.target_system, master.target_component, mavutil.mavlink.MAV_DATA_STREAM_ALL, args.rate, 1)
with args.rate set to 0, but it seems to have no effect.

Not 100% sure but I think you can change it on the stream rate parameters (SR0, SR1, etc.) by setting the relevant groups to 0 Hz.

1 Like

You need to follow @copilot advice and do not connect a ground station on that link, all ground station will change the SR* parameters behind your back, unless you explicitly tell them not to do it.

1 Like

Thank you @copilot and @amilcarlucas .
That makes sense. I’m doing everything in SITL at the moment, so I’m not connected through a serial port but rather a UDP connection. Once I’m working with hardware I will try that out.

Try fiddling that last parameter:

       <message id="66" name="REQUEST_DATA_STREAM">
            <description>THIS INTERFACE IS DEPRECATED. USE 

SET_MESSAGE_INTERVAL INSTEAD.
The target
requested to send the message stream.
The target
requested to send the message stream.
The ID of the
requested data stream
The
requested message rate
1 to start sending,
0 to stop sending.

Also, beware of some other GCS on the same link restarting them :slight_smile:

1 Like

@jeff567 did you manage to stop the MAVLink messages? I am trying to do the same (Rover 4.1.2) as I have an Arduino attached to GPS2 of my Orange Cube and I would rather just poll for info that I need, when I need it.
I believe that GPS2 physical port maps to Serial4 in ArduPilot. I’m getting somewhat un predictable results. Even when I turn all SR4_XXX params to 0, Write it and reboot the Cube, I am still getting this sort of stuff coming out of the port (the mavlink_receive() print statements are all from my Arduino code).

mavlink_receive() - MSG RCVD - magic:254 seq:173 src sysid:1 src compid:1 msgid#:36
mavlink_receive() - MSG RCVD - magic:254 seq:174 src sysid:1 src compid:1 msgid#:65
mavlink_receive() - MSG RCVD - magic:254 seq:175 src sysid:1 src compid:1 msgid#:35
mavlink_receive() - MSG RCVD - magic:254 seq:176 src sysid:1 src compid:1 msgid#:0=HEARTBEAT FlightMode:4 Type:11 Autopilot:3 BaseMode:1 SystemStatus:5 MavlinkVersion:3
mavlink_receive() - MSG RCVD - magic:254 seq:177 src sysid:1 src compid:1 msgid#:36
mavlink_receive() - MSG RCVD - magic:254 seq:178 src sysid:1 src compid:1 msgid#:65
mavlink_receive() - MSG RCVD - magic:254 seq:179 src sysid:1 src compid:1 msgid#:35
mavlink_receive() - MSG RCVD - magic:254 seq:180 src sysid:1 src compid:1 msgid#:22
mavlink_receive() - MSG RCVD - magic:254 seq:120 src sysid:1 src compid:0 msgid#:0=HEARTBEAT FlightMode:0 Type:27 Autopilot:8 BaseMode:4 SystemStatus:4 MavlinkVersion:3
mavlink_receive() - MSG RCVD - magic:254 seq:233 src sysid:255 src compid:190 msgid#:0=HEARTBEAT FlightMode:0 Type:6 Autopilot:8 BaseMode:0 SystemStatus:0 MavlinkVersion:3
mavlink_receive() - MSG RCVD - magic:254 seq:181 src sysid:1 src compid:1 msgid#:36
mavlink_receive() - MSG RCVD - magic:254 seq:182 src sysid:1 src compid:1 msgid#:65
mavlink_receive() - MSG RCVD - magic:254 seq:183 src sysid:1 src compid:1 msgid#:35

I have rebooted/power cycled the Cube, nothing stops it.

I am getting less different types of MAVLink Messages out that port than when I first started messing with it, so some config has been listened too, but these last few msg types persist :frowning:

Just to try something, I even changed SERIAL4_PROTCOL to -1 and then to 3, it still spewed out MAVLink v1!

Any ideas appreciated.

Thanks,
Paul

I am connected with Mission Planner via TELEM1 and a pair of SIK radios.

Mavlink (especially the telemetry part) is not a poll-based protocol but a publish-subscribe-based one.

  1. You have to send your heartbeat. Subscribe to data streams via REQUEST_DATA_STREAM
  2. Mavlink is also a routed protocol between endpoint, and you will get messages sent to a broadcast system or component ID.

See more details here > Requesting Data From The Autopilot — Dev documentation

Ps. from firmware 4.0, you CAN request single messages via the REQUEST_MESSAGE command.

1 Like

Hi @Eosbandi,
Thanks for responding.

Yes, I see that is often, but not always the case. I have done a fair bit of reading and understand the difference between using MAVLink Multicast Streams vs. Guaranteed Delivery.

So in my use case, I don’t want the Multicast Streams on the MAVLink serial connection between my ArduPilot and my Companion Computer. I just want to poll the AutoPilot via the REQUEST_MESSAGE method (as you mentioned) and just ask for what I need on the odd occasion that I need it

Once I have that working I will then move on to also use the Guaranteed Delivery method with the Mission Protocol micro service over MAVLink to allow my Companion Computer to update the Mission waypoints etc on the AutoPilot.

If it turns out it can’t all be stopped and I have to have some data streaming across the link, then I guess I will have to deal with it, but it would be so much easier if we could stop it and then my code on my Companion Computer could be a lot simpler. I’m using a very capable M4 based Arduino as my companion computer because that is what I am familiar with (and its doing other easy GPIO/sensor stuff) and so far I have got the standard MAVLink libraries running on it (I’m sending/receiving HEARTBEATs amongst other things) but I want to keep it as simple as possible.

Thanks again, any thoughts are most welcome and helpful.

Cheers,
Paul

Can anyone shed some light on whether I should try and use a “private” MAVLink Channel on my Serial port from PixHawk4/ArduPilot Rover to my Arduino? All I want to do most of the time is use the Mission Protocol and the Parameter Protocol. My hope is that this would stop the broadcast streams that Mission Planner keeps telling ArduPilot to stream out all MAVLink ports.

It’s described in the ArduPilot code here ardupilot/GCS.h at fd11620383312ee4ec318973fce98e6761bba002 · ArduPilot/ardupilot · GitHub

    // set a channel as private. Private channels get sent heartbeats, but
    // don't get broadcast packets or forwarded packets
    static void set_channel_private(mavlink_channel_t chan);

But I cannot figure out if I am allowed to use it and if so how.
Thanks,
Paul

Just set all SRx_* parameters to 0, were x is the serial port used to connect to the arduino, and it will do what you want already

Actually, even if I could just filter on incoming MAVLink messages and quickly drop everything that was not in a Private channel (if there is a Private/non-private flag in the message?) that would simplify my processing perhaps?

Thanks I will try that again, I think when I tried it before I must not have been doing it right as it didn’t seem to have any effect.

Thanks,
Paul

You need to reboot after changing it for the changes to take effect

Hi @amilcarlucas,
I tried setting all SR4_x parameters to 0 and rebooting the Cube Orange. I still get three MAVLink msgID’s #35, #36 & #65, at about 1-2Hz, which are all associated with the RC/SERVO parameters.

15:47:37.535 > mavlink_receive() - MSG RCVD - magic:254 seq:31 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:47:37.535 > mavlink_receive() - MSG RCVD - magic:254 seq:32 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:47:37.535 > mavlink_receive() - MSG RCVD - magic:254 seq:33 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded

I ensured I was not sending anything to the Cube (no HEARTBEATS, no requests) in case that was triggering it.

Unless I’m missing something it feels like the ArduPilot is misbehaving? Could there be any other reason that ArduPilot thinks it needs to pump those streams out all MAVLink enabled ports?

Thanks,
Paul

Here is a longer debug from my MCU. You can see the HEARTBEATS are still being sent and the occasional TIMESYNC. I wouldn’t mind this if I could get rid of the rest.

15:52:42.548 > mavlink_receive() - MSG RCVD - magic:254 seq:146 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:42.548 > mavlink_receive() - MSG RCVD - magic:254 seq:147 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:42.548 > mavlink_receive() - MSG RCVD - magic:254 seq:148 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:42.548 > mavlink_receive() - MSG RCVD - magic:254 seq:149 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
15:52:42.548 > mavlink_receive() - MSG RCVD - magic:254 seq:150 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:42.548 > mavlink_receive() - MSG RCVD - magic:254 seq:151 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:42.549 > mavlink_receive() - MSG RCVD - magic:254 seq:152 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:42.549 > mavlink_receive() - MSG RCVD - magic:254 seq:153 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:42.549 > mavlink_receive() - MSG RCVD - magic:254 seq:154 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:42.549 > mavlink_receive() - MSG RCVD - magic:254 seq:155 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:42.585 > mavlink_receive() - MSG RCVD - magic:254 seq:219 src sysid:1 src compid:1 msgid#:111=TIMESYNC - undecoded
15:52:42.926 > mavlink_receive() - MSG RCVD - magic:254 seq:220 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:42.935 > mavlink_receive() - MSG RCVD - magic:254 seq:221 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:42.940 > mavlink_receive() - MSG RCVD - magic:254 seq:222 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:43.426 > mavlink_receive() - MSG RCVD - magic:254 seq:223 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:43.435 > mavlink_receive() - MSG RCVD - magic:254 seq:224 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:43.440 > mavlink_receive() - MSG RCVD - magic:254 seq:225 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:43.564 > mavlink_receive() - MSG RCVD - magic:254 seq:226 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
15:52:43.926 > mavlink_receive() - MSG RCVD - magic:254 seq:227 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:43.935 > mavlink_receive() - MSG RCVD - magic:254 seq:228 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:43.940 > mavlink_receive() - MSG RCVD - magic:254 seq:229 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:44.426 > mavlink_receive() - MSG RCVD - magic:254 seq:230 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:44.435 > mavlink_receive() - MSG RCVD - magic:254 seq:231 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:44.440 > mavlink_receive() - MSG RCVD - magic:254 seq:232 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:44.564 > mavlink_receive() - MSG RCVD - magic:254 seq:233 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
15:52:44.926 > mavlink_receive() - MSG RCVD - magic:254 seq:234 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:44.935 > mavlink_receive() - MSG RCVD - magic:254 seq:235 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:44.940 > mavlink_receive() - MSG RCVD - magic:254 seq:236 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded
15:52:45.426 > mavlink_receive() - MSG RCVD - magic:254 seq:237 src sysid:1 src compid:1 msgid#:36=SERVO_OUTPUT_RAW - undecoded
15:52:45.435 > mavlink_receive() - MSG RCVD - magic:254 seq:238 src sysid:1 src compid:1 msgid#:65=RC_CHANNELS - undecoded
15:52:45.442 > mavlink_receive() - MSG RCVD - magic:254 seq:239 src sysid:1 src compid:1 msgid#:35=RC_CHANNELS_RAW - undecoded

As a workaround, I have added code on my MCU to explicitly ask ArduPilot not to send me those streams as follows and that has silenced them.

    // Prep source and dest MAVLink addressing info, to be used in below actions.
    uint8_t _system_id = FMX_SYS_ID;        // MAVLink System ID of this device.
    uint8_t _component_id = FMX_COMP_ID;    // MAVLink Component ID of this device.
    uint8_t _target_system = AP_SYS_ID;     // MAVLink System ID of the autopilot.
    uint8_t _target_component = AP_COMP_ID; // MAVLink Component ID of the autopilot.



    // Build 1st COMMAND_LONG / MAV_CMD_SET_MESSAGE_INTERVAL message.
    // components of the MAVLink COMMAND_LONG message - https://mavlink.io/en/messages/common.html#COMMAND_LONG
    uint16_t _cl_command      = MAV_CMD_SET_MESSAGE_INTERVAL; // https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL
    uint8_t _cl_confirmation  = 0; // always 0 for first transmission, then incremented. https://mavlink.io/en/services/command.html#COMMAND_LONG
    float   _cl_param1 = MAVLINK_MSG_ID_POWER_STATUS;   // MAVLink Message ID
    float   _cl_param2 = -1; // Interval (uS) between messages e.g. 1sec interval = 1000000uS or -1 to disable
    float   _cl_param3 = 0; // Not used, so set to zero.
    float   _cl_param4 = 0; // Not used, so set to zero.
    float   _cl_param5 = 0; // Not used, so set to zero.
    float   _cl_param6 = 0; // Not used, so set to zero.
    float   _cl_param7 = 0; // Not used, so set to zero.

    // Initialize the required buffers
    mavlink_message_t msg;
    uint8_t buf[MAVLINK_MAX_PACKET_LEN];



    // UnRequest MAVLINK_MSG_ID_RC_CHANNELS_RAW (#35) - https://mavlink.io/en/messages/common.html#RC_CHANNELS_RAW
    _cl_param1 = MAVLINK_MSG_ID_RC_CHANNELS_RAW;   // MAVLink Message ID
    mavlink_msg_command_long_pack(_system_id, _component_id, &msg, _target_system, _target_component, _cl_command, _cl_confirmation, _cl_param1, _cl_param2, _cl_param3, _cl_param4, _cl_param5, _cl_param6, _cl_param7);
    len = mavlink_msg_to_send_buffer(buf, &msg); // put message into our send buffer and also get it's size in bytes.
    Serial1.write(buf, len); //Write data to serial port byte by byte.
    delay(500);

    // UnRequest MAVLINK_MSG_ID_SERVO_OUTPUT_RAW (#36) - https://mavlink.io/en/messages/common.html#SERVO_OUTPUT_RAW
    _cl_param1 = MAVLINK_MSG_ID_SERVO_OUTPUT_RAW;   // MAVLink Message ID
    mavlink_msg_command_long_pack(_system_id, _component_id, &msg, _target_system, _target_component, _cl_command, _cl_confirmation, _cl_param1, _cl_param2, _cl_param3, _cl_param4, _cl_param5, _cl_param6, _cl_param7);
    len = mavlink_msg_to_send_buffer(buf, &msg); // put message into our send buffer and also get it's size in bytes.
    Serial1.write(buf, len); //Write data to serial port byte by byte.
    delay(500);

    // UnRequest MAVLINK_MSG_ID_RC_CHANNELS (#65) - https://mavlink.io/en/messages/common.html#RC_CHANNELS
    _cl_param1 = MAVLINK_MSG_ID_RC_CHANNELS;   // MAVLink Message ID
    mavlink_msg_command_long_pack(_system_id, _component_id, &msg, _target_system, _target_component, _cl_command, _cl_confirmation, _cl_param1, _cl_param2, _cl_param3, _cl_param4, _cl_param5, _cl_param6, _cl_param7);
    len = mavlink_msg_to_send_buffer(buf, &msg); // put message into our send buffer and also get it's size in bytes.
    Serial1.write(buf, len); //Write data to serial port byte by byte.
    delay(500);

Now only HEARTBEATS are appearing and that’s ok, I can deal with them.

16:17:03.495 > case_rx_from_autopilot() - ATTEMPTING RX - starting at Millis:439390
16:17:03.496 > mavlink_receive() - MSG RCVD - magic:254 seq:238 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:03.496 > mavlink_receive() - MSG RCVD - magic:254 seq:11 src sysid:255 src compid:190 msgid#:0=HEARTBEAT Type:6 Autopilot:8 BaseMode:0 CustomMode/Flightmode:0 SystemStatus:0 MavlinkVersion:3
16:17:03.496 > mavlink_receive() - MSG RCVD - magic:254 seq:42 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
16:17:03.496 > mavlink_receive() - MSG RCVD - magic:254 seq:43 src sysid:1 src compid:1 msgid#:22=PARAM_VALUE param_id:STAT_RUNTIME param_value:6786463.00 param_type:6 param_count893 param_index65535
16:17:03.497 > mavlink_receive() - MSG RCVD - magic:254 seq:240 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:03.497 > mavlink_receive() - MSG RCVD - magic:254 seq:13 src sysid:255 src compid:190 msgid#:0=HEARTBEAT Type:6 Autopilot:8 BaseMode:0 CustomMode/Flightmode:0 SystemStatus:0 MavlinkVersion:3
16:17:03.498 > mavlink_receive() - MSG RCVD - magic:254 seq:44 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
16:17:03.498 > mavlink_receive() - MSG RCVD - magic:254 seq:242 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:03.499 > mavlink_receive() - MSG RCVD - magic:254 seq:15 src sysid:255 src compid:190 msgid#:0=HEARTBEAT Type:6 Autopilot:8 BaseMode:0 CustomMode/Flightmode:0 SystemStatus:0 MavlinkVersion:3
16:17:03.499 > mavlink_receive() - MSG RCVD - magic:254 seq:45 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
16:17:03.501 > mavlink_receive() - MSG RCVD - magic:254 seq:244 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:03.501 > mavlink_receive() - MSG RCVD - magic:254 seq:17 src sysid:255 src compid:190 msgid#:0=HEARTBEAT Type:6 Autopilot:8 BaseMode:0 CustomMode/Flightmode:0 SystemStatus:0 MavlinkVersion:3
16:17:03.501 > mavlink_receive() - MSG RCVD - magic:254 seq:46 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
16:17:03.502 > mavlink_receive() - MSG RCVD - magic:254 seq:246 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:03.561 > mavlink_receive() - MSG RCVD - magic:254 seq:98 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:04.024 > mavlink_receive() - MSG RCVD - magic:254 seq:164 src sysid:255 src compid:190 msgid#:0=HEARTBEAT Type:6 Autopilot:8 BaseMode:0 CustomMode/Flightmode:0 SystemStatus:0 MavlinkVersion:3
16:17:04.321 > mavlink_receive() - MSG RCVD - magic:254 seq:120 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
16:17:04.561 > mavlink_receive() - MSG RCVD - magic:254 seq:100 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:04.825 > mavlink_receive() - MSG RCVD - magic:254 seq:166 src sysid:255 src compid:190 msgid#:0=HEARTBEAT Type:6 Autopilot:8 BaseMode:0 CustomMode/Flightmode:0 SystemStatus:0 MavlinkVersion:3
16:17:05.322 > mavlink_receive() - MSG RCVD - magic:254 seq:121 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
16:17:05.561 > mavlink_receive() - MSG RCVD - magic:254 seq:102 src sysid:1 src compid:0 msgid#:0=HEARTBEAT Type:27 Autopilot:8 BaseMode:4 CustomMode/Flightmode:0 SystemStatus:4 MavlinkVersion:3
16:17:05.866 > mavlink_receive() - MSG RCVD - magic:254 seq:168 src sysid:255 src compid:190 msgid#:0=HEARTBEAT Type:6 Autopilot:8 BaseMode:0 CustomMode/Flightmode:0 SystemStatus:0 MavlinkVersion:3
16:17:06.341 > mavlink_receive() - MSG RCVD - magic:254 seq:122 src sysid:1 src compid:1 msgid#:0=HEARTBEAT Type:11 Autopilot:3 BaseMode:1 CustomMode/Flightmode:4 SystemStatus:5 MavlinkVersion:3
16:17:06.490 > case_rx_from_autopilot() - Done RX - ending at Millis:442390

Cheers.

All I can tell you is that I can not reproduce your problem with ArduCopter 4.1.3.
I have all my SR*_ Parameters set to 0 and I only get the messages that I request.

But if you are also using 4.1.3. Then go ahead and open a bug report explaining what hardware and software versions you are using.