!!! failure "This feature is not included in precompiled binaries"
To use it you must compile your build. Add the following to user_config_override.h
:
#ifndef USE_MPR121
#define USE_MPR121 // [I2cDriver23] Enable MPR121 controller (I2C addresses 0x5A, 0x5B, 0x5C and 0x5D) in input mode for touch buttons (+1k3 code)
#endif
- 12-button or touch pad I2C controller
- Driver supports up to 4x MPR121 controllers (= 48 buttons per ESP8266)
- Electrodes can be covered with adhesive paper and adhesive plastic foil for labeling and symbols
- Break-out and touch button PCBs ~ 2€ at AliExpress
- Break-out PCB ~ $8 at Adafruit
- MPR121 Fact sheet
- MPR121 Data sheet
- AN3889 MPR121 capacitive sensing settings
- AN3890 MPR121 capacitive sensing filtering and timing
- AN3891 MPR121 touch sensing baseline system
- AN3892 MPR121 touch sensing jitter and false touch rejection
- AN3893 MPR121 proximity sensing
- AN3894 MPR121 LED driver system
- AN3895 MPR121 serial communication
- AN4600 MPR121 Designing a Touch Panel
- MPR121 Evaluation board schematics
Breakout | ESP8266 |
---|---|
VCC/VIN | +3.3VDC |
GND | GND |
SCL | GPIO I2 SCL |
SDA | GPIO I2 SDA |
IRQ | NC |
Connect the ADD(R) pin/pad to one of the following pins/pads:
Address | ADD(R) |
---|---|
0x5A | NC |
0x5B | +3.3VDC |
0x5C | GPIO I2 SDA |
0x5D | GPIO I2 SCL |
The driver will detect the I2C addresses of the MPR121s automatically. The MPR121 chip (or breakout board) must be connected to the ESP8266 and the I2C GPIO pins must be configured: