This site’s other installation-trigger tutorials — OSC, NDI, DMX — cover getting signals between machines. This one covers the layer before that: detecting that someone touched something in the first place, without a mechanical switch, button or pressure pad anywhere in the build.
What the MPR121 actually measures
The MPR121 is a dedicated capacitive-sensing IC, widely sold as a breakout board, that monitors 12 independent electrodes and reports which ones are being touched over I2C. Every conductive object has a tiny baseline capacitance to its surroundings; touching it with a human body — which is itself conductive and grounded — increases that capacitance measurably. The MPR121 continuously samples each electrode’s baseline and flags a touch when the reading shifts past a threshold. Critically, it doesn’t care what shape or material the electrode is, as long as it conducts: copper tape, aluminum foil, conductive paint, a sculpted brass surface, even produce like a banana or an orange, all work as touch triggers with no modification beyond a wire connection.
Wiring and reading touches
The MPR121 talks I2C, so it needs just four wires to a microcontroller — power, ground, SDA and SCL — plus one wire per electrode you want to use, up to 12. Libraries exist for Arduino and CircuitPython that expose this as a simple bitmask: read one register, and each bit tells you whether that channel is currently touched. From there, triggering an installation event — a sound cue, a light change, a video trigger over OSC — is the same pattern as any other digital input, just with a conductive surface standing in for a button.
The sensitivity knob that matters most
Out of the box, the MPR121’s default thresholds are tuned for small, deliberate touches on compact electrodes like a keypad. Scale the electrode up — a large metal sculpture, a whole tabletop — and you’ll often need to raise the touch and release thresholds in code, because a bigger conductive area picks up more ambient capacitive noise (nearby cables, other people standing close, even humidity) that can trigger false positives at default sensitivity. This is the single most common first-project frustration, and it’s a software fix, not a wiring one.
A first project
Wire a single electrode — a strip of copper tape works well — to channel 0, run a basic example sketch, and watch the serial monitor as you touch and release it. Once that’s reliable, extend the pattern to all 12 channels across different surfaces and materials to get a feel for how electrode size and material affect sensitivity, before building sensitivity-threshold tuning into your actual installation code.