HDC3022 Calibration

Hello,
I bought a few Adafruit HDC3022 sensors for creating a small temperature and humidity controlled environment.
When I got the sensors, I checked them with some boveda packs of different humidity levels and saturated NaCl solution. I found out they needed calibration. The ones with 2024 factory date needed roughly -4% humidity calibration, the newer ones needed -2% humidity. I checked the measurement against NaCl solution with distilled water where the sensor was sitting roughly 4 cm above in a small cup closed with some foil and a rubber band. It was sitting there for 24h and read at the end the 75% it should read.
Now, after sitting in an environment of constant 25°C and 60% humidity (well in the operating range and far from extreme conditions) they need again calibration. The one I now calibrated now needs an offset of -8% humidity to again read the correct 75% with NaCl and other humidity levels of boveda packs.
I also tried to run the heater for a bit. It reached 85°C. I let it run for 2 Minutes and checked again. No change in the readings.

Why do they drift so extreme if the datasheet is specifying a drift of only 0.19% a year? Am I missing a point? Also the hysteresis for rising and falling humidity is specified with 0.8% far away from the 4% i had to re adjust the sensor now.

My setup is a small mini fridge where the sensor sits in the middle. A small fan is blowing warm and humid air from the bottom to the top of the fridge. Between the airflow of the fan and the sensor there is a small glass pane. The air is humidified by water drops near the fan with the heating element. Maybe that description helps for the scenario.

I believe the big misunderstanding is to think that the data for the sensor from the datasheet also applies to the Adafruit breakout. This sensor can deliver exceptional accuracy, but you must make sure to get everything right. And I am not sure that a breakout for casual makers will be the right basis for perfect results.

I don’t have the environment to test the accuracy of the absolute values of my sensors, but I have many many sensors from different makes and usually apply something I call “crowd-sensing”. The idea behind that is that the error is smaller if I take the mean of many sensors. Basically, that is the law of large numbers. And the results show that all sensors I tested so far (including the HDC302x) are within what you can expect.

Comparing the HDC302x indeed seems to hint that the relative humidity is too large. But without enough specimen I would not bet on this. Nevertheless, the HDC302x shows a very good reaction to humidity change (but that is not different compared to other, cheaper sensors). So I am not really worried about absolute levels, since I am not doing science after all.

I would hope AF is manufacturing their boards to specification of the chips they use, otherwise they would be total garbage. And if manifactured to spec, the values from the datasheet should apply.
Currently I tested 2 of the sensors. Both needed re calibration of -4-5% RH after half a year, which is way out of spec. If I add 100 sensors and all of them are shifting, nothing was gained. Also this should not be necessary at all.

I don’t think so. Adafruit states that their focus is on electronics for education and learning. I don’t see anywhere a statement that they produce high-end, industrial grade products. They don’t even publish datasheets with exact measurements for their breakouts. E.g. they very often put a voltage regulator on their breakouts to make them 3V3/5V agnostic.

For the HDC302x e.g. they use their “standard” 10K pullups (TI recommends 5K). They also use a 10µF cap in addtion to the 0.1µF cap that TI recommends. So these are all small design decisions that can potentially influence the performance of the sensor. And when I look at the images of their production machines I am really not sure if they can hold up to the highest standards. Which is IMHO fully in line and sufficient for what they do.

It es all about expectations. I would not call the sensor garbage only because it does not supply the last bit of performance.