Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    Using BMP388 for floor detection of moving people/equipment

    Using BMP388 for floor detection of moving people/equipment


    Hello Bosch Community,

    I am using BMP388 sensor for detecting which level a particular moving asset is located. For this purpose, I have mounted hardware with BMP388 sensor on the wall of each level , which measures pressure and temperature every 10 mins.

    The moving asset is also fitted with hardware with BMP388 sensor that measures pressure and temperature every 3 minutes. To detect which floor the moving asset is on, I calculate the height from measured pressure (using formula in attached image) for the fixed hardware and moving hardware and compare the height of the moving asset with that of the one mounted on the wall.

    However, I noticed that in most of the cases, the difference in measured height of wall-mounted and moving asset sensor varies upto 20 m.
    For the sensor in both moving and fixed hardware, I am using forced mode, oversampling of 32 for pressure, oversampling of 2 for temperature, filter enabled with coefficient of 15 (i.e register value of 0x04).

    1. Is there a way to minimise this difference between the readings reported by the moving & fixed hardware?
    2. In some cases, the temperature of the fixed hardware and moving asset are different, due to which the difference in height readings also increases. Is there a way to remove the effect of temperature on the readings?


    6 REPLIES 6

    Occasional Contributor

    Hi Anusha:

       Regarding using pressure sensor:

        1. Before using the pressure sensor, they should be compared with the reference device to calibrate and then get this sensor's offset. Actually the sensor pressure value which you get from sensor driver is equal to the ambient pressure value add offset value. You should also care the offsets if the pressure of the different floor ambience is not stable with big gap.

         2. We can decrease the effect of temperature on the readings by temperature compensation and have no way to remove it. You should figure out the offsets of each pressure sensor with the different temperatures if the temperature ambience is not stable with big gap.

         You can read sensor specification to know the sensor performance, like relative accuray and TCO. Recommand you to use BMP390 or BMP390L which performance are better than BMP388 if necessary.


    Hi Jet,

    Thanks for your response.

    1. Regarding point 1, aren't the callibration coeffcients provided in NVM used to remove the offset difference and compensate the output values? Is it still required to calibrate again with a reference device if we are compensating the output using calibration coefficients using Bosch sensor driver provided here

    2. For this point also, isn't the temperature compensation done using the calibration coefficients with Bosch sensor driver sufficient? Is there any extra step required?

    It would be really helpful if you could provide your inputs regarding these questions.

    To give you an idea, we are planning to use 100s of moving devices with this sensor and compare the pressure measured by the moving devices to that of the fixed device to understand the floor on which the moving device is located.



    Occasional Contributor

    Hi Sir:

       The callibration coeffcients provided in NVM is supported for component level, not completely supported for PCB level. After soldering BMP38X to pcb board, we should consider pcb stress / temperature  lead to offset, so the callibration will be done again.


      You should also consider the flow air with device moving, which affect pressure changes. Recommend you to do some experimentation to confirm.


    Hi Jet,

    Thanks a lot for this explanation. This is very helpful.

    I have a few follow-up questions regarding this:

    1. The second calibration has to be done by comparing the sensor readings with that of a reference device and apply the offset in the firmware after fetching the sensor reading. Is my understanding correct?

    2. In the previous reponse, it is mentioned that doing this 2nd calibration will improve the absolute accuracy, especially in the same temperature, pressure & humidity conditions in which end-of-line calibration was done. If sensor A's end of line calibration temperature, pressure & humidity conditions are different from sensor B's conditions, won't this also cause variation in sensor A and sensor B's readings when placed in the same environment? Is it recommended to have the same temperature, pressure & humidity conditions for all sensors while performing end of line calibration?

    2. Is BMP390 sensor is used, do we have to still follow this second calibration process? I'm assuming yes but would like to get your confirmation too.

    Could you please provide your valuable suggestions on this?