# MPR121 12-key touch controller: specs and pinout

> A module built around the MPR121 chip, which senses touch on up to 12 electrodes and reports over I2C, with an interrupt output that goes low when a…

[HTML version](https://soldr.ai/docs/components/mpr121)

[Docs](https://soldr.ai/docs) / [Components](https://soldr.ai/docs/components)

A module built around the MPR121 chip, which senses touch on up to 12 electrodes and reports over I2C, with an interrupt output that goes low when a pad is touched or released. The figures here are for the chip, not the module board.

Every value cites its sourceOfficial pinout

[Buy on Compoden](https://compoden.com/products/mpr121-capacitive-touch-sensor-module-12-key-i2c-controller)

## Specs

| Spec | Value | Source |
|---|---|---|
| Supply voltage (VDD) | 1.71 V to 3.6 V | source Features and 5 DC Characteristics, Table 5 |
| Electrodes | 12 touch inputs (ELE0 to ELE11); ELE4 to ELE11 can also be used as GPIO | source Pin Descriptions, Table 1 |
| Interface | I2C, up to 400 kHz | source AC characteristics, serial clock frequency |
| I2C address | 0x5A, 0x5B, 0x5C or 0x5D, set by connecting the ADDR pin to VSS, VDD, SDA or SCL | source Pin Descriptions, Table 1, pin 4 |
| Interrupt output | IRQ, open-collector, active low | source Pin Descriptions, Table 1, pin 1 |
| Operating temperature | -40 C to +85 C | source Features; Table 3 Absolute Maximum Ratings |
| Required external parts | 75 kOhm 1% resistor from REXT to VSS; 0.1 uF capacitors on VREG and VDD | source Pin Descriptions, Table 1, pins 5, 7 and 20 |
| I2C pull-ups | Pull-up (typically 4.7 kOhm) required on SDA; on SCL if the master has an open-drain clock | source Schematic Drawings and Implementation, I2C text |

## Power

| | Value | Source |
|---|---|---|
| Supply | 1.71 V to 3.6 V (VDD) | source Features; Table 5 DC Characteristics |

## Pinout

The module board is not covered by an official document. Its regulator, pull-up resistors, address jumpers, level handling and header order are not documented by a source; check the printed labels on the board. The numbers on this page are for the chip.

| Pin | Function | Voltage | Notes | Source |
|---|---|---|---|---|
| 1 | IRQ | | Open-collector interrupt output, active low | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 2 | SCL | | I2C clock | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 3 | SDA | | I2C data | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 4 | ADDR | | I2C address select: VSS, VDD, SDA or SCL gives 0x5A, 0x5B, 0x5C or 0x5D | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 5 | VREG | | Internal regulator node; connect a 0.1 uF bypass capacitor to VSS | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 6 | VSS | | Ground | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 7 | REXT | | Connect a 75 kOhm 1% resistor to VSS to set the internal reference current | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 8 | ELE0 | | Electrode 0 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 9 | ELE1 | | Electrode 1 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 10 | ELE2 | | Electrode 2 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 11 | ELE3 | | Electrode 3 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 12 | ELE4 | | Electrode 4 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 13 | ELE5 | | Electrode 5 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 14 | ELE6 | | Electrode 6 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 15 | ELE7 | | Electrode 7 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 16 | ELE8 | | Electrode 8 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 17 | ELE9 | | Electrode 9 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 18 | ELE10 | | Electrode 10 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 19 | ELE11 | | Electrode 11 | source Pin Descriptions, Table 1 (20-pin QFN chip) |
| 20 | VDD | | Supply; connect a 0.1 uF bypass capacitor to VSS | source Pin Descriptions, Table 1 (20-pin QFN chip) |

## Build with it
Project ideas for the MPR121 12-key touch controller. Each link opens Soldr with the prompt filled in; Soldr assigns the pins, checks power and shows how to wire every part.

- [Touch pad number display](https://app.soldr.ai/?prompt=I%20want%20to%20build%20a%2012-pad%20touch%20input%20panel%20with%20an%20ESP32%2C%20an%20MPR121%20touch%20sensor%20and%20an%20OLED%20display): Both the MPR121 (VDD up to 3.6 V) and the OLED sit on the ESP32 3.3 V I2C bus. The OLED shows which electrode is touched. Check on the module that the supply and bus levels suit 3.3 V.
- [Touch switch for an LED](https://app.soldr.ai/?prompt=I%20want%20to%20build%20a%20touch%20on%20and%20off%20switch%20for%20an%20LED%20with%20an%20ESP32%20and%20an%20MPR121%20touch%20sensor): The IRQ output goes low on touch or release; it is open-collector, so the ESP32 input needs a pull-up (internal or from the module). An LED with a resistor from the packs, driven from a GPIO, toggles on each touch. Learning project.
- [A touch pad code entry practice box with an ESP32, an MPR121 touch sensor and an OLED display](https://app.soldr.ai/?prompt=I%20want%20to%20build%20a%20touch%20pad%20code%20entry%20practice%20box%20with%20an%20ESP32%2C%20an%20MPR121%20touch%20sensor%20and%20an%20OLED%20display): The 12 electrodes work as a keypad whose entries show on the OLED. Learning project, not a security lock.

## Common mistakes

- Powering the chip from 5 V: the VDD range is 1.71 V to 3.6 V (source: [link](https://cdn-shop.adafruit.com/datasheets/MPR121.pdf), Table 5). Check that the module board handles a higher supply before using 5 V.
- Missing pull-up on SDA: the chip requires one, typically 4.7 kOhm (source: [link](https://cdn-shop.adafruit.com/datasheets/MPR121.pdf), Schematic Drawings and Implementation).
- Wrong address: the chip answers at 0x5A, 0x5B, 0x5C or 0x5D depending on the ADDR pin connection (source: [link](https://cdn-shop.adafruit.com/datasheets/MPR121.pdf), Table 1).

## Not covered by the official source

- Chip current figures were not copied because the table columns could not be read reliably.
- The NXP site returned an error page, so the verbatim copy of the maker&#x27;s document on a mirror was used.

## Sources

- [link](https://cdn-shop.adafruit.com/datasheets/MPR121.pdf) (MPR121 Proximity Capacitive Touch Sensor Controller, Freescale Semiconductor, now NXP, Rev. 4, 02/2013)
