BlueDot TMP117 High Accuracy Temperature Sensor


The TMP117NAIDRVR is a high-precision temperature sensor from Texas Instruments, capable of measuring temperatures with an accuracy of up to ±0.1°C accross the range of -20°C and 50°C with no calibration. The TMP117 has an accuracy comparable to a Class AA RTD, while using only a fraction of the power typically needed for a PT100 RTD. 


Here are the board's main features:

  • High Accuracy and High Resolution. Measurement accuracy of up to ±0.1°C accross the range of -20°C and 50°C. The TMP117 also provides a 16-bit temperature result with a resolution of 0.0078°C.
  • Wide Range Supply Voltage. The sensor operates from 1.8 V and 5.5 V at VCC, dispensing the need of voltage regulation. 
  • Low Power Consumption. It has a very low power consumption, typically 3.5 µA, which minimizes the impact of self-heating.
  • I2C Communication. The sensor communicates through the I2C protocol using 0x49 as the default address. By connecting the AD0 Pin to either GND, SDA or SDL the addresses 0x48, 0x4A and 0x4B are also available.
Get your BlueDot BME280 Board at Amazon!

Technical Data

Technical Data from BME280 Sensor


The first step with the TMP117 Temperature Sensor is to solder the 6 pin header that comes along with the board. The easiest way to solder the board is to insert the header into a breadboard (long pins down) and solder the short pins to the board.

Assembly: Breakout Board with header pin
Assembly: Insert header pin into breadboard
Assembly: Solder BlueDot Board to header pin

Connecting via I2C

Connecting the TMP117 on the I2C bus is very easy. The first step is to connect the board to the power supply.

  • VCC Pin. Connect the VCC pin from the board to either 5V or 3.3V output from your Arduino. 
  • GND Pin. Connect the GND pin from the board to the GND from the Arduino.

Great! Now we need to connect the sensor to the I2C bus. The I2C communication uses basically two wires. The clock signal is generated by the Arduino and transferred to the sensor through the SCL line. The Arduino can send commands to the sensor using the SDA line. Just as well, all data from the sensor goes back to the Arduino through the SDA line. Because of that, the SDA line is bidirectional.

  • SDA Pin. Connect the SDA pin from the board to the SDA line on the Arduino. This corresponds to the pin A4 on the Arduino Uno.
  • SCL Pin. Connect the SCL pin from the board to the SCL line on your Arduino. This corresponds to the pin A5 on the Arduino Uno.
  • ALERT. You can leave it unconnected.
  • AD0. You can leave it unconnected.
I2C Wiring for BlueDot BME280 Board

Installing Arduino Library

Although there is currently no Arduino Library from BlueDot available for this sensor, you can use the great library written by Nils Minor to connect to the TMP117. You can download and install the library directly from the Arduino IDE. Just open the Arduino IDE and go to Sketch > Include Library > Manage Libraries... and search for the TMP117 on the Library Manager. You can find this library under the name "TMP117-Arduino".

Arduino IDE: Opening Library Manager
Arduino IDE: Installing BlueDot BME280 library

xkcd: commented

Upload Example-Sketch

After installing the library we can open an example sketch. Just go to File > Examples > TMP117-Arduino and open the sketch simple_test.

Arduino IDE: Uploading sketch example for BME280


One minor change is needed to run the sketch. Just change the value of ADDR  to ADDR_VCC. Note that the baud rate is set to 115200 per default.

Get your BlueDot BME280 Board at Amazon!

xkcd: degrees


Schematics for BlueDot BME280 Board


Get your BlueDot BME280 Board at Amazon!

xkcd: lightsaber