Hi, I found several potential numeric issues in parse_temp_press_calib_data(). Several members of the calib_data structure can overflow when the registers contain too large values. Example: calib_data->dig_t2 = (int16_t)(((uint16_t)reg_data[3] << 😎 | (uint16_t)reg_data[2]); The expression right to the int16 cast can become strictly bigger than int16_t. Perhaps this is not a likely value, but a broken sensor or faulty communication could lead to issues. All params except dig_t1 and dig_p1 are affected. A similar case exists in parse_humidity_calib_data(): calib_data->dig_h2 = (int16_t)(((uint16_t)reg_data[1] << 😎 | (uint16_t)reg_data[0]); Besides that, great code quality, thanks!
... View more