esphome / esphome/feature-requests

Add support for the MPR121 Proximity functionality

Open
#2,564 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

**Describe the problem you have/What new integration you would like**

The MPR121 has the ability to detect "Proximity" in addition to "Touch". The current implementation in ESPHome only supports touch.

Currently the only off the shelf component I can find that supports and has the code for the MPR121 proximity functionality is the [Bare Conductive Touch Board](https://www.bareconductive.com/collections/touch-board) which appears to simply be an Arduino and MPR121 on a single board.

- https://www.bareconductive.com/blogs/resources/proximity-mode-control-the-touch-board-with-built-in-distance-sensors
- https://github.com/BareConductive/mpr121

In addition, I have found this repository that has the code to implement this feature with the MPR121 connected to an Arduino https://github.com/labatrockwell/arduino_capactive_sensor_MPR121

It seems that you simply need to set a few additional "Registers" to enable the "Proximity" mode.

- https://www.nxp.com/docs/en/application-note/AN3863.pdf
- https://www.nxp.com/docs/en/application-note/AN3893.pdf

**Please describe your use case for this integration and alternatives you've tried:**
I am currently using the Bare conductive board with the Arduino code to activate a GPIO sensor on ESPHome. It would be great to get this functionality added natively. It can be useful for setting up wall buttons without physically touching them. It also seems to have the ability to be used not only as a binary sensor, but as a variable sensor, so the closer you get to touching, the higher the value. This could be useful for setting brightness by moving your hand closer or farther from the sensor.

Contributor guide

No contributing guide indexed for this repository

Research direction

No ESPHome file, test, or entry point is named. Start by locating the existing MPR121 component, then compare its register setup with the Bare Conductive and Arduino implementations and the NXP application notes; done means proximity mode works natively, with the supported binary or variable-sensor behavior clearly defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
arduino
Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.