SHT1x (SHT10, SHT11, SHT15) are good and reasonably cheap temperature and humidity sensors that have been around for a while.

Connecting them up recently to a Teensy 3.1 I could not get it to work.

After spending a few hours working through my logic analyser, checking why it worked with an AVR Arduino Mega but not the Teensy I assumed it was timing and spent a while fixing the shiftIn, shiftOut and delays used in the library.

Still... nothing.

Turns out, I was powering it with 5 volts - chips accepts 2.5 to 5.5 volts - no worries right. Except my logic pins (clock and data) are output at 3.3 volts. Normally this does not matter. Moved to 3.3 Volts power - everything works.

Returned all my code to defaults and they all worked ! I can confirm that the following libraries work:

The later library has the advantage of providing a non blocking method of reading temperature and humidity. Although turns out I don't need it so I am using John's version (practical arduino).