Skip to main content

Navigator Library

Actions PyPI

This library serves as the entry point for applications that want to use Navigator with Python or C++.

  1. For setup on a Raspberry Pi computer, please read the instructions.
  2. For Rust 🦀, please check the navigator-rs library.

Features

  • LEDs (User and RGB) access
  • PWM (Pulse Width Modulation) control
  • ADC (Analog Digital Converter) reading
  • Magnetometer / Accelerometer / Gyroscope sampling
  • Temperature reading
  • Pressure estimation

📖 Documentation:

Check the examples folder for further information and guide.

🐍 Python:

Install the library.

pip install bluerobotics_navigator

With that, you'll bee able to run the examples, or creating your own:

#!/usr/bin/env python

import bluerobotics_navigator as navigator

print("Initializing navigator module.")
navigator.init()

print("Setting led on!")
navigator.set_led(navigator.UserLed.Led1, True)

print(f"Temperature: {navigator.read_temp()}")
print(f"Pressure: {navigator.read_pressure()}")

print(
    f"Data ADC Channels: {navigator.read_adc_all().channel}"
)

print(f"Data ADC Channel: 1 = {navigator.read_adc(navigator.AdcChannel.Ch1)}")

data = navigator.read_mag()
print(f"Magnetic field: X = {data.x}, Y = {data.y}, Z = {data.z}")

🛠️ C++:

Follow our example folder as a template to create your own project. To compile and run the examples, you can run:

cd examples/cpp
cmake -B build -DCMAKE_BUILD_TYPE=Debug && cmake --build build --config Debug --parallel
# Run one of the examples
./build/simple
./build/rainbow

For an example of C++ code, you can check the following code:

#include "bindings.h"
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main() {
  printf("Initiating navigator module.\n");
  init();

  printf("Setting led on!\n");
  set_led(UserLed::Led1, true);

  printf("Temperature: %f\n", read_temp());
  printf("Pressure: %f\n", read_pressure());

  ADCData adc = read_adc_all();
  printf("Reading ADC Channels: 1 = %f, 2 = %f, 3 = %f, 4 = %f\n",
         adc.channel[0], adc.channel[1], adc.channel[2], adc.channel[3]);
  printf("Data ADC Channels: 1 = %f\n", read_adc(AdcChannel::Ch1));

  AxisData mag = read_mag();
  printf("Magnetic field: X = %f, Y = %f, Z = %f\n", mag.x, mag.y, mag.z);

  return 0;
}

Note: The CMakeLists_Standalone.txt is a self-contained CMake project file example. Users can use it as a template to create their standalone projects based on the navigator-lib.

🏗️ Supported Architectures

Currently, the library supports armv7 and aarch64 architectures, which are the official defaults for BlueOS. The library also provides C++ .so files for both gnu and musl.

For more detailed information, including installation instructions, schematics, and hardware specifications, please refer to the navigator hardware setup guide.

  1. Open the Autopilot Firmware page, enable Pirate Mode, and "change board" to SITL
    • This stops the autopilot firmware from trying to operate while the WebAssistant is in use
  2. Reboot the vehicle computer, and wait for the interface to re-connect

Note: Since this library access the Navigator hardware, it can´t run in parallel with ArduPilot. If you are running ArduPilot, be sure to disable it or set the board as SITL (Software Simulation) before running Navigator WebAssistant

🍒 Instructions for Raspberry Pi OS

  1. Download the Raspberry OS image (32 or 64 bits)

Note: To use a kernel that matches with the BlueOS and avoid incompatilities, please use: 32 Bits: raspios_lite_armhf-2023-02-22 64 Bits: raspios_lite_arm64-2023-02-22

  1. Install the Raspberry Pi Imager and flash the image

Note: You can also automatically setup the ssh, user, hostname and wi-fi settings.

  1. Execute the following command to setup the overlay required for Navigator ( I2C, SPI, GPIOs & others)
sudo su -c 'curl -fsSL https://raw.githubusercontent.com/bluerobotics/blueos-docker/master/install/boards/configure_board.sh | bash'
sudo reboot

Metadata

Release files for bluerobotics-navigator 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for bluerobotics-navigator 0.2.1
File Interpreter ABI Platform
bluerobotics_navigator-0.2.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.9 abi3 Linux glibc 2.17+ ARMv7l Details
bluerobotics_navigator-0.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details

Total release size: 817.4 kB

Release files / bluerobotics_navigator-0.2.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL bluerobotics_navigator-0.2.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 408.2 kB
Tags CPython 3.9 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
5d282dddccd52e17ecbd9e05d715b45f2f527a120378306db54656932cc19fad
BLAKE2b-256 checksum
How to use checksums
b99a8f209d622aca8ce987f41c1bb67b75eeb4ccc232f41947fe6bb2949fef89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / bluerobotics_navigator-0.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL bluerobotics_navigator-0.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 409.2 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
3ca47c0fe01f51178af134f2bd0b0f5ad98c9a8d983fbffd29a7ea2998c59e36
BLAKE2b-256 checksum
How to use checksums
95051f81bbc163dd20f549ef2a4502f8738c1ec31919753f0df79030a6d121b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for bluerobotics-navigator 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bluerobotics_navigator-0.2.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page