This documentation page is for detailed information about the services and pages in the BlueOS web interface. For a higher level list and direct comparison of features see the Overview instead.
The default BlueOS interface is simplified, and shows only the major tools that most people are likely to find useful. Full functionality is available via "Pirate Mode", which can be enabled from the header bar. Note that Pirate Mode is advanced/development mode, and should be used with care.
This documentation by default shows the full functionality interface, to provide an overview of all functionality instead of a limited subset, but if you're only interested in the basic functionality you can click the button below:
For clarity of this documentation, any pages that are extended by (or only available in) Pirate Mode are shown in dark mode, and described with grey text.
Based On: blueos-frontend | Port:80
When you first open BlueOS, you'll see a window like the following:
On the left side of the header there is space for widgets, which can be accessed by right clicking and selecting the desired widgets to display. Widgets can be reordered by clicking and dragging.
There are currently widgets available for displaying the CPU and Disk (storage) usage as percentages, which are periodically updated during operation.
On the right side of the header you'll find:
Based On: Cable Guy | Port:9090
For each interface, choose between:
It is possible to have multiple connections per interface type.
Based On: Wifi Manager | Port:9000
BlueOS (******)
by default, where the asterisk
field varies for each system
blueosap
wlan0
should be at the top (for internet via wifi)eth0
to the top if using internet passthrough via the tetherThe burger menu at the top left of the header opens up the sidebar, for conveniently accessing available pages, tools, and services. When the page is wide enough, the sidebar automatically stays open.
(New in 1.2)
Submit feedback about BlueOS via:
The "Dashboard" page provides an overview of the available pages. In future it will provide an overview of the vehicle state and main configuration options. Click the BlueOS logo to return to the dashboard at any point.
Pages are sorted alphabetically.
Based On: ArduPilot Manager | Port:8000
The Autopilot Firmware page provides basic information about the active autopilot, along with options to:
Stable-4.1.1
Systems with a Navigator flight controller also have the option to configure serial-compatible ports from the onboard computer (including USB ports) as serial ports accessible to the autopilot.
New in 1.1
The Autopilot Parameters page allows checking and changing the autopilot's configuration.
The Available Services page provides developer access to the underlying http server interfaces of the services upon which BlueOS is based. Each service is listed with
and where relevant
The individual services are documented in the development documentation.
Based On: Bag of Holding | Port:9101
The Bag Editor is a helper service for advanced users, which allows modifying the database used to handle frontend interface changes.
Based On: Version Chooser | Port:8081
The Version Chooser is a major component in the robust backbone of BlueOS. It runs independently from the main interface, and is monitored such that if it somehow fails a backup version will be run in its place.
Based On: File Browser | Port:7777
The File Browser allows viewing, editing, downloading, and uploading BlueOS files.
Vehicles using a Navigator flight controller board with a recent ArduPilot firmware can access Lua
drivers and scripts at configs/ardupilot/firmware/scripts
. (New in 1.2)
Based On: UAV LogViewer
.bin
logs from Linux-based autopilots
BRD_RTC_TYPES
autopilot parameter to include MAVLINK_SYSTEM_TIME
so the filenames use timestampsLOG_BACKEND_TYPE
autopilot parameter is set to MAVLink
Based On: ArduPilot Manager | Port:8000
The MAVLink Endpoints manager allows configuring the serial, UDP, and TCP endpoints for MAVLink-based services and programs to access.
(New in 1.2)
127.0.0.1
0.0.0.0
192.168.2.2
may also work192.168.2.1
for connecting to a UDP server on the Control Station ComputerBased On: MAVLink2Rest | Port:6040
The MAVLink Inspector provides real-time access to the MAVLink messages being sent to the topside computer. It is possible to
Future improvements will include plotting and comparisons, along with more powerful filtering options.
For tracking the latest value of a single message type, use the "watcher"
functionality of the MAVLink2REST
service (access via the
Available Services page).
Based On: Pardal | Port:9120
The Local Network Test measures real-time latency between BlueOS and the surface computer, and allows checking the upload and download speeds between them.
A plot is provided of each test, to help diagnose intermittent issues.
The Internet Speed Test allows measuring the latency and upload and download speeds between BlueOS and its internet connection (if one is available).
Based On: NMEA Injector | Port:2748
Based On: Ping Service | Port:9110
New in 1.1
The Ping Sonar Devices page shows any detected sonars from the Ping family, including ethernet-configured Ping360s that are visible on the local network (e.g. via an Ethernet Switch).
DISTANCE_SENSOR
messages to the autopilot, for viewing in the Control Station Software and
logging as part of the telemetry streamBased On: Bridget | Port:27353
The Serial Bridges page allows creating high performance links between serial devices that are connected to the onboard computer, to a UDP port.
Replaces the Routing functionality from the old Companion Software.
For making connections to the autopilot, see MAVLink Endpoints.
0.0.0.0
, which creates a UDP server that waits
for a UDP client on the control computer to connect to it
127.0.0.1
, which creates a
local serverBased On: System Information | Port:6030
The System Information page provides useful information about the processes, network configuration, and computer system BlueOS is running on. It can be useful for troubleshooting, and finding if a particular program is using excessive resources.
Update buttons are provided if the device is not running the latest stable versions of the Raspberry Pi firmware or USB controller.
Based On: ttyd | Port:8088
The Terminal provides
CTRL+b "
) and vertically (CTRL+b %
), and use cursor
to resize the panelsCTRL+b s
)
red-pill
utility
exit
command, or pressing CTRL+d
docker image list
docker ps -a
-u
argument (e.g. red-pill -u myusername
) (New in 1.2)
New in 1.1
The Vehicle Setup page provides an overview of the vehicle, including its sensors and peripherals. The 3D model can be rotated, and can be panned by clicking and dragging while holding SHIFT. The camera icon can be used to capture a screenshot of the current view of the model, with a transparent background.
It is possible to override the displayed 3D model by placing an appropriate .glb
file at userdata/modeloverrides/<vehicle_type>/<vehicle_frame>.glb
(e.g.
userdata/modeloverrides/sub/VECTORED_6DOF.glb
), or userdata/modeloverrides/ALL.glb
.
Documentation for the recommended process for creating a .glb
file from a vehicle
model is coming soon.
In future this page will also allow
The PWM Outputs tab allows configuring the servo function mappings (for motors, lights, camera tilt, etc), as well as manually testing the motors, and an automated check to detect motors that spin backwards. Relevant motors can be set to run on reversed control signals, so they spin in the expected direction.
The Configure tab provides configuration and calibration options for the vehicle sensors and peripherals,
including failsafes, and reverting parameters to their defaults.
New in 1.3
Based On: MAVLink Camera Manager | Port:6020
5600
5601
udp://<surface-IP>:<port>
udp://192.168.2.1:5602
+
symbol during stream configuration
(New in 1.1)
(New in 1.1)
New in 1.1
Based On: Kraken | Port:9134
The Extensions Manager is in charge of fetching, installing, updating, and managing Extensions.
The Store tab shows the available extensions, with a default filter which excludes the development example extensions.
Clicking an extension card displays the developer information, default application settings and permissions, a description / basic usage instructions, and a dropdown to select which version of the extension to install (or uninstall):
By default, the store searches the BlueOS Extensions Repository for available extensions, but it is also possible to specify your own external collections of extensions:
The Installed tab shows the resource usage of the installed extensions, and allows configuring them, checking their logs, and restarting or disabling them:
The blue "+" button in the bottom right corner allows installing custom extensions as relevant.
The "Edit" button on installed extension listings allows changing to alternative/development versions by setting the docker tag.
avahi-discover
on the terminal to see if the avahi service is running
It is possible to customise the styling of the BlueOS interface by adding a
theme_style.css
file at userdata/styles/
in the File Browser.
The File Browser can also be used to modify the file, in which case the styles
are updated at the next page refresh after the file is saved. The save button is
in the top right corner.
CSS is commonly used for styling HTML webpages, and has an extensive set of features available. For the purposes of adjusting the BlueOS theme, the most important thing to understand is how to specify colors. It can be helpful to use tools like colorhexa when choosing a palette of colors, including for checking accessibility for various color vision deficiencies.
For reference, here is an example with most of the main BlueOS colors changed, together with the theme file that created it:
:root {
--v-primary-base: #CAB1E5 !important; /* sidebar highlights, submit buttons */
--v-info-base: #BA55E5 !important; /* info boxes (often same as primary base) */
--v-warning-base: #EDD1E5 !important; /* warnings and skip buttons */
--v-error-base: #AC1D1C !important; /* notifications, pirate icons, cancel/delete buttons */
--v-anchor-base: #5A11ED !important; /* hyperlinks */
}
/* light theme background, light to dark */
div.light-background {
background-color: #BAFF1E !important;
background-image: linear-gradient(160deg, #BAFF1E 0%, #5CA1E5 100%) !important;
}
/* dark theme background, light to dark */
div.dark-background {
background-color: #5EABED !important;
background-image: linear-gradient(160deg, #5EABED 0%, #BA55E5 100%) !important;
}
/* light theme header bar background, light to dark, translucent */
header.light-background-glass {
background-color: #DEADBA55 !important; /* fallback if gradient not available */
background-image: linear-gradient(160deg, #DEADBA88 0%, #5111CA88 100%) !important;
backdrop-filter: blur(4.5px) !important;
-webkit-backdrop-filter: blur(10px) !important;
}
/* dark theme header bar background, light to dark, translucent */
header.dark-background-glass {
background-color: #5111CA55 !important; /* fallback if gradient not available */
background-image: linear-gradient(160deg, #5111CA88 0%, #0B5E5588 100%) !important;
backdrop-filter: blur(4.5px) !important;
-webkit-backdrop-filter: blur(10px) !important;
}