The SHTC1: Inside the chip that powers WeatherSignal

I once cracked the screen on my Nexus One. If you’ve done this yourself you’ll know that to replace it you need to dismantle your phone to a near-molecular level and in doing so you get to see the exposed innards of your phone. It’s pathologically geeky fun and only served to increase my interest in the hardware. Let’s talk about my current favourite piece of silicon: the SHTC1 made by Sensirion, the temperature/humidity sensor chip that’s in the Galaxy S4 and is a big part of why we built WeatherSignal.


SHTC1 Spec

Size: 0.8mm*2mm*2mm, the smallest sensor of its kind. Yes, that photo of it next to a dime is to scale.

Consumption: uses 2micro Watts of power in low power mode, in itself pretty negligible. My Galaxy Nexus has a capacity of 6.5Wh – so if the system wasn’t doing anything else it could run this sensor for 3.2 million hours. It’s the processing of this data by apps and all the other demands of keeping the Android system awake that causes drain.

Accuracy: rough accuracy to +/-1 degree, to understand what this means we’ll go into a little more detail.

  • Sensirion first calibrate the sensor outside of the device, since devices themselves are not perfectly controlled environment. This allows them to put precise bounds on the chip’s accuracy. These are the specs published on their website.
  • While the sensor itself is highly accurate, the device has its own internal heat-source (the battery) and, since the phone is a block of matter, also stores heat. This creates a lot of noise because of the sensor’s position in the device, so why should we trust its readings as representing the ambient temperature outside of the phone? The answer is in the technology that the sensor locks into.

The Sensirion Compensation Engine

Sensirion have developed an algorithm that combines readings from the temperature sensor with information from other areas of the device. This is in order to compensate for all the heat sources you don’t want the chip to be measuring. While, in our recent discussions with them, Sensirion weren’t keen to reveal all the details of how this works – they did highlight a few things. Firstly, their compensation engine is calibrated per-model, for example it was specially calibrated for the S4. In addition, the engine can be altered in a software upgrade, allowing continual improvement. Most importantly: the engine works well.

It’s hard to put precise limits of the accuracy of the sensor once inside a device – since it depends so much on how the device is being used. Sensirion’s Dominic Boeni did give the following illustration: if you put your S4 on the table, after 2 minutes it will be +/-1 degrees centigrade of the ambient temperature. That’s amazing, and here’s why: if you’ve just pulled a phone out of your pocket, the phone itself wil take 30 minutes to cool down. Boeni, a former physics teacher, has a nice analogy here: “It’s very similar to a coffee cup – it’s about the same mass – and coffee takes about 30 minutes to cool to room temperature” (note, we’re talking European coffee here, not the mammoth Starbucks ones). The compensation engine allows changes in temperature to be reflected much more quickly by filtering out the damping effect of heat latent in the phone’s mass.

If you really want to put the chip through its paces and have an S4, I advocate downloading WeatherSignal and setting up some experiments – you can extract readings to CSV files. In less time than it takes a coffee to cool, you can be setting up environmental science experiments. No S4? Check out WeatherSignal anyway, and see how accurately our own algorithm to transform battery temperature to ambient temperature works for you.

This entry was posted in Android Development and tagged , , , , , , , , , . Bookmark the permalink.

One Response to The SHTC1: Inside the chip that powers WeatherSignal

  1. Pingback: 你的手机,就是天气监测站 | 天天三国杀

Leave a Reply