Two photos of autonomous surface vehicles running navigator-cpp: one on a pier with visitors, and three on the water.

navigator-cpp is a pure C++ hardware interface library for the Blue Robotics Navigator flight controller. It replaces the navigator-rs / navigator-lib stack with direct Linux I2C, SPI and GPIO access, and handles Navigator V1 and V2, and Raspberry Pi 4 and Pi 5, by detecting them at runtime.

Supported devices

ChipInterfaceFunction
ICM-20602 / ICM-20689SPI6-axis IMU (accelerometer and gyroscope)
AK09915I2C3-axis magnetometer
MMC5983MASPI3-axis magnetometer
BMP280 (V1) / BMP390 (V2)I2CBarometer and temperature
ADS1115I2C4-channel 16-bit ADC
PCA9685I2C16-channel PWM
SK6812SPIRGB/RGBW LED strip
SBUSUARTRC receiver input (16 channels)
GPIOGPIOUser LEDs and leak detector

On macOS and Linux development machines it compiles with platform stubs, so code that uses it builds and links off the vehicle.

Getting it

MIT license. Source on GitHub.

People

Lead: Raymond Turrisi
Contributor: Jeremy Wenger

Related

← Back to Software