This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HDC2010: Sensor measurement accuracy

Part Number: HDC2010
Other Parts Discussed in Thread: SYSCONFIG,

Hello,

I would like ask about HDC2010 temp and humidity sensor testing. I used a library from TI SysConfig (https://dev.ti.com/sysconfig/index.html?product=ascstudio&module=/ti/sensors/humiditysensor/HDC2010) to create a program code for this sensor, so now it reads temperature and relative humidity values and reacts to their changes.

I would like to ask if it is possible to adjust the accuracy of measuring temperature and humidity? For example it does not matter right now if I use hdc20100TempAsFloatCelsius or hdc20100TempAsIntCelsius variable as it always returns integer value (without point) such as 27 or 28. I would be grateful if you could help me to solve this problem.

Also, I compared temperature and relative humidity measurements of HDC2010 sensor and other temp monitor. It seems that HDC2010 shows too high temperature (29 Celsius) when temp monitor shows 26.7 Celsius at the same place and moment. Opposite result is received then measuring relative humidity because HDC2010 shows too low value (24 %) while monitor displays 31 %. I know that it should not be a hardware fault because I tried four HDC2010 sensors and they return practically same values. Maybe some temperature and humidity offsets have to be set when forming library for the sensor using Dev TI SysConfig section? For now I left it to be 0x00.

Thank you for your answers.

  • Hi Reginhard,

    You don't need to perform any special calibration/offset of the Sysconfig library to get correct results. The HDC device contains offset registers, and Sysconfig provides a path for you to configure these registers. It should normally be 0. When the offset is zero, the output that you're seeing is the calibrated output from HDC production.

    Float and Int functions are provided for your convenience because not all MCU support math operations on float datatypes. If you are not seeing a fractional result in the output of your Float function, you are most likely storing or processing the output as an Int. could you show me how you use your Float function?

    thanks,

    ren

  • Hello,

    Thank you for your notes. Now float function works properly when I am using default library from Sysconfig.

    The problem with sensor measurement accuracy still remains. I noticed that it outputs higher temperature values of at least 2 degrees Celsius than it really is. Meanwhile relative humidity is at least 5 % lower than it should be. I used some other temp & hum monitors to find out this issue. 

    One thing that I noticed, HDC2010_tempRead as well as HDC2010_humRead function has a part where Low and High bytes should be read but only Low byte is addressed:

    Is this part of library correct? Could it be the reason why sensor returns inaccurate temperature and humidity readings?

    Thank you again for your comments.

  • Reginhand,

    Yes, it's correct. Two bytes are being retrieved and assembled into the full 16 bit response. The high and the low byte are 8 bits each, located sequentially in the register map. 

    thanks,

    ren

  • Hello,

    What could be other reasons that my HDC2010 sensor outputs inaccurate temperature and humidity values?

  • Reginhard,

    It can be difficult to calibrate temperature sensors without proper equipment. Further, the humidity sensor relies on a polymer that can be contaminated. Please see Storage and Handling Guidelines in the HDC20XX Silicon User's Guide. https://www.ti.com/lit/snau250

    thanks,

    ren