I updated one of my ROVs using the update button in the web UI, but I still didn’t have the Ping1D distance showing in QGC. I looked at ping1d_mavlink_driver.py
and it attempts to do a firmware check by making a GET request to a path served by the mavlink2rest
binary, but on this ROV the URL always returns 404, which causes the Python code to always spit out:
could not read firmware version, retrying in 5 seconds...
I commented out the firmware version check in the Python script and bounced the pingmav
screen session and then the rangefinder value started showing up in QGC. I’m not sure why, but it looks like mavlink2rest
doesn’t have any valid data on this ROV.
Requesting http://192.168.2.2:4777/mavlink
returns {}
.
Hi Matt,
Are you running ArduSub 4.0 ?
Can you set your mavlink configuration to default (Check Reset MavProxy Options) ?
Make sure that SERIAL0_PROTOCOL parameter is configured to mavlink 2.
Ah, good call. SERIAL0_PROTOCOL was MAVLink1. I changed it to MAVLink2 and mavlink2rest
is working now. Is MAVLink1 the default or did I reset it somehow?
Edit: yes, I was on ArduSub 4.0.1
Hi Matt,
mavlink2rest sadly only works with mavlink 2, since mavlink 2 is our default mavlink version for ardusub since last year, and also for companion, that should not be a problem.
There are people that can have an old setup, and because of that we don’t change the existent parameters to avoid any stability problem during firmware updates. I don’t know if this is your case.