MPR121 - 12 Channel Capacitive Touch Sensor Controller Module - I2C Interface
MPR121 12Channel Capacitive Touch Sensor Controller Module
What It Is
The MPR121 is a dedicated capacitive touch/proximity sensor controller that communicates over the I2C interface. It simplifies adding touch sensing to microcontroller projects like Arduino, ESP32, Raspberry Pi, etc.
Key Features
+---------------------------------------------------+| MPR121 Capacitive Sensor |+---------------------------------------------------+| 12 Capacitive Touch Channels || I2C Interface (2wire) || Adjustable Sensitivity || Built'in Filtering & Baseline Tracking || Low Power Consumption || Interrupt Output for Real'Time Detection |+---------------------------------------------------+
Functional Block Overview
r> +------------------------+ | I2C Interface |< SDA & SCL (to host MCU) +------------------------+ +------------------------+ | Control Registers | +------------------------+ +------------------------+ | Baseline Tracker | +------------------------+ +------------------------+ | Filter Engine | +------------------------+ +------------------------+ | 12 Touch Inputs |> Electrodes (Capsense) +------------------------+ +------------------------+ | INT Output (InterrupRESETGND 2 9 VCC (3.3V)SDA 3 8 SCLGND 4 7 OUT (INT)EPA 5 6 EPB
Pin Descriptions
VCC Power Supply (typically 3.3V)
GND Ground
SDA I2C Data
SCL I2C Clock
OUT (INT) Interrupt when touch changes
IRQ/HZ Optional IRQ signal (module'dependent)
RESET Reset input (active low)
EPA/EPB Extra pins (optional breakout connections)
How Ite Field Change'MPR121 Measures'Signal Processed in Filter'Touch Event Sent via I2C'Microcontroller Reads Touch
I2C Communication
I2C Address
Default: 0x5A (7bit)
Can sometimes be changed via solder jumpers.
Typical Communication
Host MCU MPR121SDA < SDASCL < SCLGND < GNDVCC < VCC
Register Map (High'Level)
+---------------------------+| MPR121 Registers |+---------------------------+| Electrode Touch Status || Baseline Values || Filter Configuration || Thresholds for Touch/Release| Debounce S to decide when a touch begins and ends.
Baseline TrackingAutomatically adjusts to slow changes in environment.
FilteringReduces noise from power lines, movement, or humidity.
Debounce ControlPrevents false triggers.
Typical Workflow
1. Power ON module (3.3V)2. Initialize I2C on MCU3. Configure MPR121 (thresholds + filters)4. Enable electrodes5. Read touch status periodically ORuse Interrupt (OUT) to know touch change6. Process UI / Buttons in MCU app
Power & Signal Notes
Operating Voltage: 1.8V to 3.6V (3.3V typical)
Logic Level: Do NOT use 5V signals directly
Low Current: Good for battery'powered devices
Common Uses
Touch buttons & sliders Capacitive keype interfaces Robotics human'interaction panels
Advantages
Feature | Benefit |
12 channels | Enable many buttons/inputs |
I2C interface | Easy integration with microcontrollers |
Built'in baseline tracking | Adapts to environmental shifts |
Low power | Battery'friendly |
Interrupt'based | Efficient touch detection |
Limitations
Not 5V tolerant must use proper voltage levels
Sensitivity affected by large shields or grounded plates
Requires tuning of thresholds for best performance
Summary
MPR121 Module 12 capacitive touch inputs Communicates via I2C'p for touch events Ideal for touch UI in em

