# Adafruit MCP9600 I2C Thermocouple Amplifier

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/076/140/medium800/adafruit_products_MCP9600_Top.jpg?1559055406)

Thermocouples are very sensitive, requiring a good amplifier with a cold-compensation reference. The **Adafruit MCP9600** does all that for you, and can be easily interfaced with any microcontroller or single-board-computer with I2C. Inside, the chip handles all the analog stuff for you, and can interface with just about any thermocouple type: K, J, T, N, S, E, B and R type are all supported! You can also set various alerts for over/under temperature, and read the thermocouple (hot) temperature and the chip (cold) temperature. All this over common I2C.

This breakout board has the chip itself, a 3.3V regulator and level shifting circuitry, all assembled and tested. Works great with 3.3V _or_ 5V logic. Comes with a 2 pin terminal block (for connecting to the thermocouple) and pin header (to plug into any breadboard or perfboard).

![](https://cdn-learn.adafruit.com/assets/assets/000/076/141/medium800/adafruit_products_MCP9600_Back.jpg?1559055437)

The Adafruit MCP9600 features:

- Works with any K, J, T, N, S, E, B and R type thermocouple
- Datasheet rated for:  
K Type: -200°C to +1372°C  
J Type: -150°C to +1200°C  
T Type: -200°C to +400°C  
N Type: -150°C to +1300°C  
E Type: -200°C to +1000°C  
S Type: +250°C to +1664°C  
B Type: +1000°C to +1800°C  
R Type: +250°C to +1664°C
- Resolution of ±0.0625&nbsp;°C - note that K thermocouples have about ±2°C to ±6°C accuracy
- Internal temperature reading
- 3.3 to 5v power supply and logic level compliant
- I2C data connection

![](https://cdn-learn.adafruit.com/assets/assets/000/076/142/medium800/adafruit_products_MCP9600_Top_Headers.jpg?1559055457 The board comes with a terminal block and header if you would like to solder them on (or not).)

# Adafruit MCP9600 I2C Thermocouple Amplifier

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/076/152/medium800/adafruit_products_MCP9600_Top_Pinouts.jpg?1559074412)

![](https://cdn-learn.adafruit.com/assets/assets/000/077/677/medium800/adafruit_products_MCP9600_Pinouts_Image.png?1561988560)

## Power Pins

- **Vin** - this is the power pin. This chip can handle 2.7V to 5V. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V
- **GND** - common ground for power and logic

## I2C Logic Pins

Default I2C address is **0x67**.

- **SCL** - this is the I2C clock pin, connect to your microcontroller's I2C clock line.
- **SDA** - this is the I2C data pin, connect to your microcontroller's I2C data line.

## Alert Pins

- **A1 - A4** - Alert 1 - Alert 4 output pins

## Address Pin

- **ADDR** - Allows for setting I2C address.

## Changing the I2C Address

By default, the ADDR pin is tied to Vin. This sets the default I2C address to 0x67. To change the I2C address, you can use the provided jumpers, or tie the ADDR pin directly to GND. This breakout supports a total of five I2C addresses, meaning you can connect up to five MCP9600 breakouts on the same I2C bus.

Use the following table to determine what to apply to the ADDR pin to get the desired address. The jumpers are numbered in the image. **J1** applies to jumper 1, and **J2** applies to jumper 2. An **-** in the table means no action needed, and an **X** in the table means to solder closed a jumper. The final address requires tying the ADDR pin to the GND pin, and in that case, all other changes are ignored.

![](https://cdn-learn.adafruit.com/assets/assets/000/122/523/medium800/adafruit_products_MCP9600_jumpers.jpg?1689195333)

![](https://cdn-learn.adafruit.com/assets/assets/000/122/524/medium800/adafruit_products_MCP9600_addr_table.png?1689195423)

# Adafruit MCP9600 I2C Thermocouple Amplifier

## Arduino

## Wiring

Connecting the MCP9600 to your Feather or Metro / Arduino is easy:

- If you are running a Feather (3.3V), connect&nbsp; **Feather**  **3V** to **board**  **VIN**
- If you are running a 5V Arduino (Uno, etc.), connect **Arduino**  **5V** to&nbsp; **board**  **VIN**
- Connect **Feather or Arduino**  **GND** to **board**  **GND**
- Connect **Feather or Arduino**  **SCL** to **board SCL**
- Connect **Feather or Arduino**  **SDA** to **board SDA**
- Connect **thermocouple +** to **board screw terminal +**
- Connect **thermocouple -** to **board screw terminal -**  

![adafruit_products_one_one_one.png](https://cdn-learn.adafruit.com/assets/assets/000/125/966/medium640/adafruit_products_one_one_one.png?1699473737)

The final results should resemble the illustration above, showing an Adafruit Metro development board.

Warning: 

## Installation

You can install the **Adafruit MCP9600 Library** for Arduino using the Library Manager in the Arduino IDE:

![](https://cdn-learn.adafruit.com/assets/assets/000/076/542/medium800/adafruit_products_Arduino_Manage_Libraries.png?1559918887)

Click the&nbsp; **Manage Libraries ...** menu item, search for **Adafruit MCP9600** ,&nbsp;and select the&nbsp; **Adafruit MCP9600** library:

![](https://cdn-learn.adafruit.com/assets/assets/000/076/543/medium800/adafruit_products_MCP9600_Arduino_Lib_Install.png?1559918899)

Also get the **Adafruit BusIO** library

![](https://cdn-learn.adafruit.com/assets/assets/000/076/960/medium800/adafruit_products_image.png?1560364445)

## Load Example

Open up&nbsp; **File -\> Examples -\> Adafruit MCP9600**  **-\> mcp9600\_test** and upload to your Arduino wired up to the sensor.

Upload the sketch to your board and open up the Serial Monitor ( **Tools-\>Serial Monitor** ). You should see the the values for hot junction, cold junction and ADC.

## Example Code

The following example code is part of the standard library, but illustrates how you can retrieve sensor data from the MCP9600 for the hot junction, cold junction and ADC values:

https://github.com/adafruit/Adafruit_MCP9600/blob/master/examples/mcp9600_test/mcp9600_test.ino

You should get something resembling the following output when you open the Serial Monitor at 115200 baud:

![](https://cdn-learn.adafruit.com/assets/assets/000/076/544/medium800/adafruit_products_MCP9600_Arduino_Serial_output.png?1559918907)

_Note: The image above shows 9600 baud in the serial monitor. It should be 115200 to match the code!_

# Adafruit MCP9600 I2C Thermocouple Amplifier

## Arduino Docs

# Adafruit MCP9600 I2C Thermocouple Amplifier

## Python & CircuitPython

It's easy to use the MCP9600 thermocouple amplifier with CircuitPython or Python, and the [Adafruit CircuitPython MCP9600](https://github.com/adafruit/Adafruit_CircuitPython_MCP9600) module.&nbsp; This module allows you to easily write Python code that reads the temperature from the sensor.

You can use this sensor with any CircuitPython microcontroller board or with a computer that has GPIO and Python [thanks to Adafruit\_Blinka, our CircuitPython-for-Python compatibility library](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux).

# CircuitPython Microcontroller Wiring

First wire up a MCP9600 to your board exactly as shown on the previous pages for Arduino.&nbsp; Here's an example of wiring a Feather M0 to the sensor with I2C:

- **Board 3V** &nbsp;to&nbsp; **sensor VIN**
- **Board GND** &nbsp;to&nbsp; **sensor GND**
- **Board SCL** &nbsp;to&nbsp; **sensor SCL**
- **Board SDA** &nbsp;to&nbsp; **sensor SDA**

![adafruit_products_MCP9600_feather_m0_i2c_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/291/medium640/adafruit_products_MCP9600_feather_m0_i2c_bb.jpg?1663867357)

# Python Computer Wiring

Since there's _dozens_ of Linux computers/boards you can use we will show wiring for Raspberry Pi. For other platforms, [please visit the guide for CircuitPython on Linux to see whether your platform is supported](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux).&nbsp;

Here's the Raspberry Pi wired with I2C:

- **Pi 3V3** to **sensor VIN**
- **Pi GND** to **sensor GND**
- **Pi SCL** to **sensor SCL**
- **Pi SDA** to **sensor SDA**

![adafruit_products_MCP9600_raspi_i2c_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/292/medium640/adafruit_products_MCP9600_raspi_i2c_bb.jpg?1663867413)

Warning: 

# CircuitPython Installation of MCP9600 Library

Next you'll need to install the&nbsp;[Adafruit CircuitPython MCP9600](https://github.com/adafruit/Adafruit_CircuitPython_MCP9600)&nbsp;library on your CircuitPython board.&nbsp;&nbsp;

First make sure you are running the&nbsp;[latest version of Adafruit CircuitPython](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython)&nbsp;for your board.

Next you'll need to install the necessary libraries&nbsp;to use the hardware--carefully follow the steps to find and install these libraries from&nbsp;[Adafruit's CircuitPython library bundle](https://github.com/adafruit/Adafruit_CircuitPython_Bundle).&nbsp; Our introduction guide has&nbsp;[a great page on how to install the library bundle](https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-libraries)&nbsp;for both express and non-express boards.

Copy the following files from the library bundle to your **CIRCUITPY** drive:

- **adafruit\_mcp9600.mpy**
- **adafruit\_bus\_device**

Before continuing make sure your board's **lib** folder or root filesystem has the&nbsp; **adafruit\_mcp9600.mpy,** and **&nbsp;adafruit\_bus\_device**** &nbsp; **files and folders** &nbsp;**copied over.

Next[&nbsp;connect to the board's serial REPL](https://learn.adafruit.com/welcome-to-circuitpython/the-repl) so you are at the CircuitPython&nbsp; **\>\>\>** &nbsp;prompt.

# Python Installation of MCP9600 Library

You'll need to install the Adafruit\_Blinka library that provides the CircuitPython support in Python. This may also require enabling I2C on your platform and verifying you are running Python 3. [Since each platform is a little different, and Linux changes often, please visit the CircuitPython on Linux guide to get your computer ready](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux)!

Once that's done, from your command line run the following command:

- `pip3 install adafruit-circuitpython-mcp9600`

If your default Python is version 3 you may need to run 'pip' instead. Just make sure you aren't trying to use CircuitPython on Python 2.x, it isn't supported!

# CircuitPython and Python Usage

To demonstrate the usage of the sensor we'll initialize it and read the temperature from the board's Python REPL.

Run the following code to import the necessary modules and initialize the I2C connection with the sensor. Note that `frequency` must be set when I2C is initialised for the MCP9600 to work:

```python
import board
import busio
import adafruit_mcp9600

i2c = busio.I2C(board.SCL, board.SDA, frequency=100000)
mcp = adafruit_mcp9600.MCP9600(i2c)
```

Now you're ready to read values from the sensor using any of these properties:

- **temperature** - The thermocouple or hot junction temperature in degrees Celsius.
- **ambient\_temperature** - The ambient or cold-junction temperature in degrees Celsius.
- **delta\_temperature** - The difference between the thermocouple (hot junction) and ambient (cold junction) temperatures in degrees Celsius.

```python
print(mcp.temperature)
```

![](https://cdn-learn.adafruit.com/assets/assets/000/082/895/medium800/adafruit_products_MCP9600_REPL_output.png?1571863945)

# Full Example Code
https://github.com/adafruit/Adafruit_CircuitPython_MCP9600/blob/main/examples/mcp9600_simpletest.py

# Alerts and More

The MCP9600 breakout allows you to configure four separate alerts on four pins. Connect the alert pins to digital output pins on your board or computer, and use the alert configuration in the MCP9600 library to configure them. Check out [the documentation](https://circuitpython.readthedocs.io/projects/mcp9600/en/latest/) for more information!

# Adafruit MCP9600 I2C Thermocouple Amplifier

## Python Docs

# Adafruit MCP9600 I2C Thermocouple Amplifier

## Downloads

## Files

- [MCP9600 Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/105/040/original/MCP960X-Data-Sheet-20005426%281%29.pdf?1633364221)
- [EagleCAD files on GitHub](https://github.com/adafruit/Adafruit-MCP9600-PCB)
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20MCP9600.fzpz)

# Schematic
![](https://cdn-learn.adafruit.com/assets/assets/000/076/144/medium800/adafruit_products_MCP9600_Sch.png?1559058720)

# Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/076/145/medium800/adafruit_products_MCP9600_Fab_Print.png?1559058730)

# Adafruit MCP9600 I2C Thermocouple Amplifier

## FAQ

### MCP9600 High Temperature noise

It's [been observed](https://github.com/adafruit/Adafruit_CircuitPython_MCP9600/issues/10) that reading temperatures above 500°C potentially results in noise in the data.

Users have reported that connecting the negative side ( **TC-** ) of the Thermocouple connector to the Ground pin (GND) can alleviate the noise (tested up to 1700°C).  
See the GitHub issue linked above and&nbsp;[this forum page](https://forums.adafruit.com/viewtopic.php?p=914867) for more details.


## Primary Products

### Adafruit MCP9600 I2C Thermocouple Amplifier

[Adafruit MCP9600 I2C Thermocouple Amplifier](https://www.adafruit.com/product/4101)
Thermocouples are very sensitive, requiring a good amplifier with a cold-compensation reference. The **Adafruit MCP9600** does all that for you, and can be easily interfaced with any microcontroller or single-board-computer with I2C. Inside, the chip handles all the analog stuff...

In Stock
[Buy Now](https://www.adafruit.com/product/4101)
[Related Guides to the Product](https://learn.adafruit.com/products/4101/guides)

## Featured Products

### Thermocouple Type-K Glass Braid Insulated Stainless Steel Tip

[Thermocouple Type-K Glass Braid Insulated Stainless Steel Tip](https://www.adafruit.com/product/3245)
Thermocouples are best used for measuring temperatures that can go above 100°C. This is a bare wires stainless-steel tip probe which can measure air or surface temperatures. Most inexpensive thermocouples have a vinyl covering which can melt at around 200°C, this one uses a fiberglass...

In Stock
[Buy Now](https://www.adafruit.com/product/3245)
[Related Guides to the Product](https://learn.adafruit.com/products/3245/guides)
### Thermocouple Type-K Glass Braid Insulated - 5m

[Thermocouple Type-K Glass Braid Insulated - 5m](https://www.adafruit.com/product/3895)
Thermocouples are best used for measuring temperatures that can go above 100°C. This is a bare-wire bead-probe which can measure air or surface temperatures. Most inexpensive thermocouples have a vinyl covering which can melt at around 200°C, this one uses a fiberglass braid so it can...

In Stock
[Buy Now](https://www.adafruit.com/product/3895)
[Related Guides to the Product](https://learn.adafruit.com/products/3895/guides)

## Related Guides

- [Make an AI Freezer Monitor](https://learn.adafruit.com/ai-freezer-monitor.md)
- [EZ Make Oven](https://learn.adafruit.com/ez-make-oven.md)
- [ScoutMakes DRV5032 Hall Sensor](https://learn.adafruit.com/scoutmakes-drv5032-hall-sensor.md)
- [LED Matrix Necklace Pendant](https://learn.adafruit.com/led-matrix-necklace-pendant.md)
- [Accessing and Using Adafruit PCB Design Files](https://learn.adafruit.com/accessing-and-using-adafruit-pcb-design-files.md)
- [Adafruit DRV2605L Haptic Controller Breakout](https://learn.adafruit.com/adafruit-drv2605-haptic-controller-breakout.md)
- [Adafruit MCP23017 I2C GPIO Expander](https://learn.adafruit.com/adafruit-mcp23017-i2c-gpio-expander.md)
- [Adafruit QT 3V to 5V Level Booster Breakout](https://learn.adafruit.com/adafruit-qt-3v-to-5v-level-booster-breakout.md)
- [Adafruit IS31FL3741](https://learn.adafruit.com/adafruit-is31fl3741.md)
- [Using Melexis MLX90614 Non-Contact Sensors](https://learn.adafruit.com/using-melexis-mlx90614-non-contact-sensors.md)
- [Adafruit DS2484 I2C to 1-Wire Bus Adapter Breakout](https://learn.adafruit.com/adafruit-ds2484-i2c-to-1-wire-bus-adapter-breakout.md)
- [IoT Bird Feeder with Camera](https://learn.adafruit.com/iot-window-bird-feeder-with-camera.md)
- [Introducing Feather RP2040 SCORPIO](https://learn.adafruit.com/introducing-feather-rp2040-scorpio.md)
- [Adafruit SI1145 Breakout Board - UV index / IR / Visible Sensor](https://learn.adafruit.com/adafruit-si1145-breakout-board-uv-ir-visible-sensor.md)
- [DIY IoT Doorbell Camera with MEMENTO](https://learn.adafruit.com/diy-iot-doorbell-camera-with-memento.md)
