bno_plot - Linux


bno_plot is a potent command-line tool for visualizing the data obtained from the Bosch BNO055 absolute orientation sensor. It presents a comprehensive analysis of the sensor data, encompassing all its modes of operation, including accelerometer, gyroscope, magnetometer, and fusion modes. By leveraging this tool, users can promptly diagnose sensor performance and delve into its data streams for further analysis.


bno_plot [options] [files]...


  -h, --help           Show this help message and exit
  -v, --verbose        Enable verbose output
  -d, --debug          Enable debug output
  -f, --format FORMAT  Set the output format: csv, json, yaml
  -o, --output FILE    Write output to a file
  -p, --plot           Plot the data interactively


  • -h, --help: Display the command’s help menu and exit.
  • -v, --verbose: Enable verbose output for detailed information during execution.
  • -d, --debug: Activate debug mode for thorough diagnostics and troubleshooting.
  • -f, --format FORMAT: Specify the output format from csv, json, and yaml. The default format is CSV for compatibility with other tools.
  • -o, --output FILE: Save the output data to a specified file instead of printing it to the console. The default output destination is the standard output.
  • -p, --plot: Enable interactive plotting of the data. This option opens a graphical window where the data is plotted in real-time for visual analysis.


Simple usage with verbose output:

bno_plot -v

Store data in a CSV file and disable verbose output:

bno_plot -f csv -o data.csv -v

Plot the data interactively:

bno_plot -p

Common Issues

  • Error: "Cannot open BNO055 device": Ensure that the BNO055 sensor is properly connected and powered. Check the device’s I2C address and verify that it matches the default or specified address in the command.
  • Insufficient data: If the command doesn’t display or plot enough data, it may indicate a slow data rate or a pause in the sensor’s data generation. Check the sensor’s configuration and ensure it’s actively sending data.


bno_plot can easily be integrated into scripts or combined with other commands for advanced data processing and analysis:

  • Log sensor data with timestamp:
bno_plot -f csv -o data.csv | awk '{print strftime("%Y-%m-%d %H:%M:%S"), $0}' > log.txt
  • Detect sensor orientation:
bno_plot -p | grep -q "Orientation:"

Related Commands

  • bno_configure: Configure the Bosch BNO055 sensor settings.
  • bno_calibrate: Calibrate the Bosch BNO055 sensor.
  • bno_status: Check the status of the Bosch BNO055 sensor.
  • i2cdetect: Scan for I2C devices on the system bus, including the Bosch BNO055 sensor.