BlueOS
Overview
BlueOS is a modular, powerful and efficient platform for managing vehicles or robots via an onboard computer.

Quick
Some background information
The original companion software project (launched in 2015) had the initial goal of routing the underwater vehicle's video stream and communications to the surface computer and providing some basic configuration of these functions and the vehicle's firmware. While this simple scope was great for getting the project started, it also meant that new, complex features weren't designed in at the outset, making maintenance and feature development increasingly challenging.
Drawing on lessons learned from practical functionality and software architecture requirements, the design and development of BlueOS fully meets the requirements of our desired in-vehicle computer system, while retaining the potential to evolve into a true automotive operating system. At its core, BlueOS is a modular design, making it portable, stable for updates, and scalable.
We’re excited for the future of BlueOS and can’t wait for you to join us and try it out! 😄
What's in a BlueOS vehicle
BlueOS is designed to integrate seamlessly with the connectivity portion of the hardware and software stack involved in running and operating a vehicle.
Generally speaking, BlueOS (and its extensions) runs on the onboard computer and helps the underlying autopilot (on the flight control board) communicate with the operator (through the control station computer ), while also interfacing with and passing data from sensors that do not provide direct measurements of the vehicle's control state.
Here is an overview of the common components in the BlueOS-related software stack:

Project Principles and
As a core development team, we've been hard at work envisioning the future direction of in-vehicle computers and the capabilities they'll require. Our initial thinking has been refined into the following core concepts, many of which are incorporated into BlueOS today:
- The interface is simple by default, but powerful when needed - users have the power to change anything they want and customize the complete experience
- Designed to focus on what's important, improving user access to information and controls through user-friendly UI and UX
- Make complex tasks simpler and improve usability by reusing design patterns from other apps (based on Material UI guidelines )
- Advanced error handling and detection, making it clear to users and developers about any problems and how to fix them
- Simplify development, providing full access to our service API and modular development model
- Contributions are encouraged, the project is open source!
- Portable and flexible, you should be able to run it on a Raspberry Pi 3/4 or any SBC with a Linux OS. Contributions are welcome.
- Powerful functions, low CPU usage, and efficient operation of the entire system
- Developed on a solid foundation, key components or labor-intensive services are designed with state-of-the-art languages and features to ensure stability
Some of these principles will only become apparent in future releases, but the underlying software architecture and organization have been designed from the ground up to support and enable them.
What's new in BlueOS-1.4
This article summarizes the major changes and new features in BlueOS-1.4. Related features, where applicable, are also included in the Feature Comparison table. For detailed information on each change, see the full release notes.
Safety
- Added safe mode to avoid accidentally executing unsafe configurations when the vehicle is armed
Extensions
- Improved
register_servicespecification to better support cross-communication between extensions and remote access to extension interfaces
Title
Page
- Autopilot parameters
- Added parameter description override feature for custom parameter support
- MAVLink endpoints
- Added MAVLink Server as a routing alternative, with full endpoint logging and a detailed debug interface, as well as basic support for Zenoh communications
- Vehicle Settings
- Added Servo Limit slider on PWM Output page
- Added camera stand configuration options
- Added GPS heading to the compass page (when available)
- Added information tooltips to display underlying autopilot parameters
- Video Stream
- Added support for H265 encoded video streams
- Improved the robustness and intuitiveness of the camera manager interface
- BlueOS version
- Added Docker login options to reduce rate limits and improve private registry support
- System Information
- Added hardware board model information
Device/Hardware
- Added support for running Navigator flight controllers on 64-bit operating systems
- Added Raspberry Pi 5 support
- Added launch configuration options for SSH and system restrictions to improve support for alternative hardware and development setups
Connectivity
- Added a backup DHCP server to the Ethernet network interface that will automatically start if no other DHCP server is detected on the network
Data
- Added Sentry reports for user generated feedback
Feature
BlueOS has almost all the features of the old Companion version, plus several highly anticipated new features!
| feature | BlueOS 1.4 | BlueOS 1.3 | BlueOS 1.2 | BlueOS 1.1 | BlueOS 1.0 | companion |
|---|---|---|---|---|---|---|
| Onboard computer | → + Raspberry Pi 5 | → + Raspberry Pi CM4 | → | → + Other Linux-based SBC images coming soon | + Supports Raspberry Pi 3B / 3B+ / 4B + You can install from scratch using the installation script on any Linux computer. (Your hardware configuration may need to be modified) | Requires a Raspberry Pi 3B |
| Flight controller | → + 64-bit Navigator | → | → | → + Cube Orange + Pixhawk 6X | → + Navigator + Pixhawk 4 | Pixhawk |
| Video Stream | → + H265 support | → + RTSP variant | → | → + MPEG and YUYV encoding + Raspberry Pi camera support | + Easily manage multiple streams + UDP and RTSP output - audio streaming is not supported yet ( #990 ) | Select single camera streaming over UDP + Support for Raspberry Pi cameras ( except HQ cameras ) + Support for single audio stream over UDP |
| Wi-Fi Manager | → | → + External adapter support | → | → + Vehicle provides local hotspot | → + Connect to and manage multiple networks, just like a Wi-Fi manager on your phone or computer | Connect to a single network + supports visible and hidden networks |
| Ethernet Manager | → +Backup DHCP Server | → | → | → | Multiple static IP and DHCP configurations | Single DHCP (client or server) or static network |
| Notification system | → | → | → | → | Notifications about issues, new releases, and system status. | - |
| File Browser | → | → | → + folder for extended data and configuration files | → | → + Edit files from your browser | Downloading and uploading files |
| Log Browser | → | → | → | → | Download and manage logs from your browser + visualize and analyze logs from the built-in viewer | SSH/Terminal only |
| MAVLink Inspector | → | → | → | → + MAVLink2REST "Observer" option for individual message types | View and inspect MAVLink messages in real time from your browser | View the latest MAVLink messages via MAVLink2REST |
| Network testing | → + Real-time usage widget | → | → | → + Graph during speed test | → + Check real-time latency | Check upload and download speeds from the control station computer to the vehicle onboard computer |
| System Information | → + Plate Model | → | → | → | Provides all necessary information about hardware, operating system, running processes, CPU, memory, disk, network usage and status | Basic usage statistics, list of connected devices |
| Web terminal | → | → | → + Support for non-users pi | → | → + Using tmux session | Accessing the Linux Terminal from Your Browser |
| Autopilot firmware | → | → | → | → | → + General ArduPilot download; +Select the vehicle to update | stable, beta and devel publish, customize upload, and restore default parameters; ArduSub download only |
| Autopilot parameters | → + Custom description override | → + Intuitive ArduPilot calibration and configuration + PX4 parameter description | → | View, search, and edit ArduPilot vehicle parameters | - | - |
| Version Selector | → | → | → | → + Bootstrap Update | + Easily update/downgrade between BlueOS versions , including locally stored versions+ Includes stable, beta, and master versions* + Remains available even if the primary site goes down | Update Companion only to the latest stable version |
| MAVLink endpoints | → + MAVLink server routing + logging of all endpoints + detailed debug interface | → + Log messages to a file.tlog | → + Select route service | → | → | Create and manage UDP, TCP, and serial MAVLink endpoints |
| NMEA support | → | → | → | → | → | Send GPS location to vehicle |
| Ping Sonar Device | → | → | → | → + Detect Ping360 in Ethernet configuration + Can send Ping sonar range estimates via MAVLink | → + Devices can be hot-swapped - no MAVLink pipeline required | Ping Sonar and Ping360 can be connected to Ping Viewer + Ping Sonar distance estimates can be sent via MAVLink |
| Serial Bridge | → | → + Separate target and listener ports | → | → | → | Create and manage bridges between serial and UDP/TCP endpoints |
| Connected to water | → | → + UGPS and DVL integration | → | DVL-A50 and UGPS expansion available via Expansion Manager | DVL-A50 kit available | Supports UGPS and DVL-A50 |
| Extensions | → + Improved interface parameters | → | → | Custom extensions are available through the Extension Manager | → | Custom functionality requires forking the codebase |
Release
BlueOS provides multiple release types to help you find a balance between getting the latest fixes and improvements and ensuring software stability. The three release types are as follows:
- Stable: Officially tested and verified
- Stable version with long-term support
- Recommended for most users
- Beta: Rapid rolling release containing new features, bug fixes, and general improvements
- Released version after internal testing
- Predict the future
- Master: Fast-forward to the cutting-edge development version 🔥
- The latest features may not have been tested yet
- High volatility, generally not recommended
- For those who want to live in the future
When BlueOS is connected to the internet, a notification will be displayed if a newer or more stable version of the same version is available. For example, when using a stable version, only new stable versions will trigger a notification. If using a beta version, both newer beta and stable versions will trigger a notification. When running a master version, any newer version than the current version will trigger a new update notification. This helps ensure that any updates are as stable as or more stable than your current version, unless you intentionally change to a less stable version.
Notably, the version selector overall offers several significant improvements in robustness and versatility compared to the previous “latest update only” approach, which will benefit users and developers alike.
Community
Developer
See the development documentation.
Powered by Zola and Bluetheme Documentation under CC BY-NC-SA 4.0 sponsored by Blue Robotics Code under AGPLv3 / BlueOS Custom