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.

Sunday, 15 January 2017

BlueFlyVario_Bluetooth_USB_v12 released

The first batch of the new BlueFlyVario_Bluetooth_USB_v12 model has been produced and all pre-orders have been shipped. I announced in the last blog post the new features of the v12 compared to the v11. In this post I will provide a more detailed description of the new design and describe the assembly procedure.

What is in the bag?

The v12 model of the BlueFly is supplied with the following components:
  • The BlueFlyVario_Bluetooth_USB_v12 mainboard. There is a small piece of neoprene covering the pressure sensor; glued at one end to hold it in place. 
  • The sky blue enclosed case. 
  • A 750 mAh singe cell Lithium Polymer battery. 
  • 4 x 5 mm M3 black nylon hex standoffs and 4 x 5 mm M3 black nylon screws. 


Assembly is pretty simple and will take most people less than 10 minutes. I still recommend the procedure described in this previous blog post, but I have refined a few of the steps as described below:

Install Step 1 - Prepare the case 

[Optional] The first part of this step is only needed if you want to put a small lanyard on the vario. Drill a couple of holes into the case at the opposite end from the USB cutout. Use a slow speed drill and only the force needed. Make sure the holes are not too close together or the small plastic in between might break if you use too much force on the lanyard. Size the holes according to whatever cord you will use. Note that on the v12 the mainboard is slightly longer than the v11 so you will need to drill the holes so that the lanyard is under where the circuit board is going to be close to the end of the case.

Next you will probably want to slightly enlarge the inside of the USB hole. I use a sharp pointed knife and just remove a small chamfer from all of the inside edges of the USB hole as shown below. This helps the micro-USB connector fit in nicely.

Install Step 2 - Screws and standoffs

Screw the hex standoffs and screws into the BlueFlyVario_Bluetooth_USB_v12 module as shown below, but be careful not over-tighten the screws; finger tight is normally enough. The hex standoffs keeps the module properly spaced from the base of the case.  You can shorten the standoffs by about 0.5mm with a sharp knife to improve the fit into the case.

Install Step 3 - Place it into the case

This is the only tricky part. Use only the force needed to place the module correctly in the case. It is possible to break either the button or the usb connector if you use too much force. Place the module in the base of the case so the button protrudes from the hole. You may find the USB connector will need a little pressure from above to push it into the hole. The edge of the PCB should be close up to the cutout end of the case and the USB connector shroud will move into the cutout (as shown below). Also see the photo from step 3 in this previous post for more information about where to gently press on the main board.  

Install Step 4 - Packing material

Put something at the other end of the PCB to keep it pressed against the USB cutout end of the case. The gap on the v12 model is about 1-2mm and I use a small piece of paper folded and placed as shown in the image below. Note the small lanyard threaded below the board.

Install Step 5 - Battery

In the v12 there is no longer any need to use double sided tape to secure the battery to the board as the lid holds it in place. Note the wires need to be neatly folded and placed as shown.

Install Step 6 - Close the case

Place the top on the case (which is now the bottom in the image shown below). I now normally run clear tape around the case to ensure the lid is held in place; this is shown as brown kapton tape below so it stands out in the image. On the v12 the battery fits snugly, and if you do not slightly shorten the standoffs in step 3 then the lid might pop off just when you don't want. 

Plug it in to recharge. The red light should come on. A single press on the button will switch it on, and a long press will turn it off. See the Hardware Settings Manual for more technical setup. 

Install Step 7 (optional)

Some pilots like to mount the vario on a flightdeck. You can use a 50 x 30mm piece of velcro (not included). To make velcro stick better heat it up with a hairdryer prior to sticking it on.

--- Technical Stuff ---

For most pilots, this is about as far as you need to read through this post. However, if you want to get technical and understand more about your BlueFly then read on. 

Firmware Changes

There are not too many firmware changes relevant for users between the last firmware from the v11 (see here for 11.M13), and the first firmware for the v12 (12.M14). In summary:
  • The UART related code has been updated to change the way data is sent with the new analog switch. It works like this:
    • If Bluetooth is not connected data is only sent and received from the Bluefly via the USB-serial chip. 
    • If Bluetooth is connected then data is sent to both the Bluetooth and USB-serial connection, but only received from the device connected via the Bluetooth connection.
  • The default hardware settings have been changed, particularly some of those associated with audio thresholds. They now reflect my preferred settings. At some stage I will update the hardware settings manual. 
  • Changing the secondsBluetooothWait hardware setting now re-enables the bluetooth module if it has been disabled. 
Hardware Design

The layout of the key components on the mainboard is described in the image below:

Some key changes from the v11:
  • The addition of the FTDI 230X USB-Serial converter now enables a data connection in the miro-USB port (instead of just charging). This makes it much easier to adjust hardware settings on a Windows PC. 
  • The addition of an analog switch controls serial data sent as described above in the firmware section. 
  • Components are spaced better and aligned more neatly. This is not just for visual appeal, but is is a 'design for manufacture' feature which makes it easier for me to assemble. 
  • The board is now about 3 mm longer, and the holes have been moved a little closer to the corners. This maximizes the space available for components and the board fits better into the sky blue case. 
All of the exposed pins are now in one row along the top side as shown in the image of the bottom of the board below:

Some key points:
  • You will not use the programming pads for the PIC or the RN4677 unless you are a super hacker and writing your own firmware from scratch. 
  • The external speaker connector is for when you want to remove the micro speaker and use a separate 16 ohm speaker. You might be able to use a 8 ohm speaker but you will need to check the levels with your test equipment and you might need to change the resistor biasing the transistor. 
  • The USB PWR jumper should be closed ONLY if you want to power the BlueFly solely from the micro USB connection, and not use the battery. DO NOT CLOSE IT WHEN USING A BATTERY - because if you did then unregulated 5V power would be provided directly to the battery which might case it to fail. 
  • Along the right:
    • The U1 V+, Tx, Rx, Gnd connectors are for connecting an external GPS as described in previous blog posts. I am considering new shields for this model. 
    • The I2C V+, SCL, SDA and GND pins are used for connecting the airspeed sensor described in previous posts. In future versions of the firmware this might also be used for other external devices. 
    • RA7 is a general purpose digital IO which is currently used for enabling and disabling an external GPS connected to U1. 
    • RB10 is a general purpose digital IO which is currently used for the calibration button on the airspeed shield. 
    • RB11 is a general purpose digital IO which is used for an indicator LED on the airspeed shield. 
    • RB4 can be a general purpose digital IO or provide an analog input. The firmware does not currently read it, but in the future I am planning to add some code to read the analog input from something like a fuel level sensor. 
    • BTN is connected to one edge of the main button. A momentary connection to VBAT will power up the vario and enable the voltage regulator. Subsequent momentary connections will then simulate a button press. 
    • VBAT is connected to the positive supply for the LiPo Battery. 
Future work

You may be able to tell that am  hopelessly addicted to trying to make the BlueFly better. Expect more stuff in the future - let me know your ideas. 

Thursday, 29 December 2016

BlueFlyVario_Bluetooth_USB_v12 model almost ready

Early in the new year I will begin shipping the new BlueFlyVario Bluetooth_USB_v12 model. You can pre-order from today, but shipping will not commence until mid Jan 2017 when I have completed production of the first batch. In this short blog post I will describe what to expect from the new model. A more comprehensive post will accompany the first shipments which will describe assembly and configuration.

New Features

The v12 model is an evolution of the v11. The main change is the addition of a USB data connection on the same board as Bluetooth, but there are many other little changes:

  • The V12 adds a FT230x USB-serial chip to the board to allow the USB connector to be used for more than just charging. This will simplify adjusting settings using Windows, and allow for a wider range of compatibility. This feature included adding an analog switch to manage when UART data is sent via Bluetooth and USB. It works like this:
    • If Bluetooth is not connected data is only sent and received from the Bluefly via the USB-serial chip. 
    • If Bluetooth is connected then data is sent to both the Bluetooth and USB-serial connection, but only received from devices connected via the Bluetooth connection.
  • The V12 board was lengthened by a few mm to allow for the extra space needed for the new components. It now takes up almost the complete length of the case. 
  • Power consumption is reduced by about 30% when not connected via Bluetooth. This was achieved by changing the way the RN4677 Bluetooth Module is disabled after the bluetoothSecondsWait timeout. 
  • The battery will be upgraded from 600mAh to 750mAh, taking up all of the spare space in the case. This makes for a snug fit and reduces the need for packing. 
  • The LED's have all been moved near the USB connector. 
  • The speaker has been rotated by 90 degrees, which will allow a small hole to be drilled in the side of the case if you really want to maximize the volume. 
  • All spare pins from the micro-controller, the button, battery voltage, etc are now all exposed in one row of headers. This will simplify hacking and will allow for things like an analog voltage input to be sensed. 

What stays the same

  • The case and standoffs are the same as the v11, as is the micro-controller, pressure sensor, RN4677 Bluetooth module, and supporting components. 
  • All of the hardware settings options, although I will be changing the defaults to the most common settings
  • The price, almost... I had to add a few dollars to take into account the cost of the FT230x USB chip and new analog switch. 

Other Models

  • The BlueFlyVario_Bluetooth_USB_v12 will will replace the BlueFlyVario_Bluetooth_v11. The v11 model is now almost out of stock and I am no longer accepting orders for it.
  • The BlueFlyVario_TTL_GPS_v11 remains the current model for connecting to a Kobo via TTL. I am some months away from considering what updates I will do to that model. The main change in v12 - the addition of USB to the Bluetooth model, is not applicable to the TTL model. 
  • The BlueFlyVario_USB_v11 and BlueFlyVario_USB_GPS_v11 remain current if you do not need a Bluetooth connection. 
  • The v11 shields are still available, and are electrically compatible with the v12, but the pins do not exactly match the new headers.

Sunday, 30 October 2016

New Firmware with Audio Settings updates

This is a quick post to let you know about two new features in the latest firmware released today. You can download the latest version of the firmware from

Audio toggle

After you have turned the vario on with a short press on the button it starts making noise. The vario noises can be turned off by adjusting some of the audio hardware settings, however for many pilots they just want the vario to be quiet until they launch (but still send data to the phone or other device it is connected to). For some time you have been able short press on the button to toggle between silence and noise. A long press turned it off.

With the new feature added in firmware version 11.m13 a short press on the button toggles between 'Audio Off' >> 'Audio On' >> 'Audio Off'.

However, if you have useAudioBuzzer enabled then it toggles between 'Audio Off' >> 'Vario Audio On only' >> 'Vario Audio and Buzzer On' >> 'Audio Off'.

Auto toggle on

In conjunction with the updated audio toggle feature, there is a new feature which automatically toggles the audio back on when lift or sink is greater than the toggleThreshold. This new hardware setting (BTT) means that you can turn the vario on with a short press. Then toggle the audio off (with another short press), then when your flight begins, indicated by lift or sink being greater than toggleThreshold, then the audio will toggle back on.

Manual and BFVDesktop

In conjunction with these features I have updated the hardware settings manual, and the BFVDesktop application

Monday, 29 August 2016

Force Bluetooth SPP Mode

Yesterday I posted about a firmware update with a new hardware command for adjusting settings on the RN4677 bluetooth module. Today I will tell you how to use this new command to force the RN4677 to use Bluetooth SPP mode. This was motivated by getting the BlueFlyVario_Bluetooth_v11 to work with some Android devices (like the WayteQ x995). The procedures described here will also help with some apps (FlyMe and XCTrack).

Some background

The RN4677 bluetooth module from Microchip included on the BlueFlyVario_Bluetooth_v11 is a very capable device. You can find a comprehensive user guide here: This module allows the BlueFly to connect to iOS devices using Bluetooth Low Energy (otherwise known as BLE, or Bluetooth 4.0), while also being able to connect to a very wide variety of Android and Windows PC Bluetooth adapters using Bluetooth Simple Port Protocol (otherwise known as SPP, which is available on Bluetooth 2.0 or 2.1 devices).

A full description of how these protocols work is beyond the scope of this post. However, it is sufficient to say that if your Android device supports BLE (most new devices) and SPP (almost all devices), then it is possible that an Android app might try to connect to the BlueFly over BLE. If that happens then the connection will probably fail. So far, I do not think that there are any Android apps which have BLE working with the BlueFly. It is something which is on my todo list for the BlueFlyVario app.

Step 1: Connect to the BFVDesktop application

The first step is to get your BlueFly connected to the BFVDesktop application (download from here) via a PC with a Bluetooth adapter. If your Bluetooth adapter supports BLE and you can not seem to avoid it then you can force a non BLE connection by disabling part of the driver. A quick way to do this is to open Device Manager and disable 'Microsoft Bluetooth LE Enumerator' in the Bluetooth section. Make sure to remove the BlueFly device, then add it again and complete the pairing process. Use the paired virtual serial port in the BFVDesktop application. You should see the data streaming in.

Step 2: Make sure you can communicate with the BlueFly 

Send a few test commands using 'Raw Tx:' Try $BTN* to simulate button presses. You should hear beeps.

Step 3: Adjust settings on the RN4677

Send the command $RNC SG,2*

Note the space between RNC and SG. When you send this command the BlueFly does the following:
  • Puts the RN4677 module into command mode (by sending $$$ from the processor the the RN4677); this kills the connection. 
  • Sends the RN4677 the SG,2 command (see page 17 here: - You can use the RNC command to the Bluefly to progressively send any series of set commands the RN4677; but be careful unless you know what you are doing)
  • Sends the RN4611 the command R,1; which resets it and stores the setting
  • Restarts the BlueFly
Step 4: Restart everything

You will then need to restart the BFVDesktop app to connect again. Unfortunately, there is no easy way to check the settings on the RN4677 unless you have a TTL-Serial adapter and can solder it in between the processor and the RN4677.

After that, un-pair the BlueFly from your Android device, restart the device and the BlueFly, and then try paring and connecting again. XCTrack and FlyMe should now work!

Further Steps

If that does not work you might also want to try further configuring the RN4677 authentication modes. On some devices that affects how they connect after pairing:
  • $RNC SA,1* will change the RN4677 from 'SSP just works' mode to 'SSP pin code confirm mode.
  • $RNC SA,4* will change the RN4677 to legacy 4 digit pin mode. The default pin is 1234.
There are many other settings you can mess with (and mess up) on the RN4677. If you really screw it up please contact me. 

Saturday, 27 August 2016

Firmware update for v11 models

Last weekend I was able to release a new firmware for the v11 models of the BlueFly. The v11 models have a different processor (the PIC24F32KA302 instead of the PIC24F32KA301) which uses different pins for most of the hardware functions. As a consequence there is a slightly different bootloader on the vario, although you do use the same ds30loader program on the PC side.

Firmware updates for BlueFlyVario started with v10, and you can still download the latest firmware for the v10 models from the firmware page of the website. For the v10 models you should follow the instructions in this previous blog post.

Do I need to update the firmware?

If you are happy with the performance of the BlueFly, and you do not need any of the features of the new firmware, then I strongly urge you to leave it alone. Although it only takes me a minute or two, many pilots find it tricky. If you are going to do it then the first step is to check what firmware you currently have.

The firmware for the initial release of the Bluetooth, TTL_GPS and USB models was 11.M09, 11.M10, and 11.M11 respectively. Although I only released the 11.M12 firmware last weekend, I have actually been shipping it with new varios for some weeks. You can see what version of the firmware your device has by using the BFVDesktop app and connecting to your device. That will be tricky if your TTL_GPS model is soldered to the Kobo. For that model try starting up the vario while you are looking at the monitor in xcsoar and read the message from the BlueFly. The first line includes the firmware version.

Key changes in 11.M12

The primary reason for releasing a new verison of the firmware is to support some changes for the Bluetooth model, although there are some other changes as well. In summary the changes are:
  • A new command designed which enables you to change settings on the RN4677 blueotooth model. Read the hardware settings manual to understand how to send a command. The command is:
    • $RNC ABC*, where ABC is the command to send to the RN4677. 
    • When you send that command to the BlueFly it sends back some serial signals to the RN4677 in the following manner:
      • Turns on the BlueFly green LED.
      • Sends $$$ to the RN4677, which puts it into command mode. This stops the BlueFly sending data. 
      • Waits 1000 ms.
      • Sends ABC to the RN4677 followed by the \n character. In most cases ABC is an individual RN4677 command you choose from it's user guide to adjust a setting on the module 
      • Waits 500 ms. 
      • Sends R,1\n to the RN4677 to restart the RN4677 and store the setting.  
      • Waits 500 ms. 
      • Turns of the BlueFly green LED. 
      • Restarts the BlueFly. 
    • It is really possible to screw up the RN4677 by doing this if you are not sure what you are doing. I will be posting some examples in a separate blog post. 
  • The new firmware maintains the volume of start and shutdown beep, regardless of the volume settings.
  • The RSX command now also sends $PMTK104*37 to U1. On the TTL_GPS model that forces the GPS to ditch its ephemeris data (satellite data) and restart. This can be used to recover a GPS which may be stuck in some kind of bad data loop. 
Bootloader changes

There are minor changes to the bootloader procedure for the v11 models. The procedures described in this previous blog post for the v10 still apply, but with the following changes:
  • Step 1 - Get the software: No change, the same ds30loader software is used. 
  • Step 2 - Prepare the hardware: On the v11 you now short the pins below (GND and SDA) to enter the bootloader mode. The names of these pins are shown on the bottom of the board. 

  • Step 3 - Open the ds30laoder application: Use the following different settings for v11, all of the others are the same as v10
    • Model: 32KA302
    • Baud: 115200
  • Step 4 - Start up the Bluefly in bootloader mode: No change; other than the different pins as shown above in step 2. 
  • Step 5 - Program the device: No change
Hardware Settings Reset

After updating the firmware I recommend that you execute a full hardware settings reset. On the v11 models you do that by shorting GND and SCL then starting the vario while the short is in place. Once you hear the high pitched fast beeps you can release the short and all of the settings will be back to the defaults.

TTL_GPS model addendum for the Kobo

Tyson let me know he has been working on updating the firmware on the BlueFlyVario_TTL_GPS with it still connected to the Kobo. In his words:

"Thought you might be interested in this small program I wrote. Converts the hex files into a shell script that can be directly run on the kobo to do the flash upgrade.

Just finished using it to upgrade to the latest firmware for my BlueFlyVario_TTL_GPS_v10 model. Seemed to go good."

I am still waiting to find time to try it out. Let me know how much success you have.

Monday, 22 August 2016

BlueFlyVario_TTL_GPS_v11 component updates

This quick post describes a minor modification to the package contents with the BlueFlyVario_TTL_GPS_v11. The package now includes:
  • The BlueFlyVario_TTL_GPS_v11 main board programmed with the latest firmware.
  • A small piece of neoprene to protect the sensor.
  • 50mm of blue PVC heatshrink.
  • About 20cm of 4 core flat telephone cable.
There is also a slight change to the component layout on the most recent PCBs to allow for easier manufacture. The Rev 4 PCB layout has much more evenly spaced components, and is shown below with the components now included in the package.


The 4 core flat telephone cable included with the package is much more appropriate for soldering inside the Kobo. Strip the outer covering and use the wires individually. I used this type of cable on the Kobo Glo HD Install shown in this previous blog post. If you really want the 4x1P right angled header and 4x1P Dupont connector with wires please let me know when you order and I can include it in the package. 


The little piece of neoprene included with BlueFlyVario_TTL_GPS is really important. When placed properly it stops light from hitting the sensor, but allows air to permeate through so pressure changes filter through the two little holes on top of the MS5611 pressure sensor. 
  • I originally include the neoprene shown below. This has sticky tape on one side, and black squishy foam on the other. Unfortunately some pilots remove the sticky tape and put it on the sensor the wrong way; blocking the two little holes with the sticky glue and rendering the sensor pretty much useless. 
  • So, then I changed to different neoprene which does not have sticky tape on it so it does not matter which way it is placed on. Unfortunately it was a slightly different composition, and when that neoprene is squished on to the sensor really tight with the heatshrink it can restrict the airflow associated with pressure changes; to the extent that it affects the sensitivity of the vario to changing height. If you have this neoprene and it is not working for you please let me know and I can ship you some of the other stuff. 
  • Now I have changed back to supplying the original type of neoprene. The correct orientation is shown in the image below. The black squishy foam side should be the only thing which touches the sensor. Please put it on the right way!