Hi all,
I’m working on an air quality sensing unit built around the SparkFun BMV080, and I’m running into a frustrating issue: the sensor reads as “obstructed” whenever the unit is shaken, but works flawlessly when stationary. The unit is as an early stage wearable, but can’t cope in the field after doing well in indoor testing.
Hardware Setup:
- MCU : ESP32-WROOM
- Sensors : SparkFun BMV080 (using standard SparkFun SDK), BME280
- Other Components : LED lights, SD card, toggle switch
- Power : 4000 mAh LiPo battery with a 3.3V voltage regulator
Enclosure Details:
- The BMV080 is inside a snug friction-fit matte black PLA casing, printed with 2mm thick walls and a removable lid 20mm above the laser sensor.
- Air vents are placed on the side of the lid. The top is fully enclosed — there is no direct opening above the sensor aperture.
- The BMV housing is then mounted into a larger internal compartment that contains the rest of the electronics, separated by a physical divider.
- The internal structure is tight and secure, and nothing rattles when the unit is moved.
- The BMV is in the white housing provided by sparkfun
Symptoms:
- In a dark/light room, the sensor works as expected while stationary.
- As soon as I shake the unit (gently, to simulate field movement), it immediately returns “obstructed”.
- Once movement stops, it returns to normal values quickly- about 4 seconds later.
- I’ve set the device to report 000 when the sensor is obstructed, to prevent corrupt values in the database.
Data Handling:
- The unit samples data every 2 seconds.
- I’ve developed a custom app that connects via BLE and reads data from the unit in real time.
- The obstruction only affects the BMV080 — other components (BME280, LEDs, SD logging) continue working properly during motion.
My Questions:
- Is the BMV080 inherently sensitive to vibration or micro-movements? Could the internal motion of particles or sensor optics during movement be triggering a false obstruction?
- Could my enclosure design be affecting airflow or light detection? Should I consider opening up the top of the housing or baffling it differently?
- Is this expected behavior when sensors are used in motion, or could this indicate a fault or edge-case limitation of the hardware?
- Are there any SDK flags or parameters to adjust sensitivity thresholds for obstruction detection?