Skip to content

Improving BMP388 accuracy on BerryGPSIMU v4 to make a variometer #32

@YvainP

Description

@YvainP

I’m developing a variometer using the BerryGPSIMU v4, which includes the BMP388 sensor. According to its documentation, the BMP388 has a baseline precision of around 50 Pa, which I can reproduce. However, for a variometer, I need more precise and stable altitude and pressure.

I have found two sensor’s features to do that :

  • IIR filter (0x1F): smooths the output signal to reduce spikes.
  • Oversampling (0x1C): reduces noise and improves measurement precision.

What I’ve tried

  1. IIR Filter: Successfully modified in bmp388.py:

self._write_byte(0x1F, 0x02)

  1. Oversampling (OSR): Attempted to set with:

self._write_byte(0x1C, 0x02)

But this does not work as expected :

  • Output values can be completely wrong (altitude jumps to 1800 m instead of ~700 m).
  • Or the values are coherent but never change (stuck at the same reading).

Tried modifying oversampling for:

  • Pressure only
  • Temperature only
  • Both

Even then any oversampling value above 0 produces either wrong readings or stale constant values, while the IIR filter works.
I’m reaching out for help on this issue. Any suggestions to fix the OSR problem, or ways to improve accuracy would be greatly appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions