Follow-up to the thread from Nov 2025: Time syncronisation mechanisms in BlueOs
I want to add a second Linux-based device to my BlueROV 2. As the entire system is battery-powered and there is no battery-backed RTC, both computers may have the incorrect time upon start-up. There is currently no service in BlueOS that would collect the time from available sources, verify it and make it available to other devices on the local network. The ‘commander’ service includes a ‘set_time’ endpoint; however, this has limited functionality and is intended for setting the time, not for acting as a server for other devices. Would you be interested in an extension (or a BlueOS service) that would act as a time source for the entire vehicle network?
The service could:
- act as a local NTP server;
- provide access to its status and configuration via an API;
- prevent time rollbacks and large, uncontrolled jumps (this appears to be the idea behind the issue 3339);
- control and synchronise the companion computer’s clock;
- utilise RTC, GNSS/PPS, network servers and time from MAVLink devices;
- receive time from the operator or another trusted device;
- compare sources and assess their reliability.
It seems to me that chronyd would work well as the core component, as it can maintain a virtual NTP clock, compare multiple sources and serve clients without immediately changing the system clock. Is anyone working on this issue, or do you have any other ideas for solving it? If I get the go-ahead, I’ll try to put together a proof of concept for such a tool.
Related discussions and issues:
- Time syncronisation mechanisms in BlueOs
- GNSS time sync on the blueboat PI
- PPS connection to pi through navigator
- Realtime clock for Raspberry Pi 4 (or Navigator)
- System time is not synchronised with accurate time sources via autopilot · Issue #3652 · bluerobotics/BlueOS · GitHub
- fake-hwclock needs to be called periodically · Issue #3339 · bluerobotics/BlueOS · GitHub
- core: backend: "Black Box" / Odometry for Vehicle hardware/software tracking · Issue #3061 · bluerobotics/BlueOS · GitHub