Bosch BMV080 - Can't keep stable

Hi all,

We’re having real problems trying to get our Bosch BMV080 working consistently with our raspberry pi for a proof of concept. Below is a summary, any advice or help would be very much appreciated!

Hardware Setup

  • Device: Raspberry Pi running Linux 6.12.25+rpt-rpi-2712
  • Sensor: Bosch BMV080 particulate matter sensor
  • Connection: I2C bus 1, address 0x57
  • Sensor Detection: Successfully detected with sudo i2cdetect -y 1

Software Components

  1. BMV080 SDK: Version 24.1.0.0dd757a809c.0
    - Binary location: /home/j501/ScanNeo/AQMonitor/api_examples/raspberry_pi/bin/armv8-a/aarch64-linux-gnugcc/release_i2c/bmv080_example
    - Compiled for ARM64 architecture
    - Runs with command: ./bmv080_example i2c
  2. Flask API Service: Running on port 8082
    - Endpoint: http://192.168.1.154:8082/air-quality
    - Attempts to read sensor every 10 seconds
    - Returns 503 when sensor fails

Error Codes Encountered

  1. Error 133: “Opening BMV080 sensor unit failed with BMV080 status 133”
    - Most common error
    - Occurs during sensor initialization
    - Indicates communication or power issue
  2. Error 114: “Opening BMV080 sensor unit failed with BMV080 status 114”
    - Occasionally appears instead of 133
    - Also an initialization failure
  3. Error Sequence When Partially Working:
    - Error 211: Data fetch failure
    - Error 403: Data fetch failure
    - Error 214: Repeated data fetch failures
    - These occur AFTER successful initialization but during continuous reading

Observed Behavior

  1. Intermittent Operation:
    - Sometimes initializes successfully (shows “Sensor ID: D0LP19152509”)
    - Provides 3-5 valid readings (PM1, PM2.5, PM10 values)
    - Then fails with errors 211, 403, 214
  2. Current State:
    - Consistently failing with error 133
    - Cannot initialize sensor
    - I2C device still visible but not responding properly

Do you have any other board to cross-check the sensor? Like Arduino or ESP? If yes, test the BMV080 with that board and see if the issue persists.