

The Adafruit MPR121 Gator (Manufacturer Part ID: 4830) is a capacitive touch sensor breakout board designed for detecting touch inputs on up to 12 individual pads. This versatile component is ideal for creating interactive projects, touch-sensitive interfaces, and other applications requiring touch detection. Its compact design and I2C communication make it easy to integrate into a variety of microcontroller-based systems, including Arduino and Raspberry Pi.








The Adafruit MPR121 Gator is based on the MPR121 capacitive touch sensor IC. Below are its key technical details:
| Specification | Details |
|---|---|
| Operating Voltage | 3.3V to 5V |
| Communication Protocol | I2C |
| I2C Address (Default) | 0x5A (configurable to 0x5B, 0x5C, 0x5D) |
| Number of Touch Inputs | 12 |
| Maximum Current Consumption | ~1 mA |
| Operating Temperature Range | -40°C to +85°C |
| Dimensions | 1.3" x 0.7" (33mm x 18mm) |
The Adafruit MPR121 Gator breakout board has the following pin layout:
| Pin Name | Description |
|---|---|
| VIN | Power input (3.3V to 5V). Connect to the microcontroller's power supply. |
| GND | Ground. Connect to the microcontroller's ground. |
| SDA | I2C data line. Connect to the SDA pin of the microcontroller. |
| SCL | I2C clock line. Connect to the SCL pin of the microcontroller. |
| IRQ | Interrupt pin. Outputs a signal when a touch event is detected (optional). |
| ADDR | Address selection pin. Used to configure the I2C address (default: 0x5A). |
VIN pin to a 3.3V or 5V power source and the GND pin to ground.SDA and SCL pins to the corresponding I2C pins on your microcontroller.IRQ pin to detect touch events via interrupts.ADDR pin to change the I2C address if multiple MPR121 boards are used.ADDR pin.Below is an example of how to use the Adafruit MPR121 Gator with an Arduino UNO. This code uses the Adafruit_MPR121 library, which can be installed via the Arduino Library Manager.
#include <Wire.h>
#include <Adafruit_MPR121.h>
// Create an MPR121 object
Adafruit_MPR121 cap = Adafruit_MPR121();
void setup() {
Serial.begin(9600);
while (!Serial) {
// Wait for the serial connection to initialize
delay(10);
}
Serial.println("Adafruit MPR121 Capacitive Touch Sensor Test");
// Initialize the MPR121 sensor
if (!cap.begin(0x5A)) {
Serial.println("MPR121 not found. Check wiring or I2C address!");
while (1);
}
Serial.println("MPR121 found!");
}
void loop() {
// Read touch status
uint16_t touched = cap.touched();
// Iterate through all 12 touch inputs
for (uint8_t i = 0; i < 12; i++) {
if (touched & (1 << i)) {
// If a touch is detected on pad i, print a message
Serial.print("Pad ");
Serial.print(i);
Serial.println(" is touched.");
}
}
delay(100); // Small delay to avoid flooding the serial monitor
}
cap.begin(0x5A) function initializes the MPR121 sensor with the default I2C address (0x5A). Change this address if needed.cap.touched() function returns a 12-bit value where each bit corresponds to the touch status of a pad.MPR121 Not Detected
Touch Inputs Not Responding
Erratic or False Touch Events
Multiple Boards Not Working
ADDR pin.Q: Can I use the MPR121 with a 3.3V microcontroller?
A: Yes, the MPR121 is compatible with both 3.3V and 5V systems.
Q: How do I change the I2C address?
A: Connect the ADDR pin to GND, VIN, SDA, or SCL to set the address to 0x5A, 0x5B, 0x5C, or 0x5D, respectively.
Q: What materials can I use for touch pads?
A: You can use any conductive material, such as copper tape, aluminum foil, or conductive paint.
Q: Can the MPR121 detect proximity?
A: Yes, the MPR121 can detect proximity by adjusting its sensitivity settings in the library.
This concludes the documentation for the Adafruit MPR121 Gator. For further assistance, refer to the Adafruit website or community forums.