Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use MPR121 Breakout: Examples, Pinouts, and Specs

Image of MPR121 Breakout
Cirkit Designer LogoDesign with MPR121 Breakout in Cirkit Designer

Introduction

The MPR121 Breakout (Manufacturer Part ID: SEN-09695) by SparkFun is a capacitive touch sensor breakout board designed to detect touch inputs on up to 12 electrodes. This versatile component is ideal for creating touch-sensitive interfaces in a variety of projects, such as interactive displays, musical instruments, and touch-controlled devices. Its compact design and I²C communication make it easy to integrate into microcontroller-based systems.

Explore Projects Built with MPR121 Breakout

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Touch-Sensitive Interface with Adafruit MPR121 and Feather 32u4 Bluefruit
Image of MPR121: A project utilizing MPR121 Breakout in a practical application
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the Feather and communicates via I2C (SCL and SDA) to detect touch inputs, which can be processed or transmitted wirelessly by the Feather.
Cirkit Designer LogoOpen Project in Cirkit Designer
Adafruit Feather 32u4 Bluefruit with MPR121 Capacitive Touch Sensor Interface
Image of ALi WTSE: A project utilizing MPR121 Breakout in a practical application
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the 3.3V supply from the Feather and communicates with the microcontroller via I2C, with SCL connected to pin 3 and SDA connected to pin 2 of the Feather. This setup allows the Feather to detect touch inputs from the MPR121 for further processing or wireless communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO R4 WiFi Capacitive Touch MIDI Controller with Visual Feedback and Sound Playback
Image of 自适应乐器: A project utilizing MPR121 Breakout in a practical application
This circuit is an interactive touch-based MIDI controller and audio player. It uses an Arduino UNO R4 WiFi to interface with an MPR121 capacitive touch sensor for input, a MAX7219 8-digit 7-segment display for visual feedback, and a DFPlayer MINI for audio output through a loudspeaker. The system detects touch inputs, plays corresponding sounds, and sends MIDI notes.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Controlled Multi-Axis Actuator System with Orientation Sensing and Light Detection
Image of Auto_Level_Table: A project utilizing MPR121 Breakout in a practical application
This circuit features an ESP32 S3 N32R8V microcontroller interfaced with multiple IBT-2 H-Bridge Motor Drivers to control several Linear Actuators, and it receives input from KY-018 LDR Photo Resistors and Pushbuttons. The ESP32 is powered by a 5V supply from an Adafruit MPM3610 5V Buck Converter, while the Linear Actuators and Motor Drivers are powered by a 12V 7Ah battery. Additionally, the ESP32 communicates with an Adafruit BNO085 9-DOF Orientation IMU Fusion Breakout for orientation sensing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with MPR121 Breakout

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of MPR121: A project utilizing MPR121 Breakout in a practical application
Touch-Sensitive Interface with Adafruit MPR121 and Feather 32u4 Bluefruit
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the Feather and communicates via I2C (SCL and SDA) to detect touch inputs, which can be processed or transmitted wirelessly by the Feather.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ALi WTSE: A project utilizing MPR121 Breakout in a practical application
Adafruit Feather 32u4 Bluefruit with MPR121 Capacitive Touch Sensor Interface
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the 3.3V supply from the Feather and communicates with the microcontroller via I2C, with SCL connected to pin 3 and SDA connected to pin 2 of the Feather. This setup allows the Feather to detect touch inputs from the MPR121 for further processing or wireless communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of 自适应乐器: A project utilizing MPR121 Breakout in a practical application
Arduino UNO R4 WiFi Capacitive Touch MIDI Controller with Visual Feedback and Sound Playback
This circuit is an interactive touch-based MIDI controller and audio player. It uses an Arduino UNO R4 WiFi to interface with an MPR121 capacitive touch sensor for input, a MAX7219 8-digit 7-segment display for visual feedback, and a DFPlayer MINI for audio output through a loudspeaker. The system detects touch inputs, plays corresponding sounds, and sends MIDI notes.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Auto_Level_Table: A project utilizing MPR121 Breakout in a practical application
ESP32-Controlled Multi-Axis Actuator System with Orientation Sensing and Light Detection
This circuit features an ESP32 S3 N32R8V microcontroller interfaced with multiple IBT-2 H-Bridge Motor Drivers to control several Linear Actuators, and it receives input from KY-018 LDR Photo Resistors and Pushbuttons. The ESP32 is powered by a 5V supply from an Adafruit MPM3610 5V Buck Converter, while the Linear Actuators and Motor Drivers are powered by a 12V 7Ah battery. Additionally, the ESP32 communicates with an Adafruit BNO085 9-DOF Orientation IMU Fusion Breakout for orientation sensing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Touch-sensitive control panels
  • Interactive art installations
  • Musical instruments with touch-sensitive keys
  • Proximity sensing for smart devices
  • DIY electronics projects requiring touch input

Technical Specifications

The MPR121 Breakout is based on the Freescale (now NXP) MPR121 capacitive touch sensor controller. Below are its key technical details:

Specification Details
Operating Voltage 1.8V to 3.6V (3.3V recommended)
Communication Interface I²C
I²C Address (Default) 0x5A (configurable to 0x5B, 0x5C, 0x5D)
Number of Touch Inputs 12 electrodes
Maximum Current Consumption 29 µA (typical)
Operating Temperature Range -40°C to +85°C
Dimensions 1.0" x 0.6" (25.4mm x 15.24mm)

Pin Configuration and Descriptions

The MPR121 Breakout has the following pin layout:

Pin Name Description
1 GND Ground connection
2 VCC Power supply (3.3V recommended)
3 SDA I²C data line
4 SCL I²C clock line
5 IRQ Interrupt output (active low, indicates touch or proximity event)
6 ADDR I²C address selection (connect to GND, VCC, SDA, or SCL to set address)
7-18 ELE0-ELE11 Electrode connections for touch inputs

Usage Instructions

Connecting the MPR121 Breakout

  1. Power Supply: Connect the VCC pin to a 3.3V power source and the GND pin to ground.
  2. I²C Communication: Connect the SDA and SCL pins to the corresponding I²C pins on your microcontroller (e.g., Arduino UNO: A4 for SDA, A5 for SCL).
  3. Interrupt Pin (Optional): Connect the IRQ pin to a digital input pin on your microcontroller to handle touch events via interrupts.
  4. Electrodes: Attach conductive materials (e.g., copper tape, wires) to the ELE0 to ELE11 pins for touch sensing.

Arduino UNO Example Code

Below is an example of how to use the MPR121 Breakout with an Arduino UNO. This code uses the Adafruit MPR121 library, which must be installed via the Arduino Library Manager.

#include <Wire.h>
#include <Adafruit_MPR121.h>

// Create an MPR121 object
Adafruit_MPR121 cap = Adafruit_MPR121();

// Define the I2C address of the MPR121 (default is 0x5A)
#define MPR121_I2C_ADDRESS 0x5A

void setup() {
  Serial.begin(9600);
  Serial.println("MPR121 Touch Sensor Test");

  // Initialize the MPR121
  if (!cap.begin(MPR121_I2C_ADDRESS)) {
    Serial.println("MPR121 not found. Check wiring or I2C address!");
    while (1);
  }
  Serial.println("MPR121 initialized successfully.");
}

void loop() {
  // Read touch status
  uint16_t touched = cap.touched();

  // Iterate through all 12 electrodes
  for (uint8_t i = 0; i < 12; i++) {
    if (touched & (1 << i)) {
      Serial.print("Electrode ");
      Serial.print(i);
      Serial.println(" is being touched.");
    }
  }

  delay(100); // Small delay to avoid flooding the serial monitor
}

Important Considerations

  • Power Supply: Ensure the MPR121 is powered with 3.3V. Using 5V may damage the component.
  • Pull-Up Resistors: The breakout board includes pull-up resistors for the I²C lines. If your system already has pull-ups, you may need to disable them.
  • Electrode Design: For optimal performance, use conductive materials with sufficient surface area for the electrodes.

Troubleshooting and FAQs

Common Issues

  1. MPR121 Not Detected on I²C Bus

    • Solution: Verify the I²C address (default is 0x5A). Ensure proper connections for SDA and SCL pins.
    • Tip: Use an I²C scanner sketch to confirm the device address.
  2. Touch Inputs Not Responding

    • Solution: Check the connections to the electrode pins. Ensure the electrodes are conductive and properly attached.
    • Tip: Increase the surface area of the electrodes for better sensitivity.
  3. Erratic or False Touch Events

    • Solution: Ensure the breakout board is not exposed to electrical noise or interference.
    • Tip: Use shielded cables for long electrode connections.

FAQs

Q: Can I use the MPR121 with a 5V microcontroller?
A: Yes, but you must use a logic level shifter to safely interface the 3.3V MPR121 with the 5V microcontroller.

Q: How do I change the I²C address?
A: Connect the ADDR pin to GND, VCC, SDA, or SCL to set the address to 0x5A, 0x5B, 0x5C, or 0x5D, respectively.

Q: Can the MPR121 detect proximity?
A: Yes, the MPR121 can detect proximity by monitoring changes in capacitance, even without direct touch.

By following this documentation, you can effectively integrate the MPR121 Breakout into your projects and troubleshoot common issues.