MAVLINK messages via Telemetry without sending Heartbeat

I am using an APM 2.6 that is connected to an Odroid USB via the Telemetry port (UART to USB). I am trying to get MAVLINK messages without the need to keep sending a HEARTBEAT message.

If I switch to USB connection (not telemetry) I get MAVLINK messages continuously without sending HEARTBEAT messages to the APM. I want to be able to do the same using the Telemetry port.

Is there any place in the firmware (ArduCopter) code that I can change? Or maybe just a parameter?
I am using 57600 Baud-Rate, I tried also 115200. And the USB cable is not connected.

You need to send a request data stream message to have ArduPilot send messages back to the connecting device.

Thanks for your answer.

Yes I know that, but I want to avoid having to send this data stream message. Is there any option to modify the firmware? or change some parameter? in order to continuously receive the mavlink messages?

SRX parameters can be set that are remembered after a reset. They align with the set all data streams calls

All SRX parameters have non-zero values. But still I need to send the heartbeat in order to keep receiving messages.
Maybe I am still doing something wrong?


Nope you don’t need to send the HB message, you just need to send the DataRequestMessages to get data sent on that port. Plane used to be ‘sticky’ on reboots. Copter was supposed to be fixed…

Unless the new routing implementation has some how forced the requirement. Sorry I don’t have the answer of the top if my head.

So let me see if I get everything right.
What you say is that I need to send only once the REQUEST_DATA_STREAM message. And then it should start sending the messages without a need to send the heartbeat? anything else I should do?

BTW, how do i know what is the target_system and target_component field?

Thanks again.

Target system by default is 1 and comp id is 1. When you send the request data stream message you specify the Hz update frequency, no HB messages are required to be sent

Hi @Asaf_Sarid

I am trying to do exactly the same.
Did you success with enable some types of data streaming and disable some types? I am getting too many packets and want just to get specific packets like MAV_DATA_STREAM_POSITION but I still get other types.
Do you keep sending heartbeats or not?
Can you help me with a complete example :slight_smile: ?