Navigator Library
This library serves as the entry point for applications that want to use Navigator with Python or C++.
- For setup on a Raspberry Pi computer, please read the instructions.
- 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.
🌊 Instructions for BlueOS (Recommended)
- 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
- 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
- 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
- Install the Raspberry Pi Imager and flash the image
Note: You can also automatically setup the ssh, user, hostname and wi-fi settings.
- 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.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bluerobotics_navigator-0.2.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARMv7l | Details |
| bluerobotics_navigator-0.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64 | Details |
Total release size: 817.3 kB
Security for bluerobotics-navigator 0.2.0
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.
Attestation for bluerobotics_navigator-0.2.0-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 Sep 18, 2026.
Transparency logA 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.