Not sure if this is a bug report or just recording an observed behavior for the community. As noted at the end, we have a work around, and understand that we are doing something weird.
This is with BlueOS 1.4.2 on a Pi5 in a BlueROV Heavy
For reasons, our ROV and piloting laptop are connected to a router. This router provides DHCP, and NAT to the internet. On the ROV network we are using the “standard” IP addresses (192.168.2.[12]) for the ROV and laptop, set as static leases in the DHCP server.
Relative to the standard static IP configuration, the only functional difference at present is that the ROV is provided with a gateway (192.168.2.254) providing internet connectivity even when submerged.
Wifi is generally not associated on the ROV.
During initial testing, the DHCP server was set to provide leases on a 5 minutes renewal period (too short!)
We observed intermittent dropouts from the ROV when in the water. Symptoms were stalling of the video feed and surprise disarms from the Heartbeat and/or Manual Control failsafe timers (3 seconds). We were unable to replicate the dropouts on deck.
These dropouts manifest in the ardupilot_manager logs as "Network unreachable` errors:
2026-01-28 15:41:46.223 | DEBUG | mavlink_proxy.AbstractRouter:_log_stdout:144 - Router: 2026-01-28T15:41:46.212523Z ERROR tokio-runtime-worker ThreadId(06) src/lib/drivers/udp/mod.rs:62: Failed to send message: Os { code: 101, kind: NetworkUnreachable, message: "Network unreachable" } client=192.168.2.1:14550
2026-01-28 15:41:46.234 | DEBUG | mavlink_proxy.AbstractRouter:_log_stdout:144 - Router: 2026-01-28T15:41:46.232643Z ERROR tokio-runtime-worker ThreadId(04) src/lib/drivers/udp/mod.rs:62: Failed to send message: Os { code: 101, kind: NetworkUnreachable, message: "Network unreachable" } client=192.168.2.1:6777
2026-01-28 15:41:46.244 | DEBUG | mavlink_proxy.AbstractRouter:_log_stdout:144 - Router: 2026-01-28T15:41:46.232855Z ERROR tokio-runtime-worker ThreadId(05) src/lib/drivers/udp/mod.rs:62: Failed to send message: Os { code: 101, kind: NetworkUnreachable, message: "Network unreachable" } client=192.168.2.1:14550
...
Analyzing these messages showed dropouts occuring every 5 minutes (end-to-beginning), with a variable duration from 1-6 seconds:
which explains why the failsafe disarms seemed random.
This lead us, eventually, to look at the DHCP server. Through experimentation (looking at router logs, changing the lease time) we determined dropouts correspond with lease renewal, so there is something happening to the network configuration on the pi at lease renewal which disrupts mavlink and video streaming.
As noted above, it seems to only occur when the vehicle is submerged, so it ? may be connected to wifi. However, we do not have wifi associated, and do not have the smartap enabled. In testing, the problem recurred when the wifi was associated (on the surface) before diving, when the wifi was explicitly not associated, and when the wifi was soft-blocked with rfkill.
From a practical point of view, we increased lease time on the ROV to 8 hours, it’s IP address does not need to be dynamic at runtime. But it’s a weird problem.
