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 pad is touched or released. The figures here are for the chip, not the module board.
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: 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: 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: 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, 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, Schematic Drawings and Implementation).
- Wrong address: the chip answers at 0x5A, 0x5B, 0x5C or 0x5D depending on the ADDR pin connection (source: link, 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's document on a mirror was used.
Sources
- link (MPR121 Proximity Capacitive Touch Sensor Controller, Freescale Semiconductor, now NXP, Rev. 4, 02/2013)