{"id":47624967,"url":"https://github.com/bluerobotics/navigator-lib","last_synced_at":"2026-04-01T22:43:29.993Z","repository":{"id":169877768,"uuid":"629106516","full_name":"bluerobotics/navigator-lib","owner":"bluerobotics","description":"Library to unleash the hardware capabilities, packed with features and fuel for your coding adventures","archived":false,"fork":false,"pushed_at":"2025-10-20T20:31:04.000Z","size":68527,"stargazers_count":21,"open_issues_count":11,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-03T21:19:45.669Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.bluerobotics.com/navigator-lib/python/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bluerobotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-17T16:22:55.000Z","updated_at":"2025-12-12T21:36:59.000Z","dependencies_parsed_at":"2023-12-06T23:23:49.691Z","dependency_job_id":"3ba7a3e4-c422-4e64-8949-da533031253c","html_url":"https://github.com/bluerobotics/navigator-lib","commit_stats":null,"previous_names":["bluerobotics/navigator-lib"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/bluerobotics/navigator-lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerobotics%2Fnavigator-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerobotics%2Fnavigator-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerobotics%2Fnavigator-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerobotics%2Fnavigator-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bluerobotics","download_url":"https://codeload.github.com/bluerobotics/navigator-lib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerobotics%2Fnavigator-lib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-01T22:43:25.592Z","updated_at":"2026-04-01T22:43:29.988Z","avatar_url":"https://github.com/bluerobotics.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Navigator Library\n\n[![Actions](https://github.com/bluerobotics/navigator-lib/actions/workflows/action.yml/badge.svg)](https://github.com/bluerobotics/navigator-lib/actions/workflows/action.yml)\n[![PyPI](https://img.shields.io/pypi/v/bluerobotics_navigator)](https://pypi.org/project/bluerobotics-navigator/)\n\nThis library serves as the entry point for applications that want to use [Navigator](https://bluerobotics.com/store/comm-control-power/control/navigator/) with Python or C++.\n\n\u003e 1 . How-to setup the Raspberry Pi computer, please read [Instructions](#ocean-instructions-for-blueoshttpsdiscussblueroboticscomtblueos-official-release12024-recommended).\n  2 . For **Rust** 🦀, please check the [navigator-rs library](https://github.com/bluerobotics/navigator-rs).\n\n\n## Features\n- **LEDs (User and RGB) access**\n- **PWM (Pulse Width Modulation) control**\n- **ADC (Analog Digital Converter) reading**\n- **Magnetometer / Accelerometer / Gyroscope sampling**\n- **Temperature reading**\n- **Pressure estimation**\n\n# 📖 Documentation:\n* [Python](https://docs.bluerobotics.com/navigator-lib/python)\n* [C++ (WIP)](https://gist.github.com/patrickelectric/133bc706a7397479bfae6f57665bddeb)\n\nCheck the examples folder for further [information and guide](https://github.com/bluerobotics/navigator-lib/tree/master/examples).\n\n## 🐍 Python:\n\nInstall the library.\n\n```shell\npip install bluerobotics_navigator\n```\n\nWith that, you'll bee able to run the examples, or creating your own:\n\n```python\n#!/usr/bin/env python\n\nimport bluerobotics_navigator as navigator\n\nprint(\"Initializing navigator module.\")\nnavigator.init()\n\nprint(\"Setting led on!\")\nnavigator.set_led(navigator.UserLed.Led1, True)\n\nprint(f\"Temperature: {navigator.read_temp()}\")\nprint(f\"Pressure: {navigator.read_pressure()}\")\n\nprint(\n    f\"Data ADC Channels: {navigator.read_adc_all().channel}\"\n)\n\nprint(f\"Data ADC Channel: 1 = {navigator.read_adc(navigator.AdcChannel.Ch1)}\")\n\ndata = navigator.read_mag()\nprint(f\"Magnetic field: X = {data.x}, Y = {data.y}, Z = {data.z}\")\n```\n\n## 🛠️ C++:\n\nFollow our example folder as a template to create your own project. To compile and run the examples, you can run:\n\n```shell\ncd examples/cpp\ncmake -B build -DCMAKE_BUILD_TYPE=Debug \u0026\u0026 cmake --build build --config Debug --parallel\n# Run one of the examples\n./build/simple\n./build/rainbow\n```\n\nFor an example of C++ code, you can check the following code:\n\n```cpp\n#include \"bindings.h\"\n#include \u003cstdint.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n#include \u003cunistd.h\u003e\n\nint main() {\n  printf(\"Initiating navigator module.\\n\");\n  init();\n\n  printf(\"Setting led on!\\n\");\n  set_led(UserLed::Led1, true);\n\n  printf(\"Temperature: %f\\n\", read_temp());\n  printf(\"Pressure: %f\\n\", read_pressure());\n\n  ADCData adc = read_adc_all();\n  printf(\"Reading ADC Channels: 1 = %f, 2 = %f, 3 = %f, 4 = %f\\n\",\n         adc.channel[0], adc.channel[1], adc.channel[2], adc.channel[3]);\n  printf(\"Data ADC Channels: 1 = %f\\n\", read_adc(AdcChannel::Ch1));\n\n  AxisData mag = read_mag();\n  printf(\"Magnetic field: X = %f, Y = %f, Z = %f\\n\", mag.x, mag.y, mag.z);\n\n  return 0;\n}\n\n```\n\n\u003e 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.\n\n## 🏗️ Supported Architectures\n\nCurrently, the library supports **armv7** and **aarch64** architectures, which are the official defaults for [BlueOS](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.1/). The library also provides C++ `.so` files for both `gnu` and `musl`.\n\nFor more detailed information, including installation instructions, schematics, and hardware specifications, please refer to the [navigator hardware setup guide](https://bluerobotics.com/learn/navigator-hardware-setup/#introduction).\n\n##  :ocean: Instructions for [BlueOS](https://discuss.bluerobotics.com/t/blueos-official-release/12024) (Recommended)\n\n1. Open the [Autopilot Firmware](https://blueos.cloud/docs/blueos/latest/advanced-usage/#autopilot-firmware) page, enable [Pirate Mode](https://blueos.cloud/docs/blueos/latest/advanced-usage/#pirate-mode), and \"change board\" to SITL\n    - This stops the autopilot firmware from trying to operate while the WebAssistant is in use\n1. [Reboot](https://blueos.cloud/docs/blueos/latest/advanced-usage/#power) the vehicle computer, and wait for the interface to re-connect\n\u003e Note: Since this library access the Navigator hardware, it **can´t** run in parallel with ArduPilot.\nIf you are running ArduPilot, be sure to disable it or set the board as **SITL** (Software Simulation) before running Navigator WebAssistant\n\n##  :cherries: Instructions for [Raspberry Pi OS](https://www.raspberrypi.com/software/)\n\n1. Download the Raspberry OS image (32 or 64 bits)\n\u003e Note: To use a kernel that matches with the BlueOS and avoid incompatilities, please use:\n**32** Bits: [raspios_lite_armhf-2023-02-22](https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2023-02-22/)\n**64** Bits: [raspios_lite_arm64-2023-02-22](https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2023-02-22/)\n\n2. Install the [Raspberry Pi Imager](https://www.raspberrypi.com/software/) and flash the image\n\u003e Note: You can also automatically setup the ssh, user, hostname and wi-fi settings.\n\n3. Execute the following command to setup the overlay required for Navigator ( I2C, SPI, GPIOs \u0026 others)\n\n\n```shell\nsudo su -c 'curl -fsSL https://raw.githubusercontent.com/bluerobotics/blueos-docker/master/install/boards/configure_board.sh | bash'\nsudo reboot\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluerobotics%2Fnavigator-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluerobotics%2Fnavigator-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluerobotics%2Fnavigator-lib/lists"}