Friday, 17 February 2017

Pressure Sensor Anatomy

At the core of over five thousand BlueFly devices is the MS5611 pressure sensor. One of the first blog posts about the BlueFly, almost six years ago, described the theoretical performance of this sensor, then about a year after that I posted about the success in testing. Back in 2011 there was not too much information about the MS5611 on the internet; only the manufacturer data sheet. Now the MS5611 is used in most of the varios which are similar to the BlueFly, and is widely used in hobby RC flying.

In this post I get technical about how the sensor works, and some of the things worth knowing about as you take care of your vario. This comes from having personally tested thousands of BlueFlys. I try to demystify how these sensors work in an accessible way, although I know it will still be pretty technical for many pilots. I focus on light sensitivity and some failure modes.

The MS5611

The image below shows the MS5611[01BA03] pressure sensor assembled on a BlueFly device. The sensor is 3 x 6 mm and is constructed of a small metal cap on top of a green circuit board. Solder pads underneath the sensor are used to connect it to the underlying BlueFly PCB, and provide power and the data interface. The BlueFly devices connect to the sensor using its SPI interface (instead of I2C) as it provides the best performance. To further improve performance the BlueFly provides power via a PI filter.

The image below shows the inside of the sensor with the metal cap removed. Inside the sensor there are two main components: a pizeoresistive absolute pressure sensing element, and a high resolution Analog to Digital Converter (ADC). It is reasonably easy to relate the functional block diagram from the datasheet to the physical layout inside.

The pizeoresistive element on the left is the MS7101. There is not too much information about it online, but you can see a few specs in this brochure. It is 1.25 x 1.25 mm, and to the naked eye looks like a grain of black sand. Infinitesimally small movements in the top of this sensor is part of where the magic happens for us. The top of the sensor is a very thin membrane of silicon with resistors etched on the surface in a particular pattern. This is like the skin of a drum on top of a hollow cavity. The silicon membrane is pushed in when you drop 10cm in altitude and about 20 trillion more molecules rush inside the metal cap of the sensor; this causes the surface resistors to change slightly. The resistors are part of a circuit which alters a voltage by a tiny bit, and the job of measuring pressure is half done. What is important for us is that it is super sensitive and repeatable as the silicon membrane flexes in and out. However, there are other things which can affect the resistance etched into the silicon other than flexing caused by pressure changes.

You can read more about piezoresistive sensing elements at the following links:

On the right is the ADC. Its main job is to turn the voltage from the pizeoresistive element to a digital signal. The component is more than just a standard super sensitive ADC, it also includes temperature compensation, some memory to store calibration coefficients, a digital filter, and sufficient digital circuity to allow communication the micro controller of the BlueFly. The temperature compensation removes most of the temperature induced inconstancy from the etched surface resistors in the sensing element, while the calibration coefficients allow for manufacturing inconsistency to be removed. Together these can present a super accurate digital signal. The magic of the MS5611 is that the ADC is very accurate and is designed to work at high clock speeds. This allows the BlueFly to get pressure measurements 50 times per second at 10 cm resolution, and with further processing in the BlueFly this means we can detect altitude changes very quickly.

Physical Vulnerability

The image below is taken from a slightly different angle. Here you can more easily see the vulnerability of the sensor. The holes in the cap, although tiny, are large enough for dust, grit, water, solvents, and even brush bristles, to get in. The most obvious vulnerability are the fine gold wire bonding connections. If any one of these wire connections is damaged then the sensor will not function correctly, even though it may still report a digital signal.

In addition, each of the sensor sub-components is coated in a clear sticky gel like substance; I guess for corrosion protection and perhaps some other stabilizing effect. This gel does not dissolve in water, acetone, or isopropyl alcohol, but it does seem to attract bits of dust and grit, which I think can affect either component in some circumstances.

Light Sensitivity

I spent a bit of time trying to understand the causes of light sensitivity. The video below shows the light sensitivity effect up close based on illumination from the LED's on my microscope. I think that at this range they provide the same order of magnitude light intensity as sunlight. The video pretty clearly shows that light sensitivity is due to the piezoresistive element. With a little internet research I found some theoretical descriptions of why this is the case. However, for our purposes the key is to know that protecting the sensor from light is vital to ensuring it works properly.

Sensor Protection

You need to protect your pressure sensor if you want your vario to perform well, but it also needs to be exposed to the air. The three strategies for protection are:
  • Put the whole vario in a case, although note that the translucent sky blue case used for the BlueFly does not block the light enough. 
  • Use the neoprene. I have spent some time testing different types of foam to find one which is effective at blocking the light, but permeable enough to air. The soft squishy side should be on the sensor, not the sticky side, which would block the holes. Every vario I send out has neoprene attached to the PCB in the right place, or in the kit if you are going to assemble it yourself.
  • Use a folded piece of black electrical tape, making sure that the sticky part of the tape is folded over on top of the sensor. This is a quick hack that can be done if you have lost your neoprene.
See the image below for a few examples.