If I use, as inputs, the same datasheet values, the two functions return, respectively, 13. I developed, in Simulink, two different functions: one to calculate the true temperature, the other to calculate the true pressure. Therefore, being B7 = 1171050000 the value 70003 would be returned, as p, instead 69964. The if condition is not respected: in fact, 0x80000000 means 2147483648 in decimal. Moreover, a pressure value of 69964 Pa appears irrealistic: by considering the figure 5, it means an altitude of about 3000 m over the sea level (I do not know if the Bosch research center is so high). While the temperature reading appears correct, there are some problems with the pressure: in my opinion, by considering the “calculate true pressure” in the datasheet, the coefficients B6, X1, X2, X3, B3, B4, B7, p, UP, are returned when the value 0x2E is write into 0xF4 register: in fact, similar values are returned to me, from my BMP180, when I write the 0x2E value into 0xF4 register, instead of 0x34 (pressure, with OSS = 0). By using an Arduino Uno board (programming in Simulink), I am tring to read data from a BMP180 sensor and to calculate the true temperature and pressure, by following the functions shown in figure 4 (pag.