Heartbeat not detected on BlueOs


We are having a problem on BlueOs due to the heartbeat being not detected.

This picture shows MavLink data:

We are using the firmware STABLE 4.1.0 version, but we tried with some old versions and the problem continues.
BlueOS is version 1.0.1

The QGC works OK as we show in the next picture. We can even remote control it under water!
This problem started to be worrying when mission planer (program that we use to change the channel of the gripper-servo) detects the Mavlink stream, but doesn’t connect to it. After a while, it shows the following message: “no heartbeats packages received”, so we are pretty sure that is a Pixhawk failure but we don’t know why there are these heartbeat related issues.

Thanks for your help.

PS: as a new user, I couldn’t post more images. sry! :disappointed:

Hi @J.Garcia, welcome to the forum :slight_smile:

From your MAVLink2Rest screenshot it looks like the vehicle’s HEARTBEAT messages are being sent at 1Hz, and the last one was received 0.7 seconds before the screenshot, so that looks to be fine.

Can you explain a bit more about what you’re doing here?

We don’t support Mission Planner and it isn’t set up to work with subsea vehicles, but more generally if you’re already using QGC to control the vehicle then nothing else will be able to connect to the same port being used for the MAVLink endpoint, so it’s not surprising that Mission Planner then isn’t detecting a heartbeat (unless you’ve set up an endpoint for it without mentioning that). If QGC isn’t reporting heartbeat issues then it’s receiving them as expected, so there may not be an issue here at all :slight_smile:

Hi Eliot,

Thank you for your answer!

The QGC works but the problem is the BlueOS, that doesn’t detect the hearbeat. At the time I took that screenshot, despite the fact that as you said messages were being sent at 1Hz, the BlueOS indicated that heartbeat were not being detected as shown in the next picture:


The next picture shows another MavLink data that are repeated more often than the one in the screenshot of the previous post:

The message showed by the Heartbeat is the following:

Mensaje Heartbeat

Thank you again!

PS: we were using mission planner because (afaik) is one of the simplest way to change the channel used to control the gripper/servo. Also, we have a second ROV (dead at the moment due to a broken pixhawk) and when it worked we could connect to mission planner without issues. Also on this second ROV, blueOS detected the heartbeat. That is what especially bothers me, the fact that one ROV “catches” the heartbeat and the other one doesn’t (both are configured the same way except for a different IP address).

Does the heartbeat get re-detected if you refresh the page?

Given MAVLink2Rest there is also not receiving heartbeats from the camera service (component 100) or the ground station (component 190), that looks like either MAVLink2Rest or mavlink router are having issues - it doesn’t seem to be necessarily related to the flight controller. If QGC continues working while MAVLink2Rest is showing no updates then it’s presumably a MAVLink2Rest issue.

I’m not sure what you mean by “channel” here. Generally servos and grippers in ArduSub are controlled via joystick button functions, which can be changed/reassigned on QGC’s Joystick Setup page.

To the first question, when i refresh the page it looks like it catches the heartbeat for a brief moment (like half a second or so), then it loses the connection

To the second question, i use QGC no problem. But now now it shows 0Hz as frequency in mavlink2rest. As you said, there might be an issue with it

And to the third question, is a bit trickier: im basically an intern at my uni, and my “boss” wants to control the ROV using a program in dronekit. In dronekit, “channel” (my english is not perfect, so it might be wrong)5 is forward/backward, 6 is left/right… and he also want to control the gripper with the program, not by using a joystick, and the best solution I found is to assign the servo-gripper to a certain channel in mission planner

Also, i dont know if its useful, but i got a screenshot showing mavlink state as “critical”. It might be related to this, it might not. At least it sounds important :face_with_raised_eyebrow:

I hope you find the info useful :grinning:

That’s likely just while it’s trying to determine whether there’s a heartbeat available (they should come roughly every second), so probably the heartbeat is indeed not arriving to the webpage.

I brought this up internally and the current suspicion is there may be issues with using MissionPlanner and QGC at the same time, especially if they’re both presenting themselves as valid ground control stations, and using the same system and component IDs. Does the issue still occur when MissionPlanner is not opened?

Ahh I see - yes those are the RC Input Channels. I expect MissionPlanner is just specifying that a given SERVOn_FUNCTION parameter is set to one of the RCINx functions, so that inputs to channel x get passed through to servo n (where your gripper is)? If so, you should be able to do the same in QGroundControl’s Parameters page :slight_smile:

BlueOS does not currently check the contents of heartbeats, just whether or not they exist (although perhaps we should add such a check - it could be useful). There are a few different reasons the state can be critical, but some of the most common ones would be no ground station connected, no joystick connected, or sensors uncalibrated.

Were you getting live updates on the MAVLink Inspector while MAVLink2Rest was reporting no heartbeats, or was this just the messages that were received before the MAVLink2Rest disconnection?

Yes, It does. We are not using MissionPlanner and QGC at the same time. We use QGC as our usual control station and MissionPlanner just to set the RC Input Channels.

Yes, It is just as you say. Also (if I remember correctly) the gripper is connected to AUX 1 on the pixhawk (servo9 i think then). So i would change “servo9_function” to whatever RC Channel i want to use right?

PS: i just did that, tested it and it works! The program i wrote is a bit janky but it seems to work, so Mission Planner is no longer needed (at least i dont need it :stuck_out_tongue: ) . Thanks for your help!

Yes, we were receiving live updates on the MAVLink Inspector while MAVLink2Rest was reporting no hearbeats.