Silicon Labs Si7013, Si7020, and Si7021 humidity sensors

Hi everyone,

Today, I tried to restock my supply of HTU-21D's... but the stock has currently run out in NA. Looking for an alternative, I stumbled across this series of Humidity sensors from Silicon labs. They are the same footprint as the SHT-21 and HTU-21D (DFN-6, i.e. 3x3mm), use the same voltage range (1.9-3.8V), etc. So they are easiest to use with 3.3V systems, like the Due, Pro, or Teensy series.

I haven't looked over the data sheets in detail re: the programming, but many of the offered resolution ranges are similar and the unit allows operation with or without the host CPU being kept blocked. On the Si7013 you can even set the heater intensity (up to 94mA current draw!!!).

FWIW, the si7013 is a strange and interesting creature, i.e. a I2C temp and humidity sensor that additionally features an accessible differential ADC for external NTC temperature measurements, complete with registers for calibration, slope, and offset. Or measure anything else of interest, 0-Vdd for unbuffered and 0.5-Vdd for buffered operation (1.9V < Vdd < 3.8V). Could make a nifty little ADC for things like photoresistors in a external weather sensor system, for example. The ADC offers up to 16 bits of resolution but it's relatively slow (i.e. about 12ms per conversion).

Lest I come off as some sort of marketing drone, I wonder if anyone here has used one of these sensors? They seem like a good substitute for the HTU and SHT series, especially ever since the HTU prices went up 50% at Digikey (from about $8 to now $12+). By comparison, the Si7021 (+/- 2% RH and 0.4*C accuracy) costs about $4 in single quantities and the slightly less accurate si7020 ("only" +/-3%RH) is about 10% less. Both sensors can even be bought with factory-installed PTFE dust shields (add 10% to base price - and look for the -GM1 version instead of -GM model, for example).

The only downside of these chips to hobbyists like us is that a DFN-6 is hard to solder by hand and pretty much requires a reflow solution and a custom-made PCB. Granted, someone like Sparkfun or their affiliates might sell the PCB, but these sensors are definitely not as easy to integrate as the DHT-22, for example. In particular, the Si7013 seems like a bad candidate for hobby use (even if you are experienced with reflow soldering the HTU21D or SHT21 series) because Silicon Labs are cramming 5 pins per side into two sides of a 3mm square package, resulting in 0.5mm OC pin spacing... in a package where you can't observe the pins when the chip is installed.... IMHO, a perfect candidate for blue smoke unless you have a well-calibrated pick and place machine!

Anyhow, I've bought 5 of Si7020's with the PTFE dust cover and I'll report back when I have them re: their compatibility with the Sensiron library. At first glance, it looks like some modifications may be required but setting options, CRC, and so on are similar. Thus, a fork may be possible, something made easier by the fact that the Silicon Labs units can be queried and will reply with the SKU for the model as well as the revision of the firmware on them (!!!).

These look interesting, please let us know how they go.


Rob

Ok, looked at pinouts, commands, etc. I hope someone can compare these also to the HTU21D or the SHT21 to verify my findings:

  • I2C Device address: same (0x40)
  • Pinouts: Identical
  • External package dimensions, pin locations, etc: Virtually identical (within 0.1mm)
  • Command registers: Very similar - All the measurement commands are the same, ditto on reset, read and write RH and T.
  • Where the SiLabs units seem to differ is adding command 0xE0 to read the temperature from a previous RH measurement, and the commands to read the electronic ID/Firmware revision.
  • The only major difference is that 'OTP Reload' bit is in the user register byte not implemented ('reserved') in the SiLabs units, whereas it is implemented but not recommended for use on the HTU21D series. Not a great loss then.
  • CRC implementation: Same format, same initialization (0x00)
  • RH and Temp calculation formulas: same

The only slightly mystifying information is the so-called Power up time that the SiLabs units mention but the HTU units do not. I suspect that no-holder master calls will require a power-up between calls, requiring a longer net conversion time than suggested in the SiLabs table, at least at first glance. If the power-up time is added to each conversion time, the resultant total time to make a RH reading is about the same.

What is interesting about the powerup time is how it seems to vary by temperature. Either way, this sensor seems to be good for at least one reading per second on a no-hold basis (i.e. good enough for my purposes), making these units likely compatible with the Sensiron Arduino library. I look forward to my shipment!

Any further results?

Apologies, I had gotten started with fobbing the latest set of boards and then got sidetracked by several months of intense work unrelated to this effort.

I will try to restart the reflow processes, etc. to get the boards made. Requires free time, unfortunately.